Skip to content

Releases: apache/incubator-pegasus

v1.12.0

19 Nov 08:22
Compare
Choose a tag to compare

See #409 for details.

Highlights in this release:

  • HTTP Support
  • Multi-tenant Support
  • Prometheus Support
  • CPU Profiling Support
  • Bug Fixes

v1.11.6

23 Aug 11:03
Compare
Choose a tag to compare

See #354 for details.

Highlights in this release:

  • Important bugfix on failure detection
  • Stability Fixes
  • Optimization of Memory Usage

v1.11.5

27 Jun 03:34
Compare
Choose a tag to compare

Release Notes of v1.11.5

Refer to #341 for detailed updates.

This is a minor release, including:

Improvements on Capacity Unit

#339, XiaoMi/rdsn#261

HTTP memory profiling support

XiaoMi/rdsn#225

Shell & Tools(sample/bench/redisproxy) updates

Support of JSON ouput in shell: #329, #290, XiaoMi/rdsn#254, XiaoMi/rdsn#223

Support exact match : #303

Upgrading from the previous version

[pegasus.collector]
--  cu_stat_app = stat
--  cu_fetch_interval_seconds = 8
++  usage_stat_app = stat
++  capacity_unit_fetch_interval_seconds = 8
++  storage_size_fetch_interval_seconds = 3600

v1.11.4

10 Jun 06:57
Compare
Choose a tag to compare

See this issue #330 for details.

Highlights in this release:

  • Support Capacity Unit Calculation
  • Bug Fixes
  • Introduce new perf-counters

v1.11.3

27 Feb 10:04
Compare
Choose a tag to compare

新特性

  • 改进客户端查询路由表逻辑,支持让非主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,并将心跳超时的默认时间调长 (#247 XiaoMi/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 (#242 XiaoMi/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)

v1.11.2

14 Dec 12:02
Compare
Choose a tag to compare

新特性

Bug修复

性能优化

Shell工具

  • 增加cc [cluster_name],切换操作的集群 (#178)
  • count_data -z可输出数据大小的histogram数据(#216)
  • count_data可输出不同hashkey的数量(#223)
  • 增加ls统计app数量的功能(XiaoMi/rdsn#202)
  • 增加二维数据输出工具(#213)

重构与化简

其他

  • 增加选项以关闭 tcmalloc,使 valgrind 能正确测试内存泄漏 (XiaoMi/rdsn#170)
  • 编译Pegasus时,可选择不编译rdsn的测试,加快编译速度(#182)
  • 将第三方包放到阿里云机器,避免下载缓慢的问题(XiaoMi/rdsn#193)
  • 增加 format-files.sh 脚本用于代码格式化 (#205)
  • docker file支持ubuntu 16.04(#214)
  • 修复某些情况下在64位机上的编译问题(XiaoMi/rdsn#189)
  • 修复 google/s2geometry 依赖下载失败的问题 (XiaoMi/rdsn#166 XiaoMi/rdsn#168)
  • 修复用户使用 boost 1.68 库编译失败的问题 (#195)
  • 修复部分环境下的打包问题(#210 #232)

兼容性

  • max_input_queue_length已弃用,可从配置文件中删除(XiaoMi/rdsn#191)

v1.11.1

14 Sep 16:39
Compare
Choose a tag to compare

新特性

  • 支持 incr 同时原子修改 ttl (#178)

Bug 修复

  • 修复 c++ client 头文件因 check_and_mutate 引用 thrift 的问题,重构代码避免 client.h 直接引用 dsn::apps::mutate (#177)

rdsn模块的化简与重构

  • 删除 service_api 相关的部分无用代码 (XiaoMi/rdsn#157)
  • 删除 dsn.cmake 中与 windows 支持相关的部分无用代码 (XiaoMi/rdsn#160)
  • 将 cli 与 core 解耦,删除 cli_remote/cli_local 这两个配置,同时将散落各处的 cli 相关代码合并在一起 XiaoMi/rdsn#156

v1.11.0

06 Sep 06:47
Compare
Choose a tag to compare

新特性

  • 增加check_and_mutate操作的接口和实现(#161)
  • 扩展app_info结构,增加create_secondsdrop_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模块的化简与重构

Shell工具

  • 启动shell工具时,自动从meta-server获取正确的集群名(#157)
  • 改进ls子命令,在输出信息中增加create_timedrop_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)

v1.10.0

19 Jul 07:05
Compare
Choose a tag to compare

新特性

  • 新增原子incr接口,支持原子增减操作(#112)
  • 新增原子check_and_set接口, 支持原子CAS操作(#122)
  • 新增geo功能库, 支持set, del, search_radial接口, 并在redis proxy中适配redis的相关geo接口(#74)
  • 增加错误注入工具, 便于编写更完善的单元测试(XiaoMi/rdsn#120)
  • 在replication框架中, 为task_code增加is_idempotent属性, 以便区分幂等非幂等操作(XiaoMi/rdsn#122)
  • rpc_holder中添加response属性, 便于编写某些场景的单元测试(XiaoMi/rdsn#125)
  • 新增string_view::find函数(XiaoMi/rdsn#128)

Bug修复

优化/重构

  • 优化redis proxy, 使得在解析消息发生错误时, 不再抛异常(#104)
  • 优化replica server的写流程, 并加入错误注入测试, 模拟rocksdb发生各种错误(#117)
  • 重构perf_counter, 并从pegasus中独立成rdsn单独的模块, 以便系统中其他模块使用(XiaoMi/rdsn#134)
  • 统一使用rdsn中的buf2xxx实现方式(#114)
  • 移除clientlet, 增加thread_access_checker, 使得rDSN中的概念更清晰(XiaoMi/rdsn#121)
  • 将pegasus bench从rocksdb中移到pegasus,解除耦合(#123)
  • 重构message_parser, 简化代码(XiaoMi/rdsn#131)
  • 移除fastrun(XiaoMi/rdsn#117)

Shell工具

  • 新增incr, check_and_set子命令(#122)

脚本工具

  • 增加scripts/pegasus_replica_thread.sh脚本,统计一个table的replica在各个节点的线程分布情况(#115)
  • 在Falcon Screen配置模本文件scripts/falcon_screen.json中添加incr, check_and_set接口调用的监控项(#122)

v1.9.2

02 Jul 02:12
Compare
Choose a tag to compare

Bug修复

  • 修复rpc_session在接受新连接后可能会导致double free的bug

脚本工具

  • 让shell命令和falcon自动创建screen的脚本支持minos2.0