三款典型国产分布式数据库的对比评测

简介: 编者按:近几年国产数据库市场风生水起,涌现了多款优秀的国产数据库产品,本文选取了三款典型的国产分布式数据库进行全方位对比压测,呈现了国产分布式数据库的发展现状。

对于所有的应用系统,数据都是承载业务逻辑的核心资产,而存储数据的数据库系统则是最核心的系统之一。随着国产化进程的不断推进,应用系统基于国产化数据库进行构建越来越重要,也越来越成为数据库选型中的主流。

近几年国产数据库市场风生水起,涌现了多款优秀的国产数据库产品,各大厂商也在重金投入数据库研发中。本文选取了三款典型的国产分布式数据库进行全方位对比压测,分析国产分布式数据库的发展现状,供各位读者参考。

测试环境及数据库架构

PolarDB-X

数据库架构:

1.png


Oceanbase

2.png

数据库架构:

3.png


TiDB

4.png

数据库架构:

image.png

压测指标分析

Sysbench压测情况:

1. 压测参数配置

测试表结构:
CREATE TABLE `sbtest1` (`id` int(11) NOT NULL,`k` int(11) NOT NULL DEFAULT '0',`c` char(120) NOT NULL DEFAULT '',`pad` char(60) NOT NULL DEFAULT'',PRIMARY KEY (`id`),KEY `k_1` (`k`)
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4

2. 场景说明

  • 总计16 张表,每张表 1000 万行数据,数据分布uniform。
  • tidb场景:基于range水平拆分模式的分布式(tidb默认会把所有表的数据按照range做自动均衡,某一张测试表的数据会均匀分布到多个机器上)。
  • OB模式:单表即官网默认推荐模式,sysbench脚本不作修改时自动建立的表,这里简称非分区表;基于hash水平拆分模式的分布式,简称分区表。
  • PolarDB-X场景:单表,sysbench脚本不作修改时自动建立的表,这里简称非分区表;基于hash水平拆分模式的分布式,简称分区表,索引采用本地索引;基于hash水平拆分模式的分布式,简称分区表,索引采用GSI全局索引。

3. 测试结果数据

image.png


TPCC (5000仓)

TPCC是专门针对联机交易处理系统(OLTP系统)的测试规范,一般情况下我们也把这类系统称为在线业务处理系统。1992年7月发布,几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在不断刷新。

TPCC通常用于模拟测试复杂的在线事务处理系统,在大压力情况测试数据库的事务处理能力,以下压测汇总了三种分布式数据库的最大tpmC指标:

// 数据导入  5000仓
tiup bench tpcc --warehouses 5000 -D tpcc -H xxx -P xxx -T threads_num prepare// 运行
tiup bench tpcc run -U root --db tpcc2 --host xxx  --port xxx --time xxx --warehouses 5000 --threads

image.png

 TPCH (100G)

TPCH(商业智能计算测试)是美国交易处理效能委员会(TPC,TransactionProcessing Performance Council) 组织制定的用来模拟决策支持类应用的一个测试集。目前,在学术界和工业界普遍采用它来评价决策支持技术方面应用的性能。

这种商业测试可以全方位评测系统的整体商业计算综合能力,对厂商的要求更高,同时也具有普遍的商业实用意义,目前在银行信贷分析和信用卡分析、电信运营分析、税收分析、烟草行业决策分析中都有广泛的应用,以下以TPCH-100G来对比分析三种分布式数据库的分析能力:

// 导入数据 100G
tiup bench tpch prepare --host xxx --port xxx --db tpch_100 --sf 100  --analyze --threads xxx// run
tiup bench tpch run --host xxx --port xxx --db tpch_100 --sf 100 --check=true

image.png

DDL 能力

1. 场景说明

测试数据为tpch100g 生成的lineitem表,单表6亿行数据

image.png

2. 并行DDL测试

并行DDL用于测试在达标的DDL过冲中,在前一个DDL未完成时,在同一张lineitem表下面加列、相同库下创建一张表、给小表(如nation表)建立索引,观察第二步是否能够立即返回,若能立即返回,则表明支持并行DDL。

image.png


热点行更新

对于有限的数据库资源,如果有大量请求去消费的话,肯定会产生大量的锁竞争(数据库对一条数据的更新会导致在索引上给这条记录加锁),消耗服务器资源,而且请求的成功率也不高(换句话说就是你在浪费服务器资源,性价比不高);热点行更新用来测试数据库锁控制能力和高并发大压力下事务情况。

image.png


读写分离

场景介绍:一致性读用于在只读节点读取数据的时候,是否可用控制读的数据一致,包括强一致读和弱一致读;并且只读节点延迟控制用于控制业务在读取过程中,备库最大支持多长时间的延迟。

image.png


分区变更特性

场景介绍:分区规则变更用于验证数据库的分布式调整能力,分区策略调整可以灵活适配线上表的业务场景,尤其从单表到分区表(分布式表),或者从单表到广播表的场景。

image.png


特殊场景

1. 大事务

测试数据为tpch100g 生成的lineitem表,单表6亿行数据
select * from lineitem;  
update lineitem set L_PARTKEY=L_PARTKEY+1; 

测试结果:

image.png

2. Json类型

image.png

3. 单机表数量

单机表数量用于测试在复杂业务场景下,单机上可以存储的最大表(分区)的数量情况,验证数据库的元数据管理能力,并且考察在单机支持更多表的情况下可以降低分布式的存储成本。

image.png

4. drop大表影响

TiDB、OceanBase、PolarDB-X均可以平滑删除,对在线业务无影响。

5. 应急限流

场景介绍:应急限流用于在线上紧急情况下,对部分烂SQL或者问题SQL进行紧急限流,保证大多数业务正常的情况下,限制部分烂SQL的运行,可用于紧急线上恢复。

image.png

6. 资源隔离

场景介绍:用户验证是否支持oltp和olap场景自动资源隔离,olap通常需要大量的数据查询分析资源,如果无法资源隔离有可能影响在线业务的使用和稳定性。

image.png

7. 动态索引绑定

场景介绍:用于测试执行计划绑定能力

image.png

测试结果分析

TiDB:

1. 开启了实验室特性(plan cache),不建议生产直接使用。生产环境默认不开启的话,point_select性能会有60%左右的性能下降,100核左右的资源点查场景只有36万QPS

2. sysbench测试场景中,会有比较大量的where id between xx and xx,但在实际业务中单纯基于用户id或者交易id的范围查询意义并不大,更多是在时间范围的查询。TiDB基于Range的分区策略,在between的分区裁剪可以做到只访问1个数据分片,而PolarDB-X和OceanBase基于Hash的策略会访问5个数据分片,因此TiDB的数据结构会在sysbench单纯指标能力上占一定的优势。ps. 针对Range 和 Hash分区的性能差异,在PolarDB-X上基于read only场景下跑了下Range分区的对比测试,Range相比于Hash分区差不多有45%左右的性能提升(28万 vs 19万)

3. TPC-C场景下,整体劣势比较明显

4. TPC-H场景下,在tilfash模式下性能表现不错,但在普通的tikv模式下,部分SQL跑不出结果

5. 特殊场景下,加索引的DDL性能有待提升,支持json但不建议生产使用,以及在热点行更新下有明显瓶颈

 OceanBase:

1. 非分区表(通常理解的单表),在OceanBase内部会在分布式多个节点上做表级别的均衡,一张表的数据只在一个节点,不同表可以在不同的节点,在非分区表下比较考验纯单机的能力。针对sysbench场景下的多张表在测试过程中是完全独立的,这样可以充分利用"多个单机"跑出一个更好的总吞吐值。这样的模式下,相比于TiDB会有30%~70%的优势,多个独立的单表模式在真实业务场景中一般需要配合业务端的分库分表。

2. 分区表,在OceanBase内部支持将一张表的数据分布到多台机器上,实现行级别的水平扩展能力,在分区表下会存在分布式事务、分片聚合查询等额外代价,是最考验分布式能力的地方。分区表和 非分区表在sysbench的性能测试结果上,两者的性能差异巨大。尤其在写入和混合读写场景,分区表只有单表测试的1/5左右,分布式事务的性能还需要有进一步的提升空间。

3. TPC-C场景下表现优秀。在TPC-H场景下,通过并行计算+行存整体表现不错。

4. 特殊场景下,不支持json,以及在热点行更新下有明显瓶颈。

 PolarDB-X:

1. 非分区表(通常理解的单表),PolarDB-X上支持通过locality模式将表分配到不同的节点,一张表的数据只在一个节点上,比较考验纯单机的能力。针对纯读和混合读写场景,相比于TiDB会有2~2.5倍的性能优势。

2. 分区表,在PolarDB-X内部支持将一张表的数据分布到多台机器上,实现方式和TiDB、OceanBase分布式表基本一致,在write only上整体性能会比TiDB好一些;在最常见的业务场景read write下,分区表和单机表性能都比OB要好很多,非分区表比TIDB有明显的性能优势,分区表跟tidb基本保持一致

3. TPC-C场景下表现优秀。在TPC-H场景下,通过并行计算+行存整体表现不错

4. 特殊场景下,快速加列DDL需要优化,支持json,以及针对热点更新的优化明显。

polardb-x对分区规则变更支持最好,基本支持所有常见的分区变更策略

总结

1. PolarDB-X/OceanBase/TiDB在分布式水平扩展的性能上大同小异,区分度并不大。

2. TiDB有一些不错的实验性质的功能(比如plan cache、json),对性能和功能易用性帮助比较大,但眼下生产不推荐使用。

3. OceanBase的模型比较复杂,测试场景需要充分理解分区表和 非分区表(单表)。在非分区表(单表)模式下,性能表现不错,重点考察的是纯单机能力,性能尚可,略低于MySQL。但分区表模式下,性能下降比较多,需要业务区分来看。

4. PolarDB-X功能性和易用性比较不错,json、大事务、热点更新支持比较完整。在非分区表(单表)模式下,纯MySQL单机的能力表现突出,在分区表模式下,可以通过分布式能力进一步扩展性能,对分区表的变更策略支持最完善。(完)

原文链接
本文为阿里云原创内容,未经允许不得转载。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512416.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bootstraptable中responsehandle获取数据缺失_Python中的向量化字符串操作

Python的一个使用优势是它在处理和操作字符串数据方面相对容易。在此基础上Pandas提供了一套全面的向量化字符串操作(vectorized string operation),这些操作成为处理现实世界数据时所需的必不可少的功能。在本文中,我们将介绍一些Pandas的字符串操作&am…

15 载专注视频增强技术,小而美的 Imint 蕴藏大匠心

如今视频已深深融入我们的生活和工作中,据 CNNIC 数据显示,截止 2021 年 6 月,我国网民的规模达 10.11 亿,其中短视频用户规模 8.88 亿,占网民整体的 87.8%。 这表明我们正步入“视频社会化”时代,随着人们…

Serverless Devs 2.0 全新发布,让 Serverless 应用开发更简单

简介: 2020 年 10 月 23日,阿里巴巴正式宣布开源其首个 Serverless 开发者平台 Serverless Devs。历经近一年精心打磨,今天 Serverless Devs 2.0 正式版全新发布。Serverless Devs 2.0 在平台能力、应用模板以及开发者套件方面能力提升&#…

疫情防控“漫入调查系统”上线 SENSORO 助力提升筛查效率及精准度

连日来,国内多地报告新增病例,加上因春节临近导致的人员流动和聚集增加,基层防疫面临着比平时更大的挑战。为快速、高效地解决大规模漫入信息筛查任务,缓解一线疫情防控压力,SENSORO(北京升哲科技有限公司&…

程序媛如何自我突破?

简介: 很多时候人们是被自己内心的偏见所打败的。作为一名程序媛,保持一种对世界、对人生的不同看法,可以帮助我们树立自己的参照系,不被外部轻易左右。或许我们无法像一些伟人那样打破、推动如此重大的社会认知,但是我…

如何基于Dataphin实现敏感数据保护

简介: 在企业的发展过程中,如果不重视敏感数据的保护,和数据安全体系的建设,那么一旦发生了敏感数据泄漏事件,轻则企业口碑受损,业务受影响;重则会直接触法律,受到主管部门的处罚和制…

百度研究院发布2022科技趋势预测:大模型实用化、AI助力深空探测成热门

1月25日,百度研究院发布2022年科技趋势预测,这是其连续第三年发布对前沿科技趋势的展望。 今年上榜的科技趋势预测涵盖了AI核心技术、交叉学科与跨领域研究,以及AI的产业及社会价值三个层面,包括预训练大模型、AI for Science&am…

计算机操作员技术特长,计算机及应用专业自我鉴定(通用5篇)

计算机及应用专业自我鉴定(通用5篇)自我鉴定是个人在一个阶段的自我总结,自我鉴定可以总结出具体的经验,因此我们是时候写一份自我鉴定了。自我鉴定一般是怎么写的呢?以下是小编收集整理的计算机及应用专业自我鉴定(通用5篇),仅供…

5 款阿里常用代码检测工具,免费用!

简介: 5 款阿里常用代码检测工具免费体验,仅需 2 步,Cherry键盘、公仔抱回家,100%拿奖! 作者 | 喻阳 面临问题 在日常研发过程中,我们通常面临的代码资产问题主要分为两大类:代码质量问题和代…

查看topic信息_如何规划的你博客文章主题(Topic)

产品有了, 写手有了。该写哪些主题,就成问题了。这篇文章,会结合真实案例,告诉大家,该如何规划自己的博客主题。(注意这里不是标题)。以我最近的一个项目, 游泳池产品为例。关键词叫…

DataWorks功能实践速览 — 参数透传

简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率! 往期回顾: DataWorks 功能实践速览01期——数据同步解决方案:为您介绍不同场景下可选的数据同步方案。DataWorks 功能…

GPU还是IPU?IPU 芯片厂商 Graphcore 的 2021

作者 | 宋慧 出品 | CSDN 云计算&AI 科技大本营 AI 人工智能毋庸置疑是目前最火的 IT 技术领域之一,而主攻图形计算的 NVIDIA GPU(图形处理器)又是现今 AI 领域的当红炸子鸡。不过 AI 芯片领域又迎来了新的挑战者,2016 年创立…

云原生大数据架构中实时计算维表和结果表的选型实践

简介: 随着互联网技术的日渐发展、数据规模的扩大与复杂的需求场景的产生,传统的大数据架构无法承载。 作者 | 志羽 来源 | 阿里技术公众号 一 前言 传统的大数据技术起源于 Google 三架马车 GFS、MapReduce、Bigtable,以及其衍生的开源分布…

冬奥开幕在即,现场通信网络技术深度揭秘!

作者 | 小枣君来源 | 鲜枣课堂还有9天,举世瞩目的北京冬奥会就将拉开大幕。本次冬奥会,是继2008年之后,中国再一次承办这种世界最顶级体育盛会。这两年全球疫情肆虐,抗疫形势波折多变。北京冬奥能够如期举办,意义极为重…

Flink 在 58 同城的应用与实践

简介: 58 同城的实时 SQL 建设以及如何从 Storm 迁移至 Flink。 本文整理自 58 同城实时计算平台负责人冯海涛在 Flink Forward Asia 2020 分享的议题《Flink 在 58 同城应用与实践》,内容包括: 实时计算平台架构实时 SQL 建设Storm 迁移 Fli…

当云原生遇到混合云:如何实现“求变”与“求稳”的平衡

简介: 多年来,随着云计算技术的蓬勃发展和落地,越来越多的企业选择采用云计算技术来帮助自己快速完成业务数字化转型,以便能更好地适应市场变化,进而赢得更大的市场空间。 作者|郝树伟 Flexera 的《RightScale2021 云…

之前写的 JSX 的条件语句竟然存在那么多 Bug?

作者 | 零一来源 | 前端印象今天的主题是&#xff1a;关于 JSX 的条件语句&#xff0c;你不知道3件事一、&&隐藏大坑在 JSX 里写条件语句&#xff0c;&& 应该是用的最多的了&#xff0c;例如&#xff1a;function Demo () {// ...省略一些代码return (<div&…

如何高效学习 Kubernetes 知识图谱?

简介&#xff1a; Kubernetes 知识图谱遵循云原生人才学习路径搭建课程体系框架&#xff0c;及人才发展路线设置不同阶段&#xff0c;由浅入深&#xff0c;帮助云原生人才学习容器基础、Kuternetes 网络、存储、资源对象、服务发现、应用编排与管理等 Kubernetes 完整技术栈内容…

中科院信工所经验_2021中科院信息工程研究所电子信息专业考研经验指导分享...

一、在计算机如此火热的今天&#xff0c;为什么选择要读研&#xff1f;我是一个乐观主义者&#xff0c;上大学以来我一直庆幸自己在高考结束填志愿的时候选择了计算机专业&#xff0c;更庆幸报考了湖南大学信息科学与工程学院&#xff0c;高考仅仅一分的优势把我送到了最美的学…

极验创始人吴渊:恶意流量威胁新趋势,揭秘网络黑产3大核心本质

记者 | 邓晓娟出品 | CSDN云计算&#xff08;ID&#xff1a;CSDNcloud&#xff09;天下没有免费的午餐&#xff0c;更没有免费的流量。以电商为例&#xff0c;最疯狂的时候&#xff0c;某电商平台单个获客成本接近400元。作为互联网的稀缺资源&#xff0c;流量的成本不断冲击着…