tera

An Internet-Scale Database.

BSD-3-CLAUSE License

Stars
1.9K

Bot releases are visible (Hide)

tera - Release v2.14 Latest Release

Published by smwyzi over 5 years ago

新特性:

  1. 负载均衡增加meta表独占迁移策略;
  2. Hash 表功能提供;
  3. ts单点故障检测和服务恢复
  4. 本地ssd缓存引入全新的persistent cache管理机制
  5. 负载均衡支持异构机型
  6. 支持多租户,引入权限控制和quota限制功能
  7. leveldb日志库支持按文件大小切分
  8. 增加全局流程并发控制
  9. 增加全局dfs流控
  10. 增加sdk filter功能

性能提升:

  1. 单tablet小value 插入性能优化
  2. ts cpu和内存多处性能优化

稳定性提升和问题修复:

  1. master safemode优化
  2. 完善meta表修改运维工具
  3. 其它若干问题修复
tera - Release v2.11

Published by Ye-Tian-Zero over 6 years ago

Server

  1. Tera 性能优化,在1kB value size的基线场景下:

    • 稳定写吞吐提升1倍(在底层文件系统吞吐能够支持的情况下),目前约10M/s。
    • 随机读qps性能由 4.8w 提升至 7.3w 左右。
    • Batch Scan 性能提升4 ~ 5倍,目前极限约 450M/s。
    • 单tablet 读热点性能提升1.75倍,qps 从 4w 提升至 11w。
  2. Tera 稳定性提升:

    • Master & Table 状态机重构。
    • 修复load tablet 过程出现Current丢失的问题。
    • unload过程优化,加速unload过程,解决自身机制导致的unload过慢引发 kick ts 问题。
    • 负载均衡优先调整pending节点。
    • 增加 tablet corruption 监控。
    • 同压力下 CPU 开销降低:
    • 5M/s 写吞吐,单机CPU 从 22% 降低到 5%。
    • 4.8W qps 随机读,单机CPU 从 41% 降低到 24%。
  3. 事务

    • 提供GlobalTranaction 全局事务功能。
    • 提供Observer 触发计算功能。
  4. 其他常规bug修复及功能更新。

SDK

  1. 修复了SDK生命周期导致出Core的问题,对业务方透明。
  2. 删除 RowReader、RowMutation 中 GetTransaction() ,GetTable() 接口,需使用的业务方关注。
tera - Release v0.7.0

Published by yvxiang about 7 years ago

New functions:

  • Support read multiple versions in signal row transiction
  • Make nexus session timeout configurable

Bugfix:

  • bugfix for zookeeper adapter
  • bugfix for machine down in tablet merge
tera - Release v0.5.7

Published by 00k over 7 years ago

New functions:

  • Add r/w SLA info in SDK
  • Load check can ignore file-system error of parent-tablets' directory
  • Support update schema of old-style kv-table
  • Remove first query RPC for new tabletserver to speed up recovery
  • Add timeout precision flags into SDK
  • Tabletserver unloads all tablets on exit

Bugfix:

  • delay task may continue to run after Table object deleted by user
tera - Release v0.4.6

Published by taocp over 7 years ago

1). nexus version bump to 0.15
2). bugfix of DBImpl::Write() assert fail

tera - Release v0.5.5

Published by taocp over 7 years ago

版本要点:

增强在网络抖动&文件系统异常时的稳定性
tera - Release v0.5.4

Published by 00k almost 8 years ago

Release note:

  • Support Protobuf v2.4

版本要点:

  • 支持protobuf v2.4
tera - Release v0.4.5

Published by 00k almost 8 years ago

Release note:

  • Support Protobuf v2.4

版本要点:

  • 支持protobuf v2.4
tera - Release v0.5.3 bin

Published by taocp almost 8 years ago

release binary for v0.5.3

tera - Release v0.5.3

Published by 00k almost 8 years ago

Bugfix

  • when split fails and tabletserver is down, no tabletserver will load the tablet
  • when merge fails, one tablet may stay in OnMerge state forever
  • under Zookeeper environment, master and tabletnode use different UUID

问题修复

  • 修复分裂失败且相应的tabletserver刚好发生宕机时,tablet处于Ready状态但并未加载的问题
  • 修复合并失败后tablet永久处于OnMerge状态且未被加载的问题
  • 修复在zookeeper环境下master和tabletserver使用不同的UUID的问题
tera - Release v0.4.4

Published by 00k almost 8 years ago

This release update dependencies: replace trunk with released version; replace too old version with newer version.

The list of all dependencies:

  • BOOST_VERSION=1_58_0
  • PROTOBUF_VERSION=2.6.1
  • SNAPPY_VERSION=1.1.3
  • SOFA_PBRPC_VERSION=1.1.1
  • ZOOKEEPER_VERSION=3.4.9
  • GFLAGS_VERSION=2.1.2
  • GLOG_VERSION=0.3.3
  • GTEST_VERSION=1.8.0
  • LIBUNWIND_VERSION=0.99
  • GPERFTOOLS_VERSION=2.5
  • INS_VERSION=0.14
tera - Release v0.5.2

Published by taocp almost 8 years ago

  1. Support travis
  2. Update build.sh
  3. Update test scripts
  4. Bugfix: sync failed
  5. Bugfix: invalid row-delete
  6. Bugfix: invalid status of disabled table
tera - Release v0.5.1

Published by taocp almost 8 years ago

截至2016.11.08
base: master

版本要点

  1. 将tera的key作为mysql的primary key支持seek
  2. 重构SDK头文件,重写大部分注释
  3. SDK成员变量命名风格统一为name_
  4. 支持SDK记录当前代码版本
  5. Python SDK支持用户自定义libtera_c.so的路径
  6. 支持扩展性更高的manifest格式
  7. 写manifest移出lock范围
  8. 增强原子计数器的准确度
  9. 支持table_cache的大小以size指定
  10. 增加cache的profile信息
  11. 提供通用的scheduler脚本(负载均衡)
  12. 增加tablet状态更新信息支持scheduler对游离tablet的判断
  13. 支持元信息的管理和只读权限分离
  14. 记录RPC请求的源ip和port
  15. 支持测试case的生成和运行分离
  16. 升级build脚本以及各个依赖版本
  17. 文档:增加SDK各模块文档、单行事务文档,更新onebox文档

问题修复

  1. 修复在gcc4下的编译问题
  2. 修复enable和disable过程中可能触发的bug
  3. 修复多线程负载均衡可能触发的问题
  4. 修复线程池1ms定时任务很不准确的问题
  5. 修复nexus sdk在lock返回时session id可能变化导致的问题
  6. 修复ttlkv表scan提前终止的bug
  7. 修复负载均衡过程中master内存变更触发的bug
tera - Release v0.3.2

Published by taocp about 8 years ago

版本要点

稳定性提升

问题修复

  1. 修复nexus sdk在执行Lock()时session-id可能变化触发的bug #984
tera - Release v0.4.2

Published by 00k about 8 years ago

版本要点

稳定性提升

问题修复

修复因线程池timer精度低导致SDK的CPU利用率过高的问题 #972

tera - Release v0.5.0

Published by xupeilin about 8 years ago

截至2016.08.01
base: master

版本要点
  • 动态负载均衡升级,支持写、扫描负载
  • 分片分裂合并优化
    • 支持写热点加速分裂
    • 写负载高的tablet不进行合并
  • 支持回传客户端分片状态更新时间
  • teracli支持传入分片集合进行compact
  • mysql版本支持5.6.31
  • teracli支持关闭二进制字符输出
  • sdk timeout性能优化
问题修复
  • 合并超时容错
  • libtera_c锁错误
  • cookie目录不存在时进行创建
  • WriteTabletTask Counter计数错误
  • cookie文件名修正
  • TTLKv scan产生重复数据
tera - Release v0.4.1

Published by 00k over 8 years ago

截至2016.07.13
base: v0.4.0

版本要点

SDK性能大幅提升

tera - Release v0.4.0

Published by 00k over 8 years ago

截至2016.05.27
base: master

新增功能

teracli支持按照tablet进行扫描
支持不停服务变更CF及其属性
支持大行的用户自定义Filter
增加双集群API
增加table_cache和block_cache的命中率统计
teracli增加disable命令的进度条显示
teracli的写接口支持指定时间戳
增加master上的tablet可用性统计
支持根据cell数量上限控制扫描粒度
支持Flash表的异步SSD文件拷贝
Python SDK增加异步读接口
提高了teracli的输出可读性
增加了SDK的Table单例性,即用户多次打开同一个表格会指向同一份内部资源
ErrorCode中增加了失败的重试次数信息,增加了ToString接口
丰富了SDK的统计信息

关键bug修复

修复了SDK在RowReader超时后收到读成功回调时会发生coredump的问题
修复了memtable_on_leveldb因不支持快照保护导致失去单行写入原子性的问题
修复了流式扫描结果的版本数不符合schema的问题
修复了tablet在手动compact过程中发生unload时会死锁的问题
修复了compact生效时不检查CURRENT文件rename操作返回值的问题
修复了流式扫描过程中同一迭代器的compact_strategy被误初始化的问题
修复了SDK进行读写重试时可能因请求数过多导致RPC请求打包过大进而失败的问题
修复了master在增量GC中可能发生coredump的问题

其它变更

编译产出增加了SDK动态链接库,内置所有第三方依赖
编译时使用的sofa-pbrpc和nexus由主干改为发布版,所有第三方依赖均已采用发布版
tera - Release v0.3.1

Published by xupeilin over 8 years ago

截至2016.04.28
base: v0.3.0

版本要点

稳定性提升

问题修复
  • Manual Compact执行过程中无法卸载分片
  • tera_mark运行过程中可能出core
  • master gc策略在表格删除情况下可能出core
  • master在出现zk断连等合理异常时,不再产生core文件
  • 线程池正在运行线程统计错误
  • tera_mark中也增加了version功能
  • sdk传输数据时,增加最大包限制,防止突破protobuffer极限
tera - Release v0.3.0

Published by xupeilin over 8 years ago

截至2016.02.02
base: master

新增功能
  • 支持level0文件参与tablet分裂,确保成功
  • 增加tablet 写负载显示
  • master垃圾收集由批量转为增量
  • 新增python sdk
  • 增加快速teracli-show模式,可显示集群数据总和
  • 增加对用户数据写入异常的限制
  • 支持按读进行负载均衡
关键bug修复
  • master拆分线程池,query用单独线程池处理
  • split/merge生成tablet时,CreateDir失败,会导致tablet不可用
  • sysinfo精度太低,qps统计不准
  • master gc同时后台清理trash目录
  • sst文件超过200M时,compact会发生溢出(int)
  • tablet刚生成时宕机,可能残留空MANIFEST
  • 建表、删表时meta与master内存不一致
  • Env_dfs Rename非原子操作
  • manifest切换时未释放锁
  • 删除标记寻找Base level时,迭代器越界
  • tabletnode执行已超时任务请求,资源浪费
  • kv表scan时,切换buffer时多一条数据
  • sdk析构时未清理延时任务