OceanBase中的压缩库 -- snappy,lzo,none

对于存储系统来说压缩库是必不可少的,通过压缩数据块,既可以大幅节省磁盘空间,又可以加快IO。

OceanBase中使用了snappy,lzo两种压缩库,可以通过配置选用不同库。同时OceanBase被设计成可以用任何压缩库。如果需要让OceanBase支持一个名为zip的压缩库,只需要做如下几步:

1. 在common/compress/目录下新建zip_compressor.cpp(h)文件,实现(ob_compressor.h)中的ObCompressor中的接口。在你的实现中你可以去调用具体的开源zip库。

2. 编译,会在.libs目录下生成一组libzip_1*的文件 (注意,这是一个隐藏目录,以“."开头)


在部署阶段,部署脚本会把common/compress/.libs下的所有文件都拷贝到部署目录中,并在启动OceanBase server的时候设置LD_LIBRARY_PATH到部署目录

如果你要写测试代码来测试OceanBase sstable模块,也需要指定压缩库。这个时候你需要手工在LD_LIBRARY_PATH中指定libzip_1*所在的路径。


none这个表示不使用压缩,none_compressor.cpp中只是实现了一个空接口,这种面向接口的编程方式在此不赘述。

你可能感兴趣的:(OceanBase中的压缩库 -- snappy,lzo,none)