2009-04-29 44 views
15

Tôi đang tìm thư viện + máy chủ được kiểm tra hợp lý để lưu trữ bảng băm được phân phối liên tục.Lưu trữ được phân phối của BLOB cho .NET?

Tôi lưỡng lự khi sử dụng các giải pháp dựa trên SQL vì dữ liệu được định hướng tài liệu cao, bao gồm hàng triệu ~ 64KB blobs chỉ với một chỉ mục duy nhất (được tính bằng băm BLOB) - và cần phân phối cho triển vọng mở rộng quy mô dài hạn.

Do cân nhắc chi phí và băng thông, các giải pháp bên ngoài như S3 không phải là một tùy chọn.

Một cái gì đó như CouchDB hoặc Project Voldemort sẽ là lý tưởng - tuy nhiên có một thiếu đáng chú ý của các ràng buộc .NET cho cả hai (PV có thể là IKVMC'd từ Java - tuy nhiên có "vấn đề".). Cả khóa và giá trị đều là mảng byte (khóa là 16 byte, giá trị lên tới 2048KB trung bình 64KB)

Tôi đã tìm kiếm cho một số loại cổng .NET của Dynamo, Chord và tương tự - tuy nhiên phần lớn các kết quả dường như là bộ nhớ trong bộ nhớ hoàn toàn và thiếu bất kỳ hình thức kiên trì hoặc nhân bản nào.

Bất kỳ ai có ý tưởng hoặc đề xuất nào?

Trả lời

8

Hãy xem qua số Rhino DHT của Ayende. Có thể phù hợp hơn với những gì bạn đang tìm kiếm. Nguồn có thể được mua here.

+0

Ayende cũng đã bắt đầu một loạt bài về thiết kế cơ sở dữ liệu tài liệu http: // ayende.com/Blog/archive/2009/03/17/thiết kế-một-tài liệu-cơ sở dữ liệu-what-next.aspx –

1

Cân nhắc MS Velocity.

Tóm tắt: “Tốc độ” là nền tảng bộ nhớ cache ứng dụng được phân phối trong bộ nhớ để phát triển các ứng dụng có thể mở rộng, có sẵn và hiệu suất cao. "Velocity" kết hợp bộ nhớ trên nhiều máy tính để cung cấp một chế độ xem bộ nhớ cache thống nhất cho các ứng dụng. Các ứng dụng có thể lưu trữ bất kỳ đối tượng CLR serializable nào mà không lo lắng về nơi đối tượng được lưu trữ. Khả năng mở rộng có thể đạt được bằng cách thêm nhiều máy tính hơn theo yêu cầu. "Velocity" cũng cho phép các bản sao dữ liệu được lưu trữ trên toàn cụm, do đó bảo vệ dữ liệu khỏi lỗi. “Velocity” có thể được cấu hình để chạy như một dịch vụ được truy cập qua mạng hoặc có thể chạy được nhúng với ứng dụng phân tán.

+2

Velocity là một trong - Bộ nhớ cache chỉ, AFAIK nó thiếu bất kỳ hình thức kiên trì lâu dài nào. –

2

DryadLINQ hoặc Hadoop.Net có thể hữu ích.

Hadoop.Net là phiên bản dotnet của Hadoop. Thông tin thêm về Hadoop có thể được tìm thấy here

+1

Hadoop.Net dường như không đi đâu cả. Không có gì được đăng trên trang web Google Code và cây SVN đang ở phiên bản 1 không có dữ liệu. –

+0

Tôi đã sử dụng DryadLINQ cho các phân tích phân tán quy mô lớn và nó rất chắc chắn. Nó có một mô hình dữ liệu phân tán, mặc dù nó được thiết kế theo hướng lặp qua toàn bộ phần dữ liệu để phân tích. Không quá nhiều cho việc tra cứu phân tán nhanh. – Turbo

2

Tôi thực sự nghĩ bạn nên xem xét SQL Server 2008. Lưu trữ dữ liệu trong một bảng có cột varbinary (max), cùng với cột có chứa băm của cột đó. Lập chỉ mục băm, như bạn đã đề xuất.

Sau đó, bạn sẽ có thể sử dụng các tính năng phân phối khác nhau của sản phẩm.

1

Bạn có thể thử StorageEdge nó có công nghệ NCache ở mặt sau của nó, do đó bạn sẽ có hỗ trợ bộ nhớ đệm phân phối, giúp tăng hiệu suất, độ tin cậy, khả năng mở rộng và tối ưu hóa lưu trữ của SharePoint cùng một lúc.

Dưới đây là liên kết đến trang web của http://www.alachisoft.com/storageedge/ StorageEdge của tôi hy vọng nó giúp :)

Nghỉ NET bạn luôn có thể thử NCache một tên tuổi lớn trong Caching Distributed bạn có thể tìm thông tin chi tiết của nó trên http://www.alachisoft.com/ncache/

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