知识库

如何配置堆外事务状态

此功能在 3.5 中是实验性的,在 4.0 中默认开启。

从 Neo4j 3.5 开始,可以将部分事务数据存储在堆外内存中。这可以帮助在有限的用例集中减少 GC 压力和/或防止 OOM 崩溃,例如

  • 在单个事务中创建/删除大量实体

  • 在单个事务中创建/更新大量属性,尤其是那些大型字符串

有两个相关的配置参数,它们都是静态的,不能在运行时更改。

dbms.tx_state.memory_allocation

此参数控制事务状态是否应该存储在堆内或堆外。可能的值是 ON_HEAPOFF_HEAP。默认值为 ON_HEAP

dbms.tx_state.max_off_heap_memory

此参数允许为存储事务状态数据的堆外内存设置一个全局限制。零表示“无限”。默认值为 2G