请选择 进入手机版 | 继续访问电脑版
  • 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

3TS: Tencent Transaction Processing Testbed System(简称3TS),是腾讯公司CynosDB ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

3TS

开源软件地址:

https://gitee.com/mirrors_Tencent/mirrors_Tencent_3TS

开源软件介绍:

简介

Tencent Transaction Processing Testbed System(简称3TS),是腾讯公司CynosDB(TDSQL)团队与中国人民大学数据工程与知识工程教育部重点实验室,联合研制的面向数据库事务处理的验证系统。该系统旨在通过设计和构建事务(包括分布式事务)处理统一框架,并通过框架提供的访问接口,方便使用者快速构建新的并发控制算法;通过验证系统提供的测试床,可以方便用户根据应用场景的需要,对目前主流的并发控制算法在相同的测试环境下进行公平的性能比较,选择一种最佳的并发控制算法。目前,验证系统已集成13种主流的并发控制算法,提供了TPC-C、PPS、YCSB等常见基准测试。3TS还进一步提供了一致性级别的测试基准,针对现阶段分布式数据库系统的井喷式发展而造成的系统选择难问题,提供一致性级别判别与性能测试比较。

如需更详细理解本项目目的,请参阅3TS开源声明

特性

  1. 支持三种history的生成方式:遍历生成、随机生成、从文本读取
  2. 内置多种算法,包括:可串行化、冲突可串行化、SSI、BOCC、FOCC等
  3. 支持从执行时间和回滚率两个角度评估算法开销

环境依赖

3TS-DA

  • 支持C++17或以上版本的编译器(建议使用g++8)
  • libconfig 1.7.2
  • gflags 2.1.1
  • gtest 1.6.0

Deneva

  • protobuf 3.9.1
  • curl 7.29.0
  • nanomsg 5.1.0

使用方法

  • 执行make.sh编译代码,编译成功后会生成3ts二进制文件
  • 执行cp config/config.cfg.template config.cfg,复制一份配置文件
  • 执行vi config.cfg,填写配置,决定测试的行为
  • 执行./t3s --conf_path=config.cfg,即可执行测试,测试完成后会在本地生成测试结果文件

基本原理

3TS框架由四部分构成:

  • 运行模式(runner):负责控制框架的行为。目前框架提供两种运行方式,具体使用何种运行方式,请在配置文件中的Target配置项下指定,如Target = ["FilterRun"]
    • FilterRun:输出各个算法对各个history的检测结果,同时可以对检测结果进行筛选
    • BenchmarkRun:用于测试性能,输出不同事务数量、变量数量场景下,各个算法检测指定数量的history所需要消耗的时间
  • 生成器(generator):负责生成history。
  • 算法(algorithm):对生成器所生成的history进行检测。目前框架提供如下算法:
    • 可串行化检测算法(基于可串行化的定义,判断history是否满足可串行化条件,但判定并发序列和串行序列的执行结果是否一致的标准,以及各个事务所采取的读策略有所不同):
      • 四种读策略下,以各事务读集相同各变量终态一致为标准的,可串行化检测算法
        • "SerializableAlgorithm_ALL_SAME_RU" // 未提交读策略
        • "SerializableAlgorithm_ALL_SAME_RC" // 已提交读策略(读取最新的已提交版本,天然避免了由脏读异常带来的不可串行化情况)
        • "SerializableAlgorithm_ALL_SAME_RR" // 可重复读策略(当事务第二次读到某一变量时,取第一次读到的版本,天然避免了由不可重复读异常带来的不可串行化情况)
        • "SerializableAlgorithm_ALL_SAME_SI" // 快照读策略(天然避免了由幻读异常带来的不可串行化情况)
      • 四种读策略下,以各提交状态事务读集相同各变量终态一致为标准的,可串行化检测算法
        • "SerializableAlgorithm_COMMIT_SAME_RU" // 未提交读策略
        • "SerializableAlgorithm_COMMIT_SAME_RC" // 已提交读策略
        • "SerializableAlgorithm_COMMIT_SAME_RR" // 可重复读策略
        • "SerializableAlgorithm_COMMIT_SAME_SI" // 快照读策略
      • 四种读策略下,仅以各变量终态一致为标准的,可串行化检测算法
        • "SerializableAlgorithm_FINAL_SAME_RU" // 未提交读策略
        • "SerializableAlgorithm_FINAL_SAME_RC" // 已提交读策略
        • "SerializableAlgorithm_FINAL_SAME_RR" // 可重复读策略
        • "SerializableAlgorithm_FINAL_SAME_SI" // 快照读策略
    • 冲突可串行化检测算法:"ConflictSerializableAlgorithm"
    • SSI检测算法:"SSI"
    • WSI检测算法:"WSI"
    • BOCC检测算法:"BOCC"
    • FOCC检测算法:"FOCC"
  • 输出器(outputter):对算法的检测结果进行相应统计,并输出到指定文件中。

其余配置项说明,请参考配置文件相关注释。

许可证

GPLv3 @ Tencent


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap