Pegasus 1.11.3 发布,小米分布式 KV 储存系统

  

Pegasus 1.11.3 发布了。Pegasus 是小米云存储团队开发的一个分布式 Key-Value 存储系统,最初的动机是弥补 HBase 在可用性和性能上的不足。Pegasus 系统的 Server 端完全采用 C++ 语言开发,使用 PacificA 协议支持强一致性,使用 RocksDB 作为单机存储引擎。

新版更新内容如下:

新特性

  • 改进客户端查询路由表逻辑,支持让非主MetaServer返回主MetaServer的真正地址,方便扩展新的MetaServer节点 (XiaoMi/rdsn#212 XiaoMi/rdsn#217)

  • 支持为rocksdb不同level的文件配置不同的压缩算法 (#243)

  • 改进Manual-Compact功能,增加环境变量manual_compact.max_concurrent_running_count,支持限制compact并发数 (#250)

  • 增加环境变量rocksdb.checkpoint.reserve_min_countrocksdb.checkpoint.reserve_time_seconds,支持动态修改rocksdb checkpoint保留策略 (#252)

  • 为ReplicaServer增加远程命令useless-dir-reserve-seconds,支持动态修改无用文件夹的保留时间,方便快速释放存储空间 (XiaoMi/rdsn#215)

  • 增加cluster balance indicator功能,监控集群的负载均衡状态 (#269 XiaoMi/rdsn#214)

Bug修复

  • 修复统计过程中对浮点数处理不当造成数据不准确的问题 (#234 #246)

  • 修复在关闭block_cache后对空指针进行非法访问的bug (#241)

  • 修复failure detection无法保证同一时刻只有一个primary的bug,并将心跳超时的默认时间调长 (#247XiaoMi/rdsn#213)

  • 修复编译脚本中没有链接上tcmalloc库的bug (#289)

性能优化

  • 修改rocksdb的默认压缩算法为lz4 (#240)

  • 改进Manual-Compact功能,在执行完成后尽快清理老的checkpoint,以快速释放存储空间 (#253)

  • 改进Cold-Backup功能,在执行完成后立即清理backup文件夹下的checkpoint,以快速释放存储空间 (XiaoMi/rdsn#216)

重构与化简

  • 重构partition resolver模块:将该模块移到replication/client下面,并移除uri resolver (#242XiaoMi/rdsn#205)

Shell工具

  • 重构输出结果的表格格式化打印工具 (XiaoMi/rdsn#220)

  • 改进copy_data/clear_data/count_data命令,支持对HashKey/SortKey/Value进行条件过滤 (#271 #292)

  • 改进app_stat命令,显示app_id和partition_count数据列,并增加--only_usage选项 (#271 #285 #288)

  • 改进nodes命令,增加--resource_usage选项,显示各节点的资源使用情况 (#277)

其他

  • 增加pegasus_check_clusters.py脚本,用来检查集群的负载均衡状态 (#244)

  • 改进.travis.yml,避免编译thirdparty库 (#240 XiaoMi/rdsn#206)

  • 编译时不再下载bin/Linux/thrift,只在调用compile_thrift.py时按需要下载 (XiaoMi/rdsn#207)

  • 完善pegasus-thirdparty-prebuild预编译包,包含完整的依赖库,解决依赖库不完整的问题 (XiaoMi/rdsn#207)

  • 改进.travis.yml,在编译之前自动执行clang-format进行代码风格检查 (XiaoMi/rdsn#208)

  • 改进falcon screen自动生成脚本,完善监控图统计项,调整监控图展示顺序 (#262 #270 XiaoMi/rdsn#218)

  • 改进pack工具,修复了一些小问题 (#257 #275)

  • 改进推荐的配置文件src/server/config.ini (#294)

兼容性

  • 推荐的配置文件中,客户端MetaServer地址的配置方式发生改变,原来的[uri-resolver]段被弃用,使用新的[pegasus.clusters]段 (#242)

  • 推荐的配置文件中,失败检测心跳超时的时间由原来的10秒增加到20秒 (#247)

更新说明

下载地址:

猜你喜欢

转载自www.oschina.net/news/104798/pegasus-1-11-3-released