4 điểm bởi GN⁺ 2024-11-26 | 1 bình luận | Chia sẻ qua WhatsApp
  • Tính năng mới của Amazon S3: ghi có điều kiện

    • Amazon S3 giờ đây có thể thực hiện ghi có điều kiện để cập nhật sau khi đánh giá xem đối tượng có bị sửa đổi hay chưa. Điều này giúp điều phối các lần ghi đồng thời lên cùng một đối tượng và ngăn nhiều trình ghi đồng thời vô tình ghi đè khi không biết nội dung của đối tượng.

    • Có thể sử dụng tính năng này trên cả bucket mục đích chung và bucket thư mục của S3 bằng cách cung cấp ETag của đối tượng thông qua yêu cầu API S3 PutObject hoặc CompleteMultipartUpload.

    • Ghi có điều kiện giúp đơn giản hóa cách các ứng dụng phân tán cập nhật đồng thời các tập dữ liệu dùng chung. Tương tự như việc dùng header điều kiện HTTP if-none-match để kiểm tra xem đối tượng đã tồn tại trước khi được tạo hay chưa, giờ đây client có thể thực hiện kiểm tra ghi có điều kiện bằng cách chỉ định ETag của đối tượng qua header HTTP if-match trong yêu cầu API.

    • S3 sẽ đánh giá xem ETag của đối tượng có khớp với giá trị được cung cấp trong yêu cầu API hay không rồi mới commit thao tác ghi, qua đó ngăn client ghi đè đối tượng cho đến khi điều kiện được đáp ứng.

    • Header điều kiện mới này có thể giúp cải thiện hiệu quả của phân tích quy mô lớn, machine learning phân tán và các tác vụ khác có mức độ song song hóa rất cao.

    • Tính năng ghi có điều kiện mới này được cung cấp không tính thêm phí tại tất cả các khu vực AWS. Có thể thực hiện ghi có điều kiện bằng AWS SDK, API hoặc CLI. Để biết thêm chi tiết về ghi có điều kiện, có thể tham khảo Sổ tay người dùng S3.

1 bình luận

 
GN⁺ 2024-11-26
Ý kiến trên Hacker News
  • Amazon S3 đã bổ sung tính năng cho phép áp dụng bắt buộc các thao tác ghi có điều kiện

    • Có nhu cầu về một tính năng buộc tên đối tượng trong S3 phải khớp với hàm băm
    • Điều này giúp xây dựng kho lưu trữ có thể định địa chỉ theo nội dung
  • Turbopuffer.com đã sử dụng điều này trong cơ sở dữ liệu để tránh phụ thuộc vào bất cứ thứ gì ngoài object storage

    • Thật vui khi sau 1 năm kể từ lúc bắt đầu với Google Cloud Storage, giờ đây có thể dùng tính năng này trên S3
  • Nhờ tính nhất quán mạnh, đã đạt được một nửa chức năng mong muốn

  • Cũng có người thấy khó hiểu vì sao tính năng này lại quan trọng

  • Tính năng này gần với compare-and-set hơn là compare-and-swap

  • Khi kết hợp với bảo đảm tính nhất quán read-after-write, đây trở thành nền tảng hoàn hảo để xây dựng kho lưu trữ chỉ cho phép thêm dần trên object storage

    • Giải quyết vấn đề khi nhiều writer cùng truy cập WAL
  • Azure Blob Storage cũng hỗ trợ e-tag và optimistic control

    • Cũng có người thắc mắc nó khác gì so với tính năng của AWS
  • Nếu thuật toán ETag mặc định của AWS chỉ là hàm băm MD5 thông thường, có người đặt câu hỏi liệu dữ liệu đối tượng có thể bị lỗi do va chạm MD5 hay không

    • Xét tình huống giả định rằng dữ liệu do người dùng cung cấp mà khác nhau thì luôn tạo ra ETag khác nhau
  • MinIO, bản triển khai mã nguồn mở của Amazon S3, đã cung cấp tính năng này từ gần 2 năm trước

    • Giờ Amazon mới bắt kịp
  • Tính năng mới đã được bổ sung vào mùa hè để phản hồi chức năng IfNoneMatch của s3fs

    • Cũng có người tò mò tính năng mới này sẽ xuất hiện như thế nào trong lớp trừu tượng hệ thống tệp