Tôi mới sử dụng NoSQL, và tôi đang gãi đầu để tìm ra cách triển khai NoSQL phù hợp nhất cho ứng dụng mà tôi đang cố gắng xây dựng.Việc triển khai NoSQL nào là phù hợp nhất?
Ứng dụng Java của tôi cần có một băm trong bộ nhớ chứa hàng triệu đến hàng tỷ mục nhập vì nó mô hình một mạng nơron một lớp. Ngay bây giờ chúng tôi đang sử dụng Trove để có thể sử dụng nguyên thủy làm khóa và giá trị để giảm kích thước của bản đồ và tăng tốc độ truy cập. Bản đồ là bản đồ bản đồ nơi các khóa của bản đồ bên ngoài dài và các bản đồ bên trong có khóa/giá trị dài/nổi.
Chúng tôi cần có thể đọc trạng thái đã lưu từ đĩa đến bản đồ của bản đồ khi ứng dụng khởi động. Những thay đổi đối với bản đồ bản đồ cũng cần được lưu vào đĩa hoặc liên tục hoặc theo một số khoảng thời gian đã lên lịch.
Tôi lần đầu tiên được rút về phía OrientDB vì tài liệu và đối tượng DB của họ, mặc dù tôi vẫn không chắc chắn vào thời điểm này sẽ tốt hơn. Sau đó, tôi đi qua Redis, đó là một cửa hàng giá trị quan trọng và làm việc với một bộ nhớ trong bộ nhớ có thể được bán phá giá vào đĩa, bao gồm cả nhân rộng master-slave. Tuy nhiên, nó không giống như các giá trị của bản đồ có thể là bất cứ điều gì khác hơn là Strings.
Tôi có đang tìm đúng nơi để có giải pháp cho nhu cầu của mình không? Ngay bây giờ, tôi thích khía cạnh trong bộ nhớ và master-slave của Redis, nhưng tôi thích khả năng đối tượng/tài liệu của OrientDB vì cấu trúc dữ liệu của tôi phức tạp hơn các chuỗi đơn giản và có thể sử dụng Trove với các kiểu khóa/giá trị nguyên thủy rất thuận lợi. Sẽ tốt hơn nếu đọc là rẻ và viết đắt tiền hơn là cách khác.
Suy nghĩ?
Cảm ơn, tôi thích câu trả lời này. Tôi đã bỏ qua điều đó trong tài liệu và tôi sẽ viết một số mã thử nghiệm để thử nó ngay bây giờ. Điều này có lẽ sẽ kết thúc là giải pháp tốt nhất. Nhược điểm, là tôi sẽ phải viết mã kiên trì của riêng tôi, nhưng cuối cùng ứng dụng của tôi sẽ được tối ưu hóa. Nếu tôi cố gắng giở nó vào một khung NoSQL, tôi có lẽ sẽ phải thỏa hiệp xấu. – herrtim