数据库内部结构与事务行为

为了维护数据完整性并确保可靠的事务行为,Neo4j DBMS 支持具有完整 ACID 特性的事务,并使用预写式事务日志来确保持久性。

  • 原子性 (Atomicity) — 如果事务的某一部分失败,数据库状态将保持不变。

  • 一致性 (Consistency) — 每个事务都会使数据库处于一致的状态。

  • 隔离性 (Isolation) — 在事务处理过程中,被修改的数据不能被其他操作访问。

  • 持久性 (Durability) — DBMS 始终能够恢复已提交事务的结果。

Neo4j DBMS 支持以下事务行为

  • 所有访问图、索引或模式的数据库操作都必须在事务中执行。

  • 默认的隔离级别是读已提交 (read-committed) 隔离级别。

  • 写锁会在节点和关系级别自动获取。但是,如果您希望达到更高水平的隔离(即可序列化 (serializable) 隔离级别),也可以手动获取写锁。

  • 通过遍历检索到的数据不受其他事务修改的影响保护。

  • 可能会发生不可重复读 (Non-repeatable reads)(即仅获取写锁并保持到事务结束)。

  • 死锁检测内置于核心事务管理中。

以下章节详细描述了事务行为及其控制方法

有关 Neo4j 4.4 的信息,请参阅 Java 参考 4.4 → 事务管理