2011-11-16 20 views
62

Vì vậy, kịch bản như sau:Có tốt hơn khi có nhiều thùng chứa lưu trữ nhỏ màu xanh Azure (mỗi loại có một số đốm màu) hoặc một thùng chứa thực sự lớn với tấn đốm màu?

Tôi có nhiều phiên bản 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 thùng chứa (hoặc một thư mục ảo) tùy thuộc vào thời điểm nó được nhận. Một lần trong một thời gian (mỗi ngày ở tồi tệ nhất) đốm màu cũ sẽ được xử lý và sau đó bị xóa.

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

Lựa chọn 1

tôi làm cho một container gọi là "đốm" (ví dụ) và sau đó lưu trữ tất cả các blog vào container đó. Mỗi đốm màu sẽ sử dụng tên kiểu thư mục với tên thư mục là thời gian 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 mỗi X phút). Điều mà quá trình các blobs sẽ xử lý các blob hr0min0 đầu tiên, sau đó hr0minX và vv (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 container mỗi với một tên dựa trên thời gian đến (vì vậy đầu tiên sẽ là một container gọi blobs_hr0min0 sau đó blobs_hr0minX, vv) và tất cả các đốm màu trong container là những đốm màu đó đến thời điểm được đặt tên. Việc 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à, tùy chọn nào tốt hơn? Tùy chọn 2 có cho phép tôi song song tốt hơn (vì một thùng chứa có thể nằm trong các máy chủ khác nhau) hay tùy chọn 1 tốt hơn vì nhiều vùng chứa có thể gây ra các vấn đề không xác định khác?

Trả lời

46

Tôi không nghĩ rằng nó thực sự quan trọng (từ góc độ mở rộng/song song), vì việc phân vùng trong kho lưu trữ của Win Azure được thực hiện ở cấp độ blob, không phải vùng chứa. Lý do để trải rộng trên các vùng chứa khác nhau có 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 ở đây để biết thêm chi tiết: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx

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

Trích dẫn:

Blobs - Từ chìa khóa phân vùng là xuống đến tên blob, chúng ta có thể tải truy cập cân bằng để các đốm màu khác nhau trên nhiều máy chủ để quy mô ra truy cập vào chúng. Điều này cho phép các thùng chứa phát triển lớn như khi bạn cần chúng (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.

+0

Wow - thời gian đẹp ... :) – dunnry

+0

Cảm ơn bạn điều này làm cho quyết định rõ ràng và dễ dàng! – encee

+0

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

18

Về mặt lý thuyết, không có sự khác biệt giữa nhiều vùng chứa hoặc ít vùng chứa có nhiều đốm màu hơn. Các container bổ sung có thể được tốt đẹp như ranh giới bảo mật bổ sung (cho truy cập vô danh công cộng hoặc chữ ký SAS khác nhau chẳng hạn). Các thùng chứa thêm cũng có thể làm cho việc dọn phòng 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 so với nhắm mục tiêu từng đốm màu). Tôi có xu hướng sử dụng nhiều thùng chứa hơn vì những lý do này (không phải cho 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 (đã tồn tại trong một thời gian dài). Đó là điều 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ục vụ bởi các máy chủ khác nhau.

Jeremy cho biết có sự khác biệt về hiệu suất giữa nhiều hơn và ít hơn các vùng chứa. Tôi đã không đào sâu vào các tiêu chuẩn đó đủ để giải thích tại sao có thể là 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 thử nghiệm, v.v.) để giải thích bất kỳ sự khác biệt nào.

+0

:-) Chỉ cần bình chọn bạn lên. –

49

Mọi người đều cho bạn câu trả lời tuyệt vời về việc truy cập trực tiếp 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 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 duy nhất. 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 chống lại một tập con của các đốm màu đó. Họ đang nhìn thấy một hit hiệu suất, như thời gian để lấy một danh sách đầy đủ đã được phát triển.

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

+1

Đây là một điểm tốt. Vào 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 các đốm màu trong một thùng chứa khác bằng cách lấy danh sách tất cả các đốm màu trong thùng chứa đó và kiểm tra thuộc tính 'Đếm' của danh sách. –

+0

Có cần 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", tùy chọn 1 trong câu hỏi.) – nmit026

0

Ngoài ra còn có thêm một yếu tố mà có được của thành này. Giá bán!

Hiện nay Danh sách hoạt động và Tạo chứa dành cho cùng một mức giá: 0.054 US $/10.000 cuộc gọi

Cùng giá thực sự là để viết các blob.

Vì vậy, trong nguyên nhân rất khó, bạn có thể trả tiền nhiều hơn, nếu bạn tạo và xóa nhiều container

  • xóa là miễn phí

bạn sẽ nhìn thấy máy tính ở đây: https://azure.microsoft.com/en-us/pricing/calculator/

Các vấn đề liên quan