分布式数据库 30 讲
王磊
光大银行首席数据架构师
29144 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 34 讲
结束语 (1讲)
分布式数据库 30 讲
15
15
1.0x
00:00/00:00
登录|注册

27 | 产品测试:除了性能跑分,还能测个啥?

PlusCal
TLA
使用数学方法证明系统正确性
提升系统容错性
实验性故障注入
测试多知名分布式存储系统
分布式一致性验证
数据模型和事务操作
OLTP场景测试
其他类型的分布式存储系统的主流测试工具
形式化验证
混沌工程
Jepsen
TPC-C
形式化验证
混沌工程
Jepsen
TPC-C
思考题
测试工具
测试方法
测试与验证

该思维导图由 AI 生成,仅供参考

你好,我是王磊,你也可以叫我 Ivan。
这一讲我们的关键词是“测试”。无论是作为程序员还是架构师,我们都不会忽视测试的重要性,它贯穿于软件工程的整个生命周期,是软件质量的重要保障手段。
不过,提到分布式数据库的测试,你也许会有些疑问,我又不是数据库研发人员,还要关心测试吗?
当然是需要了。比如,拿我来说,一名银行的科技人员。银行和很多传统企业一样,多数应用系统都是构建在商业软件之上,对于基础软件研发的投入比较有限,所以多数银行是不具备自研分布式数据库能力的。但是,分布式数据库的高并发、高可用性特点,意味着使用它的一定是非常重要和关键的业务系统。那么,为了保证系统的安全运行,即使不是开发者,我们也仍然需要做大量的验证和测试工作。
说到这,我猜你会想到一个词。对,就是 POC(Proof of Concept)。POC 的意思是概念验证,通常是指对客户具体应用的验证性测试。那验证性测试又具体要测些什么呢?对于数据密集型系统,很多企业的 POC 都会使用 TPC 基准测试。

TPC-C

TPC(Transaction Processing Performance Council),也就是国际事务性能委员会,是数十家会员公司参与的非盈利组织。它针对数据库不同的使用场景组织发布了多项测试标准,其中被业界广泛接受有 TPC-C 、TPC-H 和 TPC-DS。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

混沌工程和形式化验证在分布式系统测试中的重要性 混沌工程和形式化验证是分布式系统测试中的两个关键概念。混沌工程旨在提升系统的容错性,通过在生产环境进行实验来建立对系统抵御不可预知问题的信心。它强调故障注入和观测系统在受控范围内,体现了反脆弱的思想,试图从整体运维的视角提升系统的可用性。另一方面,形式化验证则是通过数学方法去证明系统的正确性,使用数学工具定义程序逻辑,从而达到证明软件无Bug的目标。虽然形式化验证在实际工程中的应用成本较高,但它在验证关键设计逻辑方面具有重要意义。 在测试方面,TPC-C是针对OLTP数据库的测试规范,而Jepsen则是用来测试分布式存储系统的一致性验证框架。TPC-C在企业的POC测试中广泛应用,但需要注意产品针对性优化可能导致评测指标失真,因此对产品架构的深入了解至关重要。而Jepsen通过故障注入的方式进行测试,覆盖了普通测试无法发现的场景,具有一定的权威性。 总之,混沌工程和形式化验证在分布式系统测试中都具有重要意义。混沌工程试图提高系统的可用性和稳定性,而形式化验证则致力于证明系统的正确性。这两个概念为分布式系统测试提供了不同的思路和方法,有助于提升系统的质量和稳定性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(5)

  • 最新
  • 精选
  • ifxdba
    多数银行是不具备自研分布式数据库能力的~~~对于很多城商行或省行有必要使用分布式数据库么? 真的有这个业务需求么?

    作者回复: 28讲我列举了十家银行的选型,并不是说大多数银行都使用了分布式数据库。有意思的是,大型银行更加保守,反而是一些城商行率先上线了分布式数据库,它们并不是从单一的技术视角来评估。

    2020-11-12
    1
  • webmin
    以前看到有文章介绍测试多线程操作时是否会出现死锁的情况,用证伪的用例是很难模拟一些瞬间的情况,最终的手段是使用数学建模的方式来证明,但是文章没有给出具体的理论和工具,今天看到了老师给出可实操的工具,真是捡到宝,感谢老师。

    作者回复: 很高兴对你有帮助:)

    2020-10-14
    1
  • 佳佳的爸
    分布式存储的测试工具很多: 1. 元数据性能测试: mdtest 可以加上mpi 在多机并行执行 2. 存储性能测试: fio,vdbench, iozone, iometer等。其中fio已经成为首选的SSD读写性能测试工具 3. POSIX语义测试: fstest套件。
    2021-06-09
    4
  • 游弋云端
    混沌工程在TIDB和阿里做的比较好,都做了相应的开源。
    2020-10-22
    4
  • wy
    看这片文章开拓了视野,了解到到了混沌工程和tla,对于像数据库这种基础设施,形式化验证少不了,因为它要面对的业务太多太复杂,无法全部通过测试用例的手段去验证。
    2021-01-31
收起评论
显示
设置
留言
5
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部