Vào ngày 17 tháng 7 năm 2018 đã có một thông báo chính thức của AWS giải thích rằng không còn cần phải chọn ngẫu nhiên các ký tự đầu tiên của mọi khóa đối tượng S3 để đạt được hiệu suất tối đa: https://aws.amazon.com/about-aws/whats-new / 2018/07 / amazon-s3-thông báo-tăng-yêu cầu-tỷ lệ hiệu suất /
Amazon S3 công bố hiệu suất tỷ lệ yêu cầu tăng
Đăng vào ngày 17 tháng 7 năm 2018
Amazon S3 hiện cung cấp hiệu suất tăng để hỗ trợ ít nhất 3.500 yêu cầu mỗi giây để thêm dữ liệu và 5.500 yêu cầu mỗi giây để truy xuất dữ liệu, điều này có thể tiết kiệm thời gian xử lý đáng kể mà không phải trả thêm phí. Mỗi tiền tố S3 có thể hỗ trợ các tỷ lệ yêu cầu này, giúp đơn giản để tăng hiệu suất đáng kể.
Các ứng dụng chạy trên Amazon S3 hôm nay sẽ được cải thiện hiệu suất này mà không có thay đổi và khách hàng xây dựng các ứng dụng mới trên S3 không phải thực hiện bất kỳ tùy chỉnh ứng dụng nào để đạt được hiệu suất này. Sự hỗ trợ của Amazon S3 cho các yêu cầu song song có nghĩa là bạn có thể chia tỷ lệ hiệu suất S3 của mình theo hệ số của cụm tính toán mà không cần thực hiện bất kỳ tùy chỉnh nào cho ứng dụng của bạn. Hiệu suất tỷ lệ trên mỗi tiền tố, do đó bạn có thể sử dụng song song bao nhiêu tiền tố mà bạn cần để đạt được thông lượng cần thiết. Không có giới hạn về số lượng tiền tố.
Việc tăng hiệu suất tốc độ yêu cầu S3 này sẽ loại bỏ mọi hướng dẫn trước đây để ngẫu nhiên hóa các tiền tố đối tượng để đạt được hiệu suất nhanh hơn. Điều đó có nghĩa là bây giờ bạn có thể sử dụng các mẫu đặt tên hợp lý hoặc tuần tự trong đặt tên đối tượng S3 mà không có bất kỳ hàm ý hiệu suất nào. Cải tiến này hiện có sẵn trong tất cả các Khu vực AWS. Để biết thêm thông tin, hãy truy cập Hướng dẫn dành cho nhà phát triển Amazon S3.
Điều đó thật tuyệt, nhưng nó cũng khó hiểu. Nó cho biết Mỗi tiền tố S3 có thể hỗ trợ các tỷ lệ yêu cầu này, giúp đơn giản để tăng hiệu suất đáng kể
Nhưng vì các tiền tố và dấu phân cách chỉ là đối số cho GET Bucket (List Objects)
API khi liệt kê nội dung của các nhóm, làm thế nào có thể có ý nghĩa khi nói về hiệu suất truy xuất đối tượng "trên mỗi tiền tố". Mọi cuộc gọi để GET Bucket (List Objects)
có thể chọn bất kỳ tiền tố và dấu phân cách nào nó muốn, vì vậy tiền tố không phải là một thực thể được xác định trước.
Ví dụ: nếu xô của tôi có các đối tượng này:
a1/b-2
a1/c-3
Sau đó, tôi có thể chọn sử dụng "/" hoặc "-" làm dấu phân cách của mình bất cứ khi nào tôi liệt kê nội dung nhóm, vì vậy tôi có thể coi tiền tố của mình là
a1/
hoặc là
a1/b-
a1/c-
Nhưng vì GET Object
API sử dụng toàn bộ khóa, nên khái niệm về một tiền tố hoặc dấu phân cách cụ thể không tồn tại để truy xuất đối tượng. Vì vậy, tôi có thể mong đợi 5.500 req / giây vào a1/
hoặc thay thế 5.500 req / giây vào a1/b-
và 5.500 trên a1/c-
?
Vì vậy, ai đó có thể giải thích ý nghĩa của thông báo khi nó gợi ý một mức hiệu suất cụ thể (ví dụ +5.500 yêu cầu mỗi giây để truy xuất dữ liệu) cho "mỗi tiền tố s3" không?