高性能持久密钥值存储,用于大量记录

avh*_*ker 11 database solid-state-drive key redis leveldb

该场景大约有10亿条记录.每条记录的数据大小为1kb,并存储在SSD中.哪个kv商店可以提供最佳的随机读取性能?它需要将每次查询的磁盘访问次数减少一次,并且所有数据索引都将存储在内存中.

Redis速度很快,但在内存中存储1 TB数据太昂贵了.LevelDB每次查询多次读取磁盘.我找到的最接近的是fatcache,但它并不持久.这是一个SSD支持的memcached.

有什么建议?

kee*_*lar 8

RocksDB可能是您的选择,它针对内存和闪存盘等快速存储进行了优化,并且具有高度可定制性.如果您的应用程序在初始批量加载后是只读的,那么您可以配置RocksDB来压缩一个大文件中的所有内容.这样,读取保证最多只有单个I/O. 但是,如果您的应用程序同时处理读取和写入操作,那么为了每次读取最多只有一个I/O,您需要牺牲写入性能,因为您需要经常将rocksdb配置为压缩,这会损害写入性能.

RocksDB的调整指南也可以在这里找到.