Pegasus 是小米云存储团队开发的一个分布式 Key-Value 存储系统,最初的动机是弥补 HBase 在可用性和性能上的不足。Pegasus 系统的 Server 端完全采用 C++ 语言开发,使用 PacificA 协议支持强一致性,使用 RocksDB 作为单机存储引擎。
1.11.0 更新内容:
新特性
- 增加
check_and_mutate
操作的接口和实现 (#161) - 扩展 app_info 结构,增加
create_seconds
和drop_seconds
字段 (XiaoMi/rdsn#154) - 改进 RPC,在 rpc code 不存在或者没有注册 handler 时给客户端返回
ERR_HANDLER_NOT_FOUND
错误码 (XiaoMi/rdsn#149) - 改进冷备份,支持 hdfs-fuse 存储方式 (XiaoMi/rdsn#150)
- 在 rdsn 中嵌入 http server ,以支持可视化监控 (XiaoMi/rdsn#139)
- 改进 redis proxy ,增加
incr/incrby/decr/decrby
命令 (#146) - 增加
ddd_dignose
查询接口,以支持 DDD 诊断功能 (XiaoMi/rdsn#80)
Bug 修复
- 修复 scan 时 context id 可能冲突的问题,降低冲突概率 (#158)
- 修复 learn 过程中计数器
learn_app_concurrent_count
增减不一致造成 learn 过程被阻塞的 bug (#153) - 修复 geo 功能模块中写数据的 bug (#174)
rdsn 模块的化简与重构
- 重构 nfs 相关代码,并将其独立为一个单独的服务模块 (XiaoMi/rdsn#142)
- 重构 filesystem 相关代码 (XiaoMi/rdsn#148)
- 移除 message 相关的 C 接口 (XiaoMi/rdsn#151)
Shell 工具
- 启动 shell 工具时,自动从 meta-server 获取正确的集群名 (#157)
- 改进
ls
子命令,在输出信息中增加create_time
和drop_time
列 (#169) - 改进
app_stat
子命令的输出格式 (#164) - 增加
ddd_diagnose
命令,以支持 DDD 诊断功能 (#175)
脚本工具
- 改进
pegasus_rolling_update.sh
脚本,使其更健壮 (#167)
其他
- 改进编译工具,使用 CMake 编译 rocksdb (XiaoMi/pegasus-rocksdb#9)
- 在第三方依赖中,增加对 gflags 的依赖,升级 libevent 库的版本 (XiaoMi/rdsn#143)
- 提供部署 onebox 集群的 docker file (#138)
- 在 doc 中增加 PPT 文档 (#154)
转自 https://www.oschina.net/news/99738/pegasus-1-11-0-released