小红花·文摘
  • 首页
  • AI Tokens🪙
  • 排行榜🏆
  • 直播
  • FAQ
数据库如何通过并发控制保持一致性

数据库通过并发控制防止数据损坏。文章以银行账户为例,说明两个并发取款事务重叠导致余额错误($90而非$80),指出重叠事务是常态。解决方案包括悲观锁(提前阻塞)和乐观锁(事后检查),并引入隔离级别平衡安全与性能,使最安全设置可用。

数据库如何通过并发控制保持一致性

ByteByteGo Newsletter ByteByteGo Newsletter · 2026-09-03T15:31:17Z
Vibhor Kumar:当AI采取行动时,什么能证明实际发生了什么?

AI代理执行退款时,工具调用成功不等于业务交易成功。文章强调需区分执行记录与业务状态,建议用PostgreSQL事务绑定证据,确保AI意图与业务结果可追溯,并指出这是AI可靠性与未来按结果付费的关键。

Vibhor Kumar:当AI采取行动时,什么能证明实际发生了什么?

Planet PostgreSQL Planet PostgreSQL · 2026-09-01T07:34:56Z
Alexey Evlampiev:请求即事务

将API事务边界移至PostgreSQL内部,使路由、验证、授权和事务管理成为数据库原生操作。通过将API契约建模为数据表,实现单一权威、单一事务和可执行证明。测试可在同一事务中验证响应与状态变更,并回滚。此设计适用于以事务决策为核心的系统,网络层仍由网关处理。

Alexey Evlampiev:请求即事务

Planet PostgreSQL Planet PostgreSQL · 2026-08-21T00:00:00Z
Postgres子事务的危险

PostgreSQL子事务缓存溢出会严重影响集群性能:单个事务创建超过64个子事务ID时,缓存溢出导致快照标记溢出,查询需频繁查询pg_subtrans SLRU,引发锁竞争,使整个集群TPS从约7200骤降至约160。同时,溢出的RUNNING_XACTS记录会使新只读副本无法构建快照,延迟启用热备模式,拒绝连接。建议保持事务简短并监控子事务活动以降低风险。

Postgres子事务的危险

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

本文介绍Neo4j图数据库的事务与锁机制。默认隔离级别为读已提交,写锁自动获取,遍历数据不受保护。锁落在节点或关系上,dense节点建边时锁粒度更细。死锁是可重试的瞬时错误,需固定更新顺序。删除节点需先删关系。

【图数据库内核】事务、锁与隔离:读已提交、建边锁与 dense 并发

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-08-08T00:00:00Z
JPower 3.0.3 的小版本更新,反而暴露了微服务平台最容易疼的地方

JPower v3.0.3小版本更新,虽看似普通修补,但涉及多数据源事务、录音配置、权限和密码等关键问题。文章强调微服务平台选型不能只看脚手架生成速度,需关注权限模型、数据源治理、事务边界和升级兼容。建议现有用户认真回归测试,特别是登录、权限、数据写入和回滚路径,稳妥升级。

JPower 3.0.3 的小版本更新,反而暴露了微服务平台最容易疼的地方

mongona news mongona news · 2026-08-02T22:38:40Z
Alexey Evlampiev:事务边界应置于程序中,而非文件名

PostgreSQL部署工具pgmi将事务边界置于SQL程序中,而非文件名元数据。它通过首个顶层COMMIT划分原子阶段与自动提交阶段,使CREATE INDEX CONCURRENTLY合法。文章强调锁超时、失败恢复与幂等重跑,并列出六项检查清单,确保部署安全可控。

Alexey Evlampiev:事务边界应置于程序中,而非文件名

Planet PostgreSQL Planet PostgreSQL · 2026-08-01T00:00:00Z

PostgreSQL 的隔离级别从宽松到严格依次为读已提交、可重复读、可串行化,分别防止脏读、不可重复读、幻读和序列化异常。MVCC 通过快照实现隔离,快照记录事务状态而非 LSN。CDC 中,复制槽创建时导出快照,配合 WAL 流确保数据完整,需用可重复读只读事务导入快照。

PostgreSQL中的事务隔离与导出快照

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

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

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

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

本文介绍WiredTiger存储引擎中Connection、Session、Cursor三层句柄的生命周期与线程模型。Connection独占数据库实例,Session单线程且同时仅持有一个事务,Cursor由Session拥有并共享事务上下文。文章强调多线程应共享Connection但各自持有Session,并澄清常见误解,为后续Cache与Eviction章节铺垫。

【WiredTiger 内核】Connection / Session / Cursor:线程与 API 边界

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

本文介绍WiredTiger存储引擎的时间戳与快照机制。核心概念包括:应用时间戳由上层控制,执行时间是墙上时钟;active time window由oldest、stable、pinned界定可读与可丢弃历史;快照通过max/min/并发事务ID列表决定可见性;默认snapshot隔离,prepared事务有特殊边界。文章强调时间戳与快照共同支撑MongoDB的MVCC实现。

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

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

本文介绍SQLite事务的三种BEGIN模式:DEFERRED推迟取锁,IMMEDIATE立即获取RESERVED锁,EXCLUSIVE在WAL模式下与IMMEDIATE等价。SQLite通过写串行化实现SERIALIZABLE隔离,单写者模型天然避免write skew异象。WAL模式下快照过期会返回SQLITE_BUSY_SNAPSHOT,需回滚重试。COMMIT落盘时机由日志模式决定。

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

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

本文介绍SQLite的ATTACH DATABASE功能,允许一个连接同时操作多个数据库文件。跨库事务在rollback journal模式下通过super-journal机制保证原子性,但WAL模式下会退化为各文件独立原子。锁按文件独立跟踪,跨库写需在所有文件上获取EXCLUSIVE锁。事务进行中的库无法DETACH。同名表省略前缀时取最早挂载的库。

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

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-18T00: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

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

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

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

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

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

土法炼钢兴趣小组的博客 土法炼钢兴趣小组的博客 · 2026-07-16T00: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
死锁与停机时间

死锁是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
  • <<
  • <
  • 1 (current)
  • 2
  • 3
  • >
  • >>
👤 个人中心
在公众号发送验证码完成验证
登录验证
在本设备完成一次验证即可继续使用

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

1 关注公众号
小红花技术领袖公众号二维码
小红花技术领袖
如果当前 App 无法识别二维码,请在微信搜索并关注该公众号
2 发送验证码
在公众号对话中发送下面 4 位验证码
小红花技术领袖俱乐部
小红花·文摘:汇聚分发优质内容
小红花技术领袖俱乐部
Copyright © 2021-
粤ICP备2022094092号-1
公众号 小红花技术领袖俱乐部公众号二维码
视频号 小红花技术领袖俱乐部视频号二维码