Ydb blog

RSS: https://blog.ydb.tech/feed
YDB 技术博客,开源分布式 SQL 数据库,兼具高可用、强一致与 ACID 事务。

可串行化隔离级别与隐秘 Bug:我们到底更怕哪一个?

数据库隔离级别该如何选?本文用真实案例和研究数据挑战"弱隔离性能更好"的普遍认知。作者梳理多项学术研究:Stanford的ACIDRain论文在12款电商应用中发现22个并发安全漏洞;另一研究在8个开源Web应用中识别出91个临时事务,53个存在正确性问题。更惊人的是,弱隔离导致的并发Bug曾让比特币交易所遭洗劫关停。性能方面,PostgreSQL的可串行化快照隔离实现性能仅略低于可重复读,CockroachDB和YDB默认可串行化也表现良好。核心结论:默认用弱隔离是"过早优化",应考虑切换为可串行化作为默认级别。文章附带了医生排班等具体代码示例说明问题,并给出不同数据库默认隔离级别对照表。
评论点赞收藏73 天前

公开的 ANN 基准测试结果可信吗?

核心看点:一家向量数据库厂商公开质疑行业基准测试的可信度,这个问题本身很有讨论价值。背景是 ANN 搜索已成为 RAG 和 LLM 基础设施的关键组件,从专用向量库到通用数据库(PostgreSQL、MariaDB、YDB 等)纷纷加入,性能对比需求激增。但厂商自己发布的 benchmark 结果是否客观、方法是否透明、有没有选择性呈现?这篇文章来自 YDB 官方博客,立场天然带有倾向性,但提出的质疑——谁在跑 benchmark、怎么跑的、结果能否复现——是每个选型工程师都应该关心的真实问题。适合推荐给在做向量数据库选型、关注 RAG 性能评估的技术读者。
评论点赞收藏213 天前

低延迟网络中令人惊讶的gRPC客户端瓶颈及解决方案

YDB团队在基准测试中发现,随着集群节点减少,gRPC客户端成为性能瓶颈,导致资源闲置。文章深入分析了这一反直觉现象的原因,并提供了具体的优化方案,对分布式系统和高性能网络开发者有参考价值。
评论点赞收藏388 天前

分片不等于分布式:当PostgreSQL不够用时应知之事

核心看点:用实测数据揭示PostgreSQL在高可用场景下的真实性能瓶颈,并厘清"分片≠分布式"这一常见认知误区。一年前的对比测试显示,PostgreSQL在放弃服务可用性和数据持久性时性能极佳,但一旦开启WAL(预写日志)和复制机制,性能便会显著下降,复制层成为扩展瓶颈。文章进而指出,单纯做分片并不能解决分布式系统的核心问题——当PostgreSQL撑不住时,需要的是真正的分布式架构思维,而非表面分片。适合对数据库扩展性有实际困惑的后端工程师阅读,内容基于一手测试经验,非空泛趋势文。
评论点赞收藏458 天前

使用 Jepsen 锤炼 YDB 分布式数据库:经验教训

YDB 团队用分布式系统正确性测试工具 Jepsen 对自家数据库做了一次严肃的"压力体检",发现了多个隐藏 Bug 并总结了固化修复的经验。文章的核心看点在于:他们此前大量宣传性能测试(TPC-C、与 PostgreSQL 对比),却完全忽略了正确性验证——而事务做得再快,不满足 ACID 也没用。文中分享了从弱隔离级别引入的典型错误,到如何通过 Jepsen 验证 Serializable 隔离语义的具体路径。对关注分布式数据库、事务正确性、系统测试的工程师来说,这是一篇有真实踩坑记录和工程方法的一手经验。
评论点赞收藏757 天前

YDB 文档 2024 年第二季度更新内容

这是一篇 YDB 数据库官方博客发布的文档更新公告,主要介绍 Q2 季度文档改进,核心亮点是新增了 YDB 术语表。除此之外没有提供任何具体的技术细节、使用案例、性能数据或个人实践经验。全文是典型的项目公告体,任务式告知"我们更新了文档",缺乏可讨论的观点、可复用的信息或真实的使用场景。
评论点赞收藏778 天前

YDB 文档 2024 年第一季度更新内容

这是一篇 YDB 数据库项目的官方博客,总结 2024 年第一季度文档工作的更新。文章回顾了自 2022 年开源以来文档结构的演变——最初受 Conway 定律影响采用模块化分工,各团队各自维护自己的文档页面;随着内容量增长,这种分散模式效率下降,团队开始向更统一、更用户可读的方向重构。典型的企业项目博客,面向已有使用经验的开发者,属于进度汇报和功能通告性质的内容。
评论点赞收藏866 天前

当PostgreSQL不够用时?PostgreSQL与分布式数据库性能对比评测

本文通过TPC-C行业标准基准测试,在3台128核服务器的同等硬件上实证对比了PostgreSQL与CockroachDB、YDB的性能。核心发现:PostgreSQL以18K仓库(1.05倍YDB吞吐量)在单机场景胜出,YDB以1.29倍领先CockroachDB,推翻了"分布式数据库在少节点时必然更强"的常见认知。文章详细记录了NoWAL无日志、HugeWAL大日志、R1同步复制等多种PostgreSQL配置调优下的CPU/磁盘/网络实测指标,定位复制环节为核心瓶颈——主节点CPU仅用约15%,副本WAL写入量是主节点1.5-2倍且延迟高10-30倍。分布式数据库虽CPU效率更低,但延迟更好、可水平扩展(从9节点到36节点可超100万tpmC)。适合正在评估数据库选型或优化PostgreSQL性能的工程师阅读,配置参数和测试方法均可复现。
评论点赞收藏878 天前

当PostgreSQL不够用时:PostgreSQL与分布式数据库管理系统性能对比

这是一篇扎实的实证对比,用TPC-C标准压测PostgreSQL与CockroachDB、YDB三款数据库的实际性能。作者是YDB开发者,但与PostgreSQL专家合作完成,数据透明。测试环境统一:三台128核/512G内存/NVMe磁盘的裸金属服务器,运行12小时。核心结果:单机PostgreSQL在吞吐量上小幅领先(18K仓库,效率92.37%),YDB是PostgreSQL的1.05倍吞吐量,YDB又是CockroachDB的1.29倍。但PostgreSQL延迟明显更高,CPU利用率仅15%——瓶颈完全在复制层。文章还深入探索了PostgreSQL的多种配置变体(无WAL、大WAL、同步复制),发现副本写入WAL量竟是主节点的1.5-2倍,同步复制导致回放延迟可达3小时,无法作为真正的热备。分布式数据库的优势在于可横向扩展:YDB从3台扩到36台后轻松突破百万tpmC。全文不回避产品短板,有配置细节、硬件指标和真实调优过程,对数据库选型和技术决策很有参考价值。
评论点赞收藏879 天前

切换到 Java 21 虚拟线程后,我们在 Postgres TPC-C 基准测试中遇到了死锁

YDB 团队在 TPC-C 基准测试中切换到 Java 21 虚拟线程后遭遇死锁,根源在于 c3p0 连接池内部使用了 synchronized/Object.wait,导致等待连接的虚拟线程钉住(pin)了有限数量的载体线程,而持有连接的虚拟线程虽然处于 I/O 等待状态可以释放载体线程,却因全部载体线程被占而无法继续执行释放连接。文章详细复现了死锁过程,给出了 jstack 和 jcmd 的调试堆栈,并提供了修复方案——用 java.util.concurrent.Semaphore 包装连接获取操作,让虚拟线程在等待时释放载体线程而非阻塞在 c3p0 内部。对正在迁移到虚拟线程的 Java 开发者来说,这是一篇有真实踩坑经验、可复用排查方法和具体修复代码的实用案例。
评论点赞收藏943 天前

2023年12月YDB文档更新一览

这是一篇YDB官方发布的文档更新日志,核心变化只有两处:新增暗色主题(点击右上角⚙︎开启)和文档版本切换下拉菜单。没有技术细节、没有使用心得、没有踩坑分享、没有讨论价值,纯粹是告知型通稿。适合YDB开发者快速了解界面变化,但缺乏任何观点、一手经验或可复用信息,属于典型的机构任务式发文。
评论点赞收藏946 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。