Sẽ tốt hơn nếu có nhiều hộp chứa đốm màu lưu trữ Azure nhỏ (mỗi hộp có một số đốm màu) hay một hộp chứa thực sự lớn với hàng tấn đốm màu?


81

Vì vậy, kịch bản như sau:

Tôi có nhiều trường hợp của một dịch vụ web ghi một khối dữ liệu vào Azure Storage. Tôi cần có thể nhóm các đốm màu vào một vùng chứa (hoặc một thư mục ảo) tùy thuộc vào thời điểm nhận được. Thỉnh thoảng (tệ nhất là mỗi ngày) các đốm màu cũ hơn sẽ được xử lý và sau đó bị xóa.

Tôi có hai lựa chọn:

lựa chọn 1

Tôi tạo một vùng chứa có tên là "blobs" (ví dụ) và sau đó lưu trữ tất cả các blog vào vùng chứa đó. Mỗi blob sẽ sử dụng tên kiểu thư mục với tên thư mục là thời điểm nhận được (ví dụ: "hr0min0 / data.bin", "hr0min0 / data2.bin", "hr0min30 / data3.bin", "hr1min45 / data.bin" ", ...," hr23min0 / dataN.bin ", v.v. - một thư mục mới cứ sau X phút). Thứ xử lý các đốm màu này sẽ xử lý các đốm màu hr0min0 trước, sau đó là hr0minX, v.v. (và các đốm màu vẫn đang được viết khi được xử lý).

Lựa chọn 2

Tôi có nhiều vùng chứa, mỗi vùng chứa có tên dựa trên thời gian đến (vì vậy đầu tiên sẽ là vùng chứa có tên blobs_hr0min0 sau đó là blobs_hr0minX, v.v.) và tất cả các đốm màu trong vùng chứa là những đốm màu đã đến vào thời điểm được đặt tên. Quá trình xử lý các blog này sẽ xử lý một vùng chứa tại một thời điểm.

Vì vậy, câu hỏi của tôi là, lựa chọn nào tốt hơn? Tùy chọn 2 có cung cấp cho tôi khả năng song song tốt hơn (vì một vùng chứa có thể nằm trong các máy chủ khác nhau) hay là tùy chọn 1 tốt hơn vì nhiều vùng chứa có thể gây ra các sự cố không xác định khác?

Câu trả lời:


60

Tôi không nghĩ nó thực sự quan trọng (từ góc độ khả năng mở rộng / song song), bởi vì việc phân vùng trong lưu trữ các đốm màu của Win Azure được thực hiện ở cấp độ đốm màu, không phải vùng chứa. Các lý do để trải rộng trên các vùng chứa khác nhau liên quan nhiều hơn đến kiểm soát truy cập (ví dụ: SAS) hoặc tổng dung lượng lưu trữ.

Xem tại đây để biết thêm chi tiết: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstaries-and-their-scalability-targets.aspx

(Cuộn xuống "Phân vùng").

Trích dẫn:

Blobs - Vì khóa phân vùng nằm dưới tên blob, chúng tôi có thể tải cân bằng quyền truy cập vào các đốm màu khác nhau trên nhiều máy chủ để mở rộng quyền truy cập vào chúng. Điều này cho phép các vùng chứa phát triển lớn như bạn cần (trong giới hạn dung lượng tài khoản lưu trữ). Sự cân bằng là chúng tôi không cung cấp khả năng thực hiện các giao dịch nguyên tử trên nhiều đốm màu.


Làm ơn, có cần phải giữ tên blob càng ngắn càng tốt không? (Tôi có "một container thực sự lớn với tấn của các đốm màu", lựa chọn 1 trong câu hỏi.)
nmit026

60

Mọi người đã cho bạn câu trả lời tuyệt vời về việc truy cập trực tiếp vào các đốm màu. Tuy nhiên, nếu bạn cần liệt kê các đốm màu trong một vùng chứa, bạn có thể sẽ thấy hiệu suất tốt hơn với mô hình nhiều vùng chứa. Tôi vừa nói chuyện với một công ty đang lưu trữ một số lượng lớn các đốm màu trong một thùng chứa. Họ thường xuyên liệt kê các đối tượng trong vùng chứa và sau đó thực hiện các hành động đối với một tập hợp con của các đốm màu đó. Họ đang thấy một thành công về hiệu suất, vì thời gian để truy xuất danh sách đầy đủ ngày càng tăng.

Điều này có thể không áp dụng cho tình huống của bạn, nhưng đó là điều cần xem xét ...


1
đây là một quan điểm tốt. Tại thời điểm viết bài (tháng 6 năm 2016), tôi tin rằng vẫn không có cách nào để đếm số lượng đốm màu trong một vùng chứa ngoài việc lấy danh sách tất cả các đốm màu trong vùng chứa đó và kiểm tra thuộc tính của danh sách Count.
Steven Rands

Có cần phải giữ tên blob càng ngắn càng tốt không? (Tôi có "một container thực sự lớn với tấn của các đốm màu", lựa chọn 1 trong câu hỏi.)
nmit026

Chính xác kịch bản chúng tôi đang cố gắng để tránh
Glenit

21

Về mặt lý thuyết, không có sự khác biệt giữa rất nhiều container hoặc ít container hơn với nhiều đốm màu hơn. Các vùng chứa bổ sung có thể đẹp như ranh giới bảo mật bổ sung (ví dụ: đối với quyền truy cập ẩn danh công khai hoặc các chữ ký SAS khác nhau). Các thùng chứa phụ cũng có thể giúp việc dọn dẹp nhà cửa dễ dàng hơn một chút khi cắt tỉa (xóa một thùng chứa duy nhất thay vì nhắm mục tiêu từng đốm màu). Tôi có xu hướng sử dụng nhiều vùng chứa hơn vì những lý do này (không phải vì hiệu suất).

Về mặt lý thuyết, tác động hiệu suất không nên tồn tại. Bản thân blob (URL đầy đủ) là khóa phân vùng trong Windows Azure (đã có từ lâu). Đó là thứ nhỏ nhất sẽ được cân bằng tải từ một máy chủ phân vùng. Vì vậy, bạn có thể (và thường sẽ) có hai đốm màu khác nhau trong cùng một vùng chứa được phân phát bởi các máy chủ khác nhau.

Jeremy chỉ ra rằng có sự khác biệt về hiệu suất giữa nhiều vùng chứa hơn và ít hơn. Tôi chưa tìm hiểu kỹ về những điểm chuẩn đó để giải thích tại sao lại như vậy, nhưng tôi sẽ nghi ngờ các yếu tố khác (như kích thước, thời gian kiểm tra, v.v.) để giải thích bất kỳ sự khác biệt nào.


4

Ngoài ra còn có một yếu tố nữa gây ra vấn đề này. Giá bán!

Danh sách hoạt động hiện tại và Tạo vùng chứa có cùng mức giá: 0,054 US $ / 10.000 cuộc gọi

Trên thực tế, cùng một mức giá cho việc viết blob.

Vì vậy, bạn có thể phải trả nhiều hơn nếu bạn tạo và xóa nhiều vùng chứa

  • xóa là miễn phí

bạn có thể xem máy tính tại đây: https://azure.microsoft.com/en-us/pricing/calculator/

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.