知识库

Neo4j 当前事务提交过程顺序

Neo4j 中的事务使用 read-committed 隔离级别,这意味着它们一旦提交就会看到数据,并且不会看到其他尚未提交事务中的数据。这种隔离类型比可串行化弱,但在提供显著性能优势的同时,足以应对绝大多数情况。

此外,Neo4j Java API 支持对节点和关系进行显式锁定。使用锁可以通过显式获取和释放锁来模拟更高级别隔离的效果。例如,如果在公共节点或关系上设置写锁,则所有事务都将在该锁上串行化——从而实现可串行化隔离级别的效果。

在事务提交期间,应用于存储的所有事务操作按照特定顺序执行。目前的操作顺序是

  1. 标签令牌操作

  2. 关系类型令牌操作

  3. 属性键令牌操作

  4. 创建操作,用于

    1. 属性

    2. 关系

    3. 关系组

    4. 节点

  5. 更新操作,用于

    1. 属性

    2. 关系

    3. 关系组

    4. 节点

  6. 删除操作,用于

    1. 属性

    2. 关系

    3. 关系组

    4. 节点

  7. Neo 存储命令

  8. 模式命令

  9. 计数存储操作

  10. 索引操作

  11. 旧版索引操作

请注意,我们无法保证此顺序在未来版本的 Neo4j 中保持不变。如果因某些原因发生变化,我们将相应地更新本文。