小红花·文摘
  • 首页
  • 广场
  • 排行榜🏆
  • 直播
  • FAQ
Dify.AI

本文讨论了分布式事务中的两阶段提交(2PC)及其在实际应用中的问题,如协调者故障、网络分区和日志丢失等。介绍了Google的Percolator如何解决这些问题,并探讨了Saga和TCC等其他事务处理模式。最后,分析了现代数据库如Spanner、CockroachDB和TiDB的不同解决方案,强调了一致性、可用性和性能之间的权衡。

分布式事务不是你以为的那个 2PC

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-25T00:00:00Z

拆解 WiredTiger 应用时间戳(oldest/stable/pinned)、事务 read/commit timestamp、快照隔离下的可见性检查,以及 prepared 的 prepare/durable 边界;为 History Store 与 Rollback-to-Stable 提供时间轴。

【WiredTiger 内核】Timestamps、Snapshot 与事务:可见性契约

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-22T00:00:00Z

拆解 BEGIN DEFERRED/IMMEDIATE/EXCLUSIVE 三种模式的取锁时机差异,对照 Berenson et al. SIGMOD 1995 的隔离词汇与官方 Isolation In SQLite 文档;说明单写者约束下 WAL 快照为何天然回避 write skew,并用本机 3.53.2 实测三种 BEGIN 均可提交。

【SQLite 内核】事务与隔离:DEFERRED/IMMEDIATE/EXCLUSIVE 与单写者快照

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

钉住 ATTACH DATABASE 的命名空间规则、super-journal 如何让跨文件事务在 rollback journal 模式下保持原子,以及官方文档明确写明的一条反常识边界:main 库或任一 attached 库切到 WAL 后,跨库事务只在单文件粒度原子,崩溃中间态可能只改了一部分文件;本机 3.53.2 实测跨库 JOIN、跨库事务提交与 DETACH 锁冲突。

【SQLite 内核】ATTACH / 多库边界:跨库事务的原子性在 WAL 下会退化

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-18T00:00:00Z

本文讨论了FoundationDB的事务处理机制,重点介绍了@transactional函数的使用、冲突检测、自动重试及5秒事务限制。事务在客户端缓冲写入,提交时检查读写冲突,读过的key会影响冲突范围。事务需在5秒内完成,超时将导致失败。文章强调了幂等性的重要性,以确保重试时结果的一致性。

【FoundationDB 内核】Client API 与事务模型:冲突范围、自动重试与 5 秒窗口

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

FoundationDB 采用控制面与数据面分离的架构,支持独立扩展。事务处理流程包括获取读版本、提交、冲突检测及日志持久化。本文为系列第一篇,介绍了角色分工及事务路径。

【FoundationDB 内核】Unbundled 全景:事务、日志与存储为何拆开

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文讨论了FoundationDB的写事务提交过程,强调提交成功与数据可见性之间的区别。提交由Commit Proxy协调,涉及Sequencer、Resolver和TLog。客户端在提交后依赖TLog的耐久性,但Storage Server的可读性可能会延迟。文章还探讨了批处理、冲突检测及与TiKV的对比,指出了系统设计选择和潜在的工程挑战。

【FoundationDB 内核】写事务流水线:Client → Commit Proxy → Sequencer → Resolver → TLog

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-17T00:00:00Z

本文探讨了TiKV如何实现Percolator论文中的data/lock/write模型,分析了TiKV在编码、Prewrite/Commit过程中的调整,包括Rollback记录、短值优化和Lock类型写记录。TiKV将Prewrite的原子性单位从单行事务改为Region的Raft提交,并通过Async Commit和1PC优化减少延迟,满足在线事务的性能需求,展示了TiKV在生产环境中的应用与论文模型的差异。

【TiKV / HTAP 内核】Percolator 乐观事务落地:prewrite、commit 与三 CF

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z

TiKV 的悲观锁默认使用内存路径以减少加锁延迟,但在非计划的 Leader 切换时可能会丢失锁。锁的 TTL 动态调整,长事务依赖心跳续期。死锁检测采用集中式方案,Leader 切换时清空历史依赖,存在漏检风险。TiKV 的锁机制与传统数据库相似,需纠正对其“无锁”的误解。

【TiKV / HTAP 内核】悲观事务与 ResolveLock:TTL、死锁检测边界,纠正「TiKV 无锁」

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-16T00:00:00Z
死锁与停机时间

死锁是Postgres数据库中多个事务相互等待锁的情况,导致无法继续执行。为避免死锁,建议按一致顺序处理事务,缩短事务时间,并在应用中实现带有退避和抖动的重试逻辑。使用Traffic Control可以进一步保护数据库,减少死锁发生的可能性。优化查询和监控错误是确保数据库健康的重要措施。

死锁与停机时间

PlanetScale - Blog
PlanetScale - Blog · 2026-07-08T00:00:00Z

本文讨论了RocksDB的事务机制,包括悲观锁和乐观事务的实现。WriteBatch确保批内原子性,但不处理并发冲突。TransactionDB使用悲观锁进行冲突检测,而OptimisticTransactionDB在提交时检查冲突。WritePrepared优化了两阶段提交的路径。TiKV在分布式层实现事务,RocksDB事务API为本地引擎提供能力,适用于低冲突和高冲突的事务处理场景。

【RocksDB 内核机制】事务与 OptimisticTransactionDB:WritePrepared 边界

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-07T00:00:00Z
事务机制:把工作流状态和数据库放一块儿到底香不香?

将工作流状态与业务数据存储在同一Postgres数据库中,可以通过数据库事务解决分布式系统中的数据一致性问题。这种方法确保所有更新在同一事务中处理,避免复杂的幂等性检查和出站箱维护,从而降低系统复杂度和故障率,利用事务的原子性确保状态更新的一致性,简化系统设计。

事务机制:把工作流状态和数据库放一块儿到底香不香?

极道
极道 · 2026-07-02T22:15:00Z

本文讨论了Apache Kafka 3.x中的幂等生产者和事务生产者的工作机制。幂等生产者通过Producer ID和序列号消除重复消息,而事务生产者确保多分区消息的原子性。消费者隔离级别分为read_committed和read_uncommitted,影响事务数据的可见性。Flink与Kafka结合实现了端到端的exactly-once语义,确保数据一致性。

【流式数据处理】Kafka 事务与幂等 Producer

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-07-01T00:00:00Z

Cloudflare Workflows推出了“事务回滚”功能,允许开发者在工作流步骤中定义回滚逻辑,以处理步骤失败的情况。开发者可以在每个步骤中添加回滚函数,确保在操作失败时安全撤销之前的步骤,保持工作流一致性。这一设计简化了错误处理,提高了多步骤应用的可靠性。

我们如何为Cloudflare Workflows构建事务回滚

The Cloudflare Blog
The Cloudflare Blog · 2026-06-25T13:00:00Z
Spring事务注解8条铁律 十年踩坑经验总结

本文总结了使用Spring Boot时事务注解的八条重要规则,以避免常见的事务性错误。关键点包括:事务应仅处理数据库操作,避免在事务中调用外部接口;同一类内调用事务方法无效;关键操作需设置rollbackFor以确保异常回滚;捕获异常后必须重新抛出或手动标记回滚;只读方法应加上readOnly=true以节省资源;私有方法上标注事务注解无效;重试逻辑与事务逻辑应分开;开启事务日志和连接泄漏检测以便于问题排查。

Spring事务注解8条铁律 十年踩坑经验总结

极道
极道 · 2026-06-22T00:54:00Z

数据库在第十阶段实现了事务、并发控制和用户接口,确保数据的原子性和隔离性。通过锁管理,防止多个连接互相干扰。REPL和TCP服务器使用户能够直接与数据库交互,完成SQL操作。

OLTP – 第十阶段 事务、并发控制、REPL 和服务器

Kimserey Lam’s website, Software Development blog posts, videos and tutorials
Kimserey Lam’s website, Software Development blog posts, videos and tutorials · 2026-06-20T05:00:00Z

本文讨论了数据库中的经典故障模式,包括长事务、脏页、死锁和复制延迟,并提供了相应的排查和修复建议,如调整事务超时、优化写入峰值和改用不同的隔离级别。

【MySQL InnoDB 内核】经典故障模式:长事务、脏页、死锁与复制延迟

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

本文探讨了MySQL InnoDB的Undo Log机制,分析了其核心数据结构、关键算法和状态机,强调了Undo Log对DML延迟和崩溃恢复的影响,并提供了源码阅读路径和实验步骤。同时对比了PostgreSQL的实现,指出两者在隔离语义上的不同,并提醒在生产环境中注意不同版本的实现差异。

【MySQL InnoDB 内核】Undo Log 与事务回滚

土法炼钢兴趣小组的博客
土法炼钢兴趣小组的博客 · 2026-06-18T00:00:00Z

本文讨论了Postgres内部的隐性数据损坏问题,包括多事务ID处理、TOAST表缺失块和撕裂页面等情况,这些问题可能导致数据错误而不被察觉。文章强调定期检查数据库完整性的重要性,推荐使用amcheck和pg_amcheck等工具进行监测,以及时发现潜在问题。

Payal Singh:Postgres 战争故事第二部分:多事务ID环绕、TOAST损坏与撕裂页面

Planet PostgreSQL
Planet PostgreSQL · 2026-06-16T13:00:00Z
Node.js中的Saga模式:如何在微服务中回滚分布式事务

在微服务架构中,Saga模式用于处理跨服务的事务一致性问题。它通过协调本地事务并在失败时执行补偿操作,确保系统状态一致。本文介绍了如何使用NestJS、gRPC和PostgreSQL实现Saga模式,包括工作协调、补偿回滚和可观察性。

Node.js中的Saga模式:如何在微服务中回滚分布式事务

freeCodeCamp.org
freeCodeCamp.org · 2026-06-13T06:45:43Z
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

完成下面两步后,将自动完成登录并继续当前操作。

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
友情链接: MOGE.AI 九胧科技 模力方舟 Gitee AI 菜鸟教程 Remio.AI DeekSeek连连 53AI 神龙海外代理IP IPIPGO全球代理IP 东波哥的博客 匡优考试在线考试系统 开源服务指南 蓝莺IM Solo 独立开发者社区 AI酷站导航 极客Fun 我爱水煮鱼 周报生成器 He3.app 简单简历 白鲸出海 T沙龙 职友集 TechParty 蟒周刊 Best AI Music Generator

小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码