2010-03-30 21 views
6

Tôi đang tìm kiếm khóa phân phối đúng cách (không chỉ bị phân đoạn) và được lưu giữ (không bị ràng buộc bởi bộ nhớ có sẵn trên nút đơn hoặc cụm nút) "nosql") lưu trữ không hỗ trợ truy vấn phạm vi bằng khóa chính.Lưu trữ khóa/giá trị liên tục được phân phối đơn giản nhất hỗ trợ truy vấn chính trong phạm vi chính

Hệ thống gần nhất gần nhất như vậy là Cassandra, ở trên. Tuy nhiên, nó thêm hỗ trợ cho các tính năng khác không cần thiết cho tôi. Vì vậy, trong khi tôi thích nó (và sẽ xem xét việc sử dụng nó tất nhiên), tôi đang cố gắng tìm ra nếu có thể có các dự án trưởng thành khác thực hiện những gì tôi cần. Cụ thể, đối với tôi, khía cạnh duy nhất của giá trị tôi cần là truy cập nó dưới dạng blob. Tuy nhiên, đối với khóa, tôi cần các truy vấn phạm vi (như trong, các giá trị truy cập được sắp xếp, giới hạn bởi các giá trị bắt đầu và/hoặc kết thúc). Mặc dù các giá trị có thể có cấu trúc, nhưng không cần phải sử dụng cấu trúc đó cho bất kỳ thứ gì ở phía máy chủ (có thể thực hiện ràng buộc dữ liệu phía máy khách, giá trị linh hoạt/loại nội dung, v.v.). Để tăng thêm tiền thưởng, lưu trữ kiểu Cassandra (được ghi nhật ký, tất cả viết tuần tự) có vẻ khá tối ưu cho trường hợp sử dụng của tôi.

Để giúp lọc ra câu trả lời, tôi đã điều tra một số lựa chọn thay thế trong miền chung như: Voldemort (khóa/giá trị, nhưng không có thứ tự) và CouchDB (chỉ được phân bổ, theo định hướng theo lô); và nhận thức được các hệ thống không được phân phối trong khi có đủ điều kiện (các biến thể bdb, bản thân tokyo (không chắc chắn nếu Tyrant có thể đủ điều kiện), redis (chỉ trong bộ nhớ)).

EDIT: Có vẻ như hBase hỗ trợ các truy vấn chính trong phạm vi khóa chính và dữ liệu của nó được phân phối do hdfs cơ bản. Tuy nhiên tôi không nghĩ rằng nó được phân phối hoàn toàn từ quan điểm của hệ thống, vì các máy chủ vùng chỉ phá hủy không gian chính nhưng không có dự phòng (giả sử tôi không đọc tài liệu).

+0

Ok, có vẻ như đó vẫn là Cassandra; đó là tốt, nó là một dự án tuyệt vời. Tôi chỉ muốn đảm bảo rằng tôi không bỏ lỡ một ứng cử viên rõ ràng ở đây. – StaxMan

Trả lời

0

Nếu bạn đang tìm kiếm Đơn giản, bạn có thể muốn xem Redis. Nó đơn giản hơn nhiều so với Cassandra về cấu trúc của dữ liệu. Nó thực sự chỉ là một cửa hàng có giá trị quan trọng trong khi Cassandra có họ cột và siêu cột.

+1

Có ngoại trừ nó không được phân phối. Redis trông thực sự tốt đẹp cho trường hợp sử dụng một máy chủ (hoặc master/slave), hoặc có lẽ để sharding. – StaxMan

0

Bạn đã thử Azure Table Storage của Microsoft chưa?

+0

Không. Có phải mã nguồn mở không? Tôi nên đề cập thêm điều này như là một hạn chế; Tôi không tìm kiếm các giải pháp thương mại. Nhưng cảm ơn bạn đã chỉ ra; Tôi nên đọc thêm một chút về nó trong mọi trường hợp. – StaxMan

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