图数据库并发控制与批量更新
图库的并发模型和关系型库并不一样:锁粒度落在节点与关系上,遍历语义放大了写写冲突的概率。本文讲清 MVCC 与锁的协作、隔离级别与幻读、图上的死锁成因与规避顺序、乐观重试与显式锁的取舍、UNWIND 批量 upsert 的批大小与事务边界、集群下 leader 写 follower 读的书签一致性,以及幂等批量更新的完整实现与监控指标。
tag
图库的并发模型和关系型库并不一样:锁粒度落在节点与关系上,遍历语义放大了写写冲突的概率。本文讲清 MVCC 与锁的协作、隔离级别与幻读、图上的死锁成因与规避顺序、乐观重试与显式锁的取舍、UNWIND 批量 upsert 的批大小与事务边界、集群下 leader 写 follower 读的书签一致性,以及幂等批量更新的完整实现与监控指标。
系统讲解并发竞态测试的工程化实践:数据竞争与原子性违反、顺序违反三类并发缺陷的识别、Go race detector 与 ThreadSanitizer 的检测原理与局限、确定性复现与调度扰动注入、Loom/Coyote 等模型检查工具、压力测试与随机 sleep 注入、死锁与活锁检测,以及 CI 中的稳定性与种子复现治理。
从死锁成因与四大必要条件出发,详解 InnoDB 死锁检测机制、锁等待监控、死锁日志分析方法,并给出解除与预防死锁的工程化清单。
死锁(Deadlock)是并发系统中一类经典而且代价高昂的故障:多个进程或线程因相互等待对方持有的资源,而全部陷入永久阻塞。与竞态条件不同,死锁不会破坏数据完整性,但它会让系统「冻结「在某一点,服务完全丧失可用性。
深入理解死锁的四个必要条件、预防与避免策略,掌握信号量、互斥锁、管程、条件变量等经典同步机制。