《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(2)

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
简介: 《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(2)

《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(1) https://developer.aliyun.com/article/1228682?groupCode=polardbforpg



 

image.png

 

上图列举了TPC-C的五种不同事务类型,包括New-Order下单、Payment支付、Delivery发货、Order-Status查询交易状况、Stock-Level查询库存状况。而最终衡量TPC-C性能结果使用tmpC,表示每分钟执行New-Order事务数,因为New-Order事务反映了下单场景中高频率且响应时间严格的读写混合事务的执行状况,是整个TPC-C workload的核心。Stock -Level库存查询状况中只包含一条查询,使用了子查询和join语句查询仓库的库存状况。

 

New-Order执行的步骤包括以下几步:

 

第一步,从warehouse 表和 customer 表中查询出信息。

 

第二步,更新对应的district地区信息。

 

第三步,向orders表和new_orders表插入一条新记录。

 

第四步,由于客户的一笔订单中会下单多件商品,需要针对购买的每一件商品更新stock表的库存信息,并向order_line表插入一行新记录。

 

第五步,提交事务。

从上述流程也可以体现出TPC-C和Sysbench的差别还在于TPC-C的事务遵循实际业务的规律与约束,而Sysbench则是纯随机的增删改查,不具备TPC-C测试的特性。因此,TPC-C具备数据完整性和一致性的概念,其规范包含了对数据完整性的约束。该约束与TPC-C的运行时间无关,比如orders表里持久化保存了所有下单记录,运行时间越来越长,orders表也会越来越大。从完整性约束中,可以推导出6条SQL(详情见后文),用于验证TPC-C的数据完整性。

 

image.png

 

TPC-H主要用于测评OLAP分析型查询的能力,而Sysbench和TPC-C则用于测评OLTP在线事务处理的能力。TPC-H包含了8张数据表、22条复杂的SQL查询,大多查询中还包含了多表join子查询、group-by等聚合操作。对于数据库的考验除了优化器的Join Reorder、join算法的选择,还有执行器、各种算子实现与多机并行执行等逻辑实现。

 

用户在使用上述3类测试工具的过程中会面临一系列问题,比如工具的编译、部署、执行结果如何收集统计、如何方便快捷地可视化呈现以及导入大规模数据应该如何选择合适的并发度等。

 

image.png

 

针对以上问题,我们推出了Benchmark Boot一站式压测平台,主打一站式、兼容性、易用性、可视化,一站式体现在内置了Sysbench、TPC-C、TPC-H三款精准测试工具,兼容性体现在可以在不同的系统平台安装部署,易用性则体现在整个压测流程均为白屏化操作,最终的测试结果也可以通过表格、折线图、柱状图等形式进行可视化展示。

 

相关安装使用文档点击此处查看网址

 

image.png

 

Benchmark Boot的部署安装步骤非常简单,我们提供了一键安装命令,也提供了Docker镜像,省去了处理依赖安装问题的麻烦。使用Benchmark Boot要求压测机需要有不低于4C8G的配置,因为压测机规格太低容易成为性能瓶颈。同时,还需要一台有浏览器的前端机器。

 

image.png



《PolarDB-X开源分布式数据库实战进阶》——对PolarDB-X进行TP负载测试(3) https://developer.aliyun.com/article/1228676?groupCode=polardbforpg

相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
8天前
|
人工智能 自然语言处理 前端开发
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
CodeArena 是一个在线平台,用于测试和比较不同大型语言模型(LLM)的编程能力。通过实时显示多个 LLM 的代码生成过程和结果,帮助开发者选择适合的 LLM,并推动 LLM 技术的发展。
38 7
CodeArena:在线 LLM 编程竞技场!用于测试不同开源 LLM 的编程能力,实时更新排行榜
|
1月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
29 1
|
1月前
|
编解码 人工智能 自然语言处理
迈向多语言医疗大模型:大规模预训练语料、开源模型与全面基准测试
【10月更文挑战第23天】Oryx 是一种新型多模态架构,能够灵活处理各种分辨率的图像和视频数据,无需标准化。其核心创新包括任意分辨率编码和动态压缩器模块,适用于从微小图标到长时间视频的多种应用场景。Oryx 在长上下文检索和空间感知数据方面表现出色,并且已开源,为多模态研究提供了强大工具。然而,选择合适的分辨率和压缩率仍需谨慎,以平衡处理效率和识别精度。论文地址:https://www.nature.com/articles/s41467-024-52417-z
49 2
|
1月前
|
开发框架 安全 .NET
.NET使用Moq开源模拟库简化单元测试
.NET使用Moq开源模拟库简化单元测试~
|
1月前
|
NoSQL 测试技术 Go
自动化测试在 Go 开源库中的应用与实践
本文介绍了 Go 语言的自动化测试及其在 `go mongox` 库中的实践。Go 语言通过 `testing` 库和 `go test` 命令提供了简洁高效的测试框架,支持单元测试、集成测试和基准测试。`go mongox` 库通过单元测试和集成测试确保与 MongoDB 交互的正确性和稳定性,使用 Docker Compose 快速搭建测试环境。文章还探讨了表驱动测试、覆盖率检查和 Mock 工具的使用,强调了自动化测试在开源库中的重要性。
|
4月前
|
存储 缓存 负载均衡
【PolarDB-X 技术揭秘】Lizard B+tree:揭秘分布式数据库索引优化的终极奥秘!
【8月更文挑战第25天】PolarDB-X是阿里云的一款分布式数据库产品,其核心组件Lizard B+tree针对分布式环境优化,解决了传统B+tree面临的数据分片与跨节点查询等问题。Lizard B+tree通过一致性哈希实现数据分片,确保分布式一致性;智能分区实现了负载均衡;高效的搜索算法与缓存机制降低了查询延迟;副本机制确保了系统的高可用性。此外,PolarDB-X通过自适应分支因子、缓存优化、异步写入、数据压缩和智能分片等策略进一步提升了Lizard B+tree的性能,使其能够在分布式环境下提供高性能的索引服务。这些优化不仅提高了查询速度,还确保了系统的稳定性和可靠性。
100 5
|
4月前
|
存储 算法 Cloud Native
【PolarDB-X列存魔法】揭秘TPC-H测试背后的性能优化秘籍!
【8月更文挑战第25天】阿里巴巴的云原生数据库PolarDB-X以其出色的性能、可靠性和扩展性闻名,在多种业务场景中广泛应用。尤其在列存储模式下,PolarDB-X针对分析型查询进行了优化,显著提升了数据读取效率。本文通过TPC-H基准测试探讨PolarDB-X列存执行计划的优化策略,包括高效数据扫描、专用查询算法以及动态调整执行计划等功能,以满足复杂查询的需求并提高数据分析性能。
120 1
|
4月前
|
测试技术 Android开发 iOS开发
Appium 是一个开源的自动化测试框架,它支持多种平台和多种编程语言
Appium是一款开源自动化测试框架,支持iOS和Android多平台及多种编程语言。通过WebDriver协议,开发者可编写自动化测试脚本。在iPhone上实现屏幕点击等操作需安装Appium及其依赖,启动服务器,并设置所需的测试环境参数。利用Python等语言编写测试脚本,模拟用户交互行为,最后运行测试脚本来验证应用功能。对于iPhone测试,需准备真实设备或Xcode模拟器。
137 1
|
4月前
|
运维 Kubernetes 监控
|
4月前
|
存储 SQL 运维
“震撼发布!PolarDB-X:云原生分布式数据库巨擘,超高并发、海量存储、复杂查询,一网打尽!错过等哭!”
【8月更文挑战第7天】PolarDB-X 是面向超高并发、海量存储和复杂查询场景设计的云原生分布式数据库系统
116 1

热门文章

最新文章

相关产品

  • 云原生数据库 PolarDB
  • 下一篇
    DataWorks