Tôi đang tìm cấu trúc băm liên tục trong java, một kho khóa-giá trị đơn giản, trong đó khóa là một chuỗi và giá trị duy nhất là một int. Giá trị của một khóa được tăng lên mỗi lần một khóa hiện có được thêm vào cửa hàng.Java: cấu trúc băm liên tục lớn?
Tôi cần điều này là khá lớn - có thể là các khóa 500m - 1bn. Tôi đã đánh giá tokyo-cabinet http://fallabs.com/tokyocabinet/javadoc/ nhưng không chắc chắn nó sẽ mở rộng như thế nào - thời gian chèn dường như nhận được lâu hơn khi băm tăng lên.
Bất kỳ ý tưởng nào về điều gì có thể phù hợp?
Cảm ơn
Edit: Để giảm đĩa I/O Tôi sẽ được bộ nhớ đệm dữ liệu trong một HashMap trong bộ nhớ, sau đó cập nhật các hash dai dẳng trong một đi khi bộ nhớ cache để phát triển một kích thước nhất định.
Chỉnh sửa2: Một trong những lý do cho sự kiên trì là tôi có RAM giới hạn, 4GB, vì vậy tôi không thể phù hợp với một cấu trúc lớn vào bộ nhớ.
Câu hỏi thú vị. –
Bạn có loại vấn đề sẽ bị giới hạn bởi lựa chọn phần cứng của bạn. Bạn nên thiết kế phần mềm của bạn để làm việc xung quanh giới hạn này, tuy nhiên bạn đã chỉ cho phép mình 4 byte cho mỗi mục bạn sẽ phải chịu bởi vì hiệu suất đĩa của bạn có thể chậm hơn 1000 lần so với bộ nhớ chính. –