这种情况约为10亿条记录.每个记录具有1kb的数据大小,并存储在SSD中.
哪个kv存储可以提供最佳的
随机读取
性能?它需要减少每个
查询只有1次的磁盘访问,并且所有的数据索引将被存储在内存中.
Redis很快,但是将1 TB数据存储在内存中太贵了.
LevelDB每个查询读取磁盘多次.
我发现最接近的一个是胖子,但它不是持久的.这是一个SSD支持的memcached.
有什么建议么?
RocksDB可能是您的选择,其针对
快速存储(如内存和闪存盘)及其高度可定制性进行了优化.如果您的应用程序在初始批量加载后是只读的,那么您可以将RocksDB配置为在
一个单个大
文件中压缩所有
内容.以这种方式,读数保证至多具有单个I / O.但是,如果您的应用程序同时处理读写操作,那么为了每次读取最多有
一个I / O,您需要牺牲写入
性能,因为您需要配置rockdb以便经常压缩,并且会影响写入
性能.
RocksDB的调试指南也可以在here找到.