产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

分布式 PostgreSQL 基准测试:Azure Cosmos DB、CockroachDB 和 YugabyteDB

  • 2023-08-16
    北京
  • 本文字数:1502 字

    阅读完需:约 5 分钟

分布式PostgreSQL基准测试:Azure Cosmos DB、CockroachDB和YugabyteDB

最近,微软详细介绍了分布式PostgreSQL基准测试的结果,比较了 Azure Cosmos DB for PostgreSQL、CockroachDB 与 Yugabyte 的事务处理性能和价格。这几种数据库在实现时做了不同的权衡,测试结果显示,Azure Cosmos DB 的吞吐量更高。同时,他还着重指出了针对分布式数据库进行基准测试所面临的挑战。

 

根据GigaOm基准测试,在事务性能和价格方面,采用 Citus 分布式表的Azure Cosmos DB for PostgreSQL优于 CockroachDB Dedicated 和 Yugabyte Managed 这两种全托管分布式数据库。

 

正如InfoQ之前的报道,随着不同的供应商对 PostgreSQL 这个流行的开源关系型数据库进行扩展、重新实现或创建分叉,它正在成为云分布式数据库的新标准。这项由微软赞助的基准测试使用了HammerDB。这是一个用于对关系型数据进行基准测试的开源工具,由事务性能委员会(Transaction Performance Council,缩写为 TPC)负责管理。微软首席软件工程师Marco Slot写道:


GigaOM 使用 HammerDB TPROC-C 对 Azure Cosmos DB for PostgreSQL 和两个类似的托管服务产品(…)进行了基准测试。在最初的基准测试中,GigaOM 使用了 1000 个仓库,产生了大约 100GB 的数据。然而,CockroachDB 和 Yugabyte 的吞吐量之低令人惊讶。在不改变连接数的情况下,增加两者的仓库数量可以提升性能。

 


图片来源:https://devblogs.microsoft.com/cosmosdb/distributed-postgresql-benchmarks-using-hammerdb-by-gigaom/

 

有一个非常重要但颇有争议的点是Citus的使用。Citus 是 PostgreSQL 中一个用于分发表的开源扩展,它要求开发人员指定一个分发列,即分片键:


Citus 的核心理念一直是:分布式 PostgreSQL 是为大规模、高性能而生的,因为对于其他任何事情,PostgreSQL 都已经足够好。

 

测试的其他分布式数据库不依赖于分布式列的定义。在 Reddit 上,Slot承认了其中的区别:


性能差异似乎有点尴尬。我想特别指出的是,使用 Citus 确实需要一些额外的步骤(例如 create_distributed_table)来定义分布式列和协同定位(否则,你只能使用单个节点)。我们的经验是,如果不对相关数据做协同定位,那么传统的事务型 PostgreSQL 工作负载的性能将比单个服务器差许多。

 

YugabyteDB 开发大使 Franck Pachot 在推特上谈到了这项基准测试,他提了一个问题


这是比较 Citus(通过两阶段提交协议在 SQL 数据库上实现的分片)与 YugabyteDB 及 CockroachDB (通过全局 ACID 事务在分布式存储上实现的 SQL)吗?弹性、全局一致性、灵活性、自动划分/再平衡都不在同一个层次上。它们针对的是不同的用例。

 

该报告承认,对于不同的部署,不同的分布式数据库可能在不同的特性上胜出,包括响应时间、并发性、容错性、功能、一致性或持久性。Slot 总结道:


分布式系统,尤其是分布式数据库,涉及多个层面的权衡。CockroachDB 和 Yugabyte 做了不同的权衡,它们不需要分布式列(…)不管是扩展 Postgres(如 Citus 所做的),还是创建 Postgres 分叉(如 Yugabyte 所做的),亦或是是重新实现 Postgres(如 CockroachDB 所做的),每一种决定也都是一个权衡,都会对最终用户的体验产生重大的或好或坏的影响。

 

为了鼓励客户运行与其工作负载相匹配的基准测试,微软共享了辅助脚本,以便他们可以在 Azure Cosmos DB 上运行 HammerDB 基准测试。微软高级软件工程师Jelte Fennema展示了如何自动运行基准测试,包括集群设置和销毁。

 

按照 GigaOm 的说法,Google Spanner Postgres Interface之所以不在比较范围,是因为该服务不提供运行基准测试所需的 Postgres 兼容性级别。

 

原文链接:

https://www.infoq.com/news/2023/07/distributed-postgresql-benchmark/


相关阅读:

这将是一场灾难?37年历史的PostgreSQL数据库将进行重大架构变更

微软发布Azure Cosmos DB for PostgreSQL

2023-08-16 08:007135

评论

发布
暂无评论
发现更多内容

以太坊的黄金时代:模块化的区块链范式的开端

CECBC

私有分布式账本技术还是公共区块链?

CECBC

云资源是什么意思?有什么特点?

行云管家

云计算 云服务 多云服务 云资源

“区块链+农业”推动产业“提档升级”

CECBC

[ Golang 中的 DDD 实践] 值对象

baiyutang

golang 设计模式 领域驱动设计 DDD 10月月更

在线2-36任意进制转换工具

入门小站

工具

VNC服务安装配置与使用

耳东@Erdong

vnc 10月月更

最长回文子串 -- 三种解答

秦怀杂货店

数据结构 算法 最长回文子串

100台机器上海量IP如何查找出现频率 Top 100?

秦怀杂货店

IP 海量数据 top

架构实战课程 模块5作业

Frank

爱奇艺数据质量监控的探索和实践

爱奇艺技术产品团队

监控 数据治理 pingback

linux之iftop命令

入门小站

Linux

【Vuex 源码学习】第九篇 - Vuex 响应式数据和缓存的实现

Brave

源码 vuex 10月月更

私有云部署系列之动态获取IP(程序执行)

稻草鸟人

Python

BPM软件是什么?BPM软件跟BPA有关联吗?

低代码小观

企业管理 业务流程管理 信息管理

2021年10月4日Facebook史上最严重宕机复盘分析

郑州埃文科技

ip数据 网络波动 网动仪

【LeetCode】无重复字符的最长子串Java题解

Albert

算法 LeetCode 10月月更

【Flutter 专题】34 图解自定义 View 之 Canvas (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 10月月更

Pandas教程:数据类型操作

Peter

Python pandas

架构实战课程 模块6作业

Frank

字节跳动是如何落地微前端的

字节跳动终端技术

字节跳动 大前端 Web应用开发

物理服务器是什么意思?怎么构成?与云服务器有啥区别?

行云管家

云计算 服务器 云服务器 物理服务器

强化学习RL AWS 自动驾驶DeepRacer ROS 架构 易筋 ARTS 打卡 Week 71

John(易筋)

ARTS 打卡计划

新一代容器平台ACK Anywhere,来了

阿里巴巴云原生

阿里云 云原生 ACK Anywhere

【优化技术专题】「线程间的高性能消息框架」再次细节领略Disruptor的底层原理和优势分析

洛神灬殇

Disruptor 异步高性能 高并发处理 性能提升 10月月更

Pandas教程:数据处理基石-数据探索

Peter

Python pandas

这些行业用ERP系统会有很大帮助

低代码小观

企业管理 ERP

企业运维监控管理系统我给推荐行云管家!

行云管家

云计算 运维 运维监控 云管平台

设计微博系统中"微博评论"的高性能高可用计算架构

Rabbit

Golang语言HTTP客户端实践

FunTester

golang 性能测试 HTTP 接口测试 FunTester

KubeVela 1.1 发布,开启混合环境应用交付新里程碑

阿里巴巴云原生

阿里云 云原生 KubeVela

分布式PostgreSQL基准测试:Azure Cosmos DB、CockroachDB和YugabyteDB_云计算_Renato Losio_InfoQ精选文章