用途:审计并发写入下的正确性,覆盖吞吐与数据一致性,面向关系型数据库的并发问题,以及 KV/文档/宽列存储的幂等性。
主要能力:检查隔离级别是否匹配业务不变量(如 READ COMMITTED 下无锁的金额/库存更新);识别丢失更新与读改写竞态(SELECT 后应用层计算再 UPDATE,缺少 SELECT … FOR UPDATE、原子 UPDATE … SET x = x - $n 或乐观版本校验);发现 worker 轮询用 SELECT … FOR UPDATE 但缺 SKIP LOCKED 导致串行化;检查 Redis、DynamoDB、Cassandra、Mongo 等非事务写入缺少幂等键/条件写;在无行可锁时建议使用 Postgres 事务级咨询锁 pg_advisory_xact_lock()(提交/回滚自动释放,优于会话级 pg_advisory_lock(),且对 PgBouncer 事务模式池化安全)。
使用方式:Tier-0 静态扫描 ORM/事务源码中的隔离设置、无锁读后写、缺 SKIP LOCKED 的 FOR UPDATE、缺条件写/幂等键;Tier-1 用 SHOW transaction_isolation; 验证默认隔离;Tier-2 用 pg_stat_activity 按 wait_event_type/wait_event 统计活跃等待,并用 pg_stat_database 查 deadlocks 确认争用。发现按 schema 输出,含逐字证据(脱敏)、复现查询与分级影响。
适用场景:关系型数据库并发写入审计、队列 worker 争用排查、非事务存储重试幂等性检查。
限制:静态发现仅为方向性,实际争用需运行时统计;无持续死锁/串行化统计时结论不封顶;READ COMMITTED 对多数负载正确,仅在不变量要求更强隔离时标记;并发修复属应用逻辑变更,只提 proposed/advisory,不自动修改。