AICon 上海站|90%日程已就绪,解锁Al未来! 了解详情
写点什么

分布式 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:007283

评论

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

Frida笔记 - Android 篇 (一)

GrowingIO技术专栏

android Frida

防沉迷系统的bug,技术如何查漏补缺?

脑极体

我们是如何在研发过程中控制质量的?产品质量正变得越来越重要

爱数技术范儿

大数据 软件工程

白瞟党福音!Alibaba内部最新Java开发手册(嵩山版)灵魂17问

Java 编程 架构 面试 架构师

消息系统的演进:从MOM、ESB到下一代云原生的分布式消息系统

金蝶天燕云

分布式消息

恰逢金九银十!阿里P8连夜赶稿一份基于实例驱动的设计模式笔记

Java 编程 架构 面试 阿里

架构实战营模块 7 作业指导

华仔

架构实战营

腾讯云签约广州知识城商用密码项目,助力黄建设密码产业示范区

腾讯安全云鼎实验室

腾讯云 商用密码

微信开源PhxQueue:高可用、高可靠、高性能的分布式队列

OpenIM

Python代码阅读(第25篇):将多行字符串拆分成列表

Felix

编程 Code Programing 阅读代码 -python

微信亿级用户异常检测框架的设计与实践

OpenIM

熬了3天2夜,啃完阿里(珠峰版)Java面试笔记,直接斩获12家大厂offer,

Java架构师迁哥

广告机主板定制方案能实现双屏异显或四屏异显吗?

双赞工控

安卓主板 主板定制 广告机主板

justswap市值管理机器人系统软件开发技术(案例搭建)

量化系统19942438797

交易所 做市机器人 justswap

博睿数据云主机性能评测新增6家云厂商,8月报告亚马逊云科技登榜首

博睿数据

五行兼备:联想TruScale服务的太极之道

脑极体

ULP Fec与 Flex FEC 概述

webrtc developer

WebRTC fec

你们想知道的一切,都在这里了。

ApacheDoris

Apache 开源社区

谁在制造“完美男性”?

脑极体

前端独立交付需求背景下的Mock数据多方案解读

爱数技术范儿

JavaScript 大前端 Mock

总结下ThinkPHP的代码审计方法

网络安全学海

php 网络安全 信息安全 WEB安全 代码审计

北鲲云超算平台赋能蛋白设计助推生物制药行业发展

北鲲云

老板:把系统从单体架构升级到集群架构!

程序员 架构 分布式 后端 计算机

PhxSQL设计与实现(详细版)

OpenIM

HashMap为什么是线程不安全的?

Java技术精选

用数据搭建反馈系统

石云升

数据分析 9月日更

APM领域国产化先锋!博睿数据与麒麟、统信、中科方德完成兼容性认证

博睿数据

各编程语言里对 Iterator 进行修改时的对比

BlockQuant

Java Python rust Go 语言

活动推荐 | 云原生社区 Meetup 第七期深圳站开始报名啦!

CODING DevOps

Kubernetes DevOps 微服务 活动 Meetup

Java 操作 Office:POI word 之表格格式

程序员架构进阶

Java Apache POI 9月日更 word文档

开源之夏项目分享:图数据库 Nebula Graph 支持 JDBC 协议

NebulaGraph

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