Github网址:https://github.com/spotify/sparkey
以下来自项目官方描述:
最适合重读取、较少大块数据插入的系统。……你可以将它想象为硬盘上的只读散列表。它是为Spotify某些服务器端使用场景设计和优化的,但可以用于一般目的。
Sparkey包括一个处理索引和日志文件的C语言库libsparkey和从索引与日志中读取信息和值的命令行工具。
Spotify之前使用的是qmail作者所写的cdb和Tokyo Cabinet。但前者有4GB的限制,后者写性能不好而且在同一进程中打开多次文件时也会出现各种问题。因此在某次Hackday决定开发一个新的。设计目的是:
- 随机读的吞吐率与cdb和Tokyo Cabinet类似
- 高吞吐率的块写
- 低开销
- 高数据限额
Hacker News上的讨论对类似的技术进行了比较。被提到的有:Facebook的Haystack,bam(来自Etsy但没有用于生产环境),Google的LevelDB,DiscoDB,lightkv,来自Basho(Riak开发者)的Bitcask,Symas的LMDB……我的天,这么多?
这里有一个性能测试,但要找梯子。