Pegasus 1.11.3 发布了。Pegasus 是小米云存储团队开发的一个分布式 Key-Value 存储系统,最初的动机是弥补 HBase 在可用性和性能上的不足。Pegasus 系统的 Server 端完全采用 C++ 语言开发,使用 协议支持强一致性,使用 作为单机存储引擎。
新版更新内容如下:
新特性
-
改进客户端查询路由表逻辑,支持让非主MetaServer返回主MetaServer的真正地址,方便扩展新的MetaServer节点 ( )
-
支持为rocksdb不同level的文件配置不同的压缩算法 ()
-
改进Manual-Compact功能,增加环境变量
manual_compact.max_concurrent_running_count
,支持限制compact并发数 () -
增加环境变量
rocksdb.checkpoint.reserve_min_count
和rocksdb.checkpoint.reserve_time_seconds
,支持动态修改rocksdb checkpoint保留策略 () -
为ReplicaServer增加远程命令
useless-dir-reserve-seconds
,支持动态修改无用文件夹的保留时间,方便快速释放存储空间 () -
增加cluster balance indicator功能,监控集群的负载均衡状态 ( )
Bug修复
-
修复统计过程中对浮点数处理不当造成数据不准确的问题 ( )
-
修复在关闭block_cache后对空指针进行非法访问的bug ()
-
修复failure detection无法保证同一时刻只有一个primary的bug,并将心跳超时的默认时间调长 ()
-
修复编译脚本中没有链接上tcmalloc库的bug ()
性能优化
-
修改rocksdb的默认压缩算法为lz4 ()
-
改进Manual-Compact功能,在执行完成后尽快清理老的checkpoint,以快速释放存储空间 ()
-
改进Cold-Backup功能,在执行完成后立即清理backup文件夹下的checkpoint,以快速释放存储空间 ()
重构与化简
-
重构partition resolver模块:将该模块移到replication/client下面,并移除uri resolver ()
Shell工具
-
重构输出结果的表格格式化打印工具 ()
-
改进copy_data/clear_data/count_data命令,支持对HashKey/SortKey/Value进行条件过滤 ( )
-
改进app_stat命令,显示app_id和partition_count数据列,并增加
--only_usage
选项 ( ) -
改进nodes命令,增加
--resource_usage
选项,显示各节点的资源使用情况 ()
其他
-
增加
pegasus_check_clusters.py
脚本,用来检查集群的负载均衡状态 () -
改进
.travis.yml
,避免编译thirdparty库 ( ) -
编译时不再下载
bin/Linux/thrift
,只在调用compile_thrift.py
时按需要下载 () -
完善pegasus-thirdparty-prebuild预编译包,包含完整的依赖库,解决依赖库不完整的问题 ()
-
改进
.travis.yml
,在编译之前自动执行clang-format
进行代码风格检查 () -
改进falcon screen自动生成脚本,完善监控图统计项,调整监控图展示顺序 ( )
-
改进pack工具,修复了一些小问题 ( )
-
改进推荐的配置文件
src/server/config.ini
()
兼容性
-
推荐的配置文件中,客户端MetaServer地址的配置方式发生改变,原来的[uri-resolver]段被弃用,使用新的[pegasus.clusters]段 ()
-
推荐的配置文件中,失败检测心跳超时的时间由原来的10秒增加到20秒 ()
下载地址: