Tôi cần cấu trúc Bản đồ được sao lưu trên đĩa để sử dụng trong ứng dụng Java. Nó phải có các tiêu chuẩn sau:Đề xuất Bản đồ liên tục nhanh và có thể mở rộng - Java
- Có khả năng lưu trữ hàng triệu bản ghi (thậm chí hàng tỷ)
- Nhanh tra cứu - đa số các hoạt động trên Bản đồ sẽ chỉ đơn giản là để xem nếu một chìa khóa đã tồn tại. Điều này, và 1 ở trên là các tiêu chí quan trọng nhất. Nên có một hiệu quả trong cơ chế bộ nhớ đệm cho các phím thường được sử dụng.
- Liên tục, nhưng không cần phải giao dịch, có thể bị lỗi. tức là đồng bộ với đĩa định kỳ và không cần phải giao dịch.
- Có khả năng lưu trữ các loại nguyên thủy đơn giản - nhưng tôi không cần lưu trữ các đối tượng được tuần tự hóa.
- Nó không cần phải được phân phối, tức là sẽ chạy tất cả trên một máy.
- Đơn giản để thiết lập & miễn phí để sử dụng.
- Không có truy vấn quan hệ nào được yêu cầu
Phím ghi sẽ là chuỗi hoặc thời lượng dài. Như được mô tả ở trên lần đọc sẽ thường xuyên hơn nhiều so với viết và phần lớn các lần đọc sẽ chỉ đơn giản là kiểm tra xem một khóa có tồn tại hay không (tức là không cần phải đọc các khóa liên quan đến dữ liệu). Mỗi bản ghi sẽ chỉ được cập nhật một lần và các bản ghi sẽ không bị xóa.
Tôi hiện đang sử dụng Bdb JE nhưng đang tìm kiếm các tùy chọn khác.
Cập nhật
Có từ hiệu suất truy vấn cải tiến về thiết lập BDB hiện tại của tôi bằng cách giảm sự phụ thuộc vào các phím thứ yếu. Một số truy vấn yêu cầu tham gia vào hai khóa phụ và bằng cách kết hợp chúng thành khóa tổng hợp, tôi đã loại bỏ mức độ gián đoạn trong quá trình tra cứu nhằm tăng tốc độ cho mọi thứ một cách độc đáo.
Một tùy chọn tôi đang xem xét đang thay đổi cách tôi sử dụng triển khai BDB hiện tại của mình. Hiện tại tôi có một cơ sở dữ liệu lớn cho tất cả hồ sơ của mình. Tuy nhiên, tôi có thể phân vùng dữ liệu thành các bộ và có một cơ sở dữ liệu cho mỗi bộ - nếu tôi biết rằng tại bất kỳ thời điểm nào tôi sẽ chỉ cần truy cập vào một số bộ nhất định thì tôi có thể tiếp tục đóng những bộ tôi không sử dụng, điều này sẽ giúp bdb quản lý dữ liệu hiệu quả hơn cho tôi. – Joel
Tôi đã sử dụng bdb je. cho tiêu chí của bạn, nó rất phù hợp. Tuy nhiên, tôi đã thực sự thất vọng với sự mong manh của nó, và sẽ không khuyên bạn nên nó để sử dụng sản xuất. bất kỳ trục trặc trong quá trình java gây ra các hệ thống con bdb để yêu cầu khởi động lại, blech! – james
Tôi không chắc chắn ý của bạn là "sự mong manh" của BDB JE. BDB JE có thể mở rộng thành Terabyte dữ liệu và tôi sử dụng nó trong các hệ thống sản xuất mọi lúc. Đó là một công nghệ tuyệt vời. – jasonmp85