Java:大型持久哈希结构?

Ric*_*d H 7 java hash persistent

我在java中寻找一个持久的哈希结构,一个简单的键值存储,其中key是唯一的字符串,值是int.每次将现有密钥添加到商店时,密钥的值都会递增.

我需要这个很大 - 可能是500m - 10n键.我一直在评估tokyo-cabinet http://fallabs.com/tokyocabinet/javadoc/但不确定它的扩展程度 - 随着哈希的增长,插入时间似乎越来越长.

关于什么可能合适的任何想法?

谢谢

编辑:为了减少磁盘I/O,我将在内存中的HashMap中缓存数据,然后在缓存增长到一定大小时一次性更新持久性哈希.

编辑2:持久性的原因之一是我有限制的RAM,4GB,所以我无法在内存中加入大量的结构.

Ska*_*rab 5

我认为Megamap就是你要找的东西:http://megamap.sourceforge.net/ .以下是Megamap在其主页上的简短描述:

MegaMap是一个映射(或散列表)的Java实现,可以存储无限量的数据,仅受可用磁盘空间量的限制.存储在地图中的对象将持久保存到磁盘.内存缓存实现了良好的性能.出于所有实际原因,MegaMap可以被视为具有无限存储空间的地图实现.