Java Superlight数据库或磁盘上的多值映射,而不是RAM?
我必须存储像Java Superlight数据库或磁盘上的多值映射,而不是RAM?,java,database,jdbc,Java,Database,Jdbc,我必须存储像{long key,long value}这样的对,并且每个键可能有多个值。我需要有效地枚举键并有效地搜索给定键的值 多值映射似乎是一个完美的解决方案,但我将拥有数十亿条记录,因此不可能将它们保存在RAM中 多值映射的最佳文件系统替代品是什么?什么是Java最好的简单但快速的键值数据库?它可能是这些数据库中的一个。顺便说一句,您可以在内存中保留数十亿个16字节的记录。这只是一个钱的问题。花大约1.1万美元,你就可以买到一台内存为192 GB的服务器,足够容纳110亿个条目(不包括索引
{long key,long value}
这样的对,并且每个键可能有多个值。我需要有效地枚举键并有效地搜索给定键的值
多值映射似乎是一个完美的解决方案,但我将拥有数十亿条记录,因此不可能将它们保存在RAM中
多值映射的最佳文件系统替代品是什么?什么是Java最好的简单但快速的键值数据库?它可能是这些数据库中的一个。顺便说一句,您可以在内存中保留数十亿个16字节的记录。这只是一个钱的问题。花大约1.1万美元,你就可以买到一台内存为192 GB的服务器,足够容纳110亿个条目(不包括索引),只要价格翻倍,你就可以获得双倍的内存正当如何使JVM与-Xmx192G一起工作?:)使用64位JVM显然,您必须为操作系统留出几GB的空间。我会使用
-mx192g
作为同一选项的较短版本。花费大约4万美元,您可以获得一台512 MB的服务器,花费70万美元,您可以在一台服务器中获得1 TB的主内存。所有这些都不意味着您将很快购买一台新服务器,但我想指出的是,不适合内存并不是一个技术问题。