SSDB 支持 Snappy 压缩了

ideawu 发布于 2013/10/11 16:21
阅读 823
收藏 1

转自: http://www.ideawu.net/blog/archives/748.html

SSDB 数据库服务器从 1.6.2 版本开始, 支持 Snappy 数据压缩. Snappy 是一个由 Google 公司开发的压缩库, 在 Google 内部应用非常广泛, 同时也在很多知名开源软件中得到应用, 如 Cassandra, Hadoop 等.

LevelDB 也是可以使用 Snappy 的, 但不是强制绑定, 而是在编译 LevelDB 时自动判断使用. 但是, 在编译 LevelDB 时要添加关于 Snappy 的参数, 而且在编译使用了 LevelDB 的程序(如 SSDB)中也要添加关于 Snappy 的参数, 所以经常出现编译出错.

不过, 从 SSDB 1.6.2 版本起, SSDB 修改了 LevelDB 的编译参数, 总是使用 Snappy, 并且在源码中附带了 Snappy, 避免依赖关系错误. SSDB 在源码级别整合了 Snappy, 并且默认把 Snappy 编译进 LevelDB 中, 但是, 你仍然可以在 SSDB 的配置文件中配置成不使用压缩, 这只是一个可选项, 并不是强制的. 而且, 带有 Snappy 的 SSDB 完全兼容原来没有经过压缩的数据, 所以, 1.6.2 版本的 SSDB 兼容旧版本.

在一个简单的单项数据大小为 100K 的 Key-Value 数据的测试中, Snappy 可以达到 90% 的压缩比(也就是压缩后的体积是压缩前的 10%).

如果想启用 Snappy 压缩, 你需要在 ssdb.conf 的 leveldb 一节增加配置:

leveldb:
	compression: yes

如果没有这个选项, 默认是 no, 也即不压缩.

SSDB 是一个开源的 KV NoSQL 数据库, 使用 C++ 语言开发, 非常适合存储数百亿元素的大型列表, 还支持 zset(sort set). 欢迎大家使用, 项目地址是: https://github.com/ideawu/ssdb

Related posts:

  1. SSDB 解决了 Snappy 导致 LevelDB 编译失败的问题
  2. LevelDB 服务器 SSDB 支持主从(master-slave)同步了!
  3. SSDB – 支持 zset 的 LevelDB 服务器
  4. SSDB 已经支持在线备份功能!
  5. SSDB 增加了 Compaction 限速功能

Tags: LevelDB, NoSQL, Snappy

加载中
返回顶部
顶部