Neo4j 在磁盘空间不足时的行为 (3.4+)
在 v3.4.0 中引入了实例磁盘空间不足后的恢复过程改进后,本文旨在阐述 Neo4j 在这种情况下表现出的行为。
在 3.4 之前,磁盘空间不足会导致事务日志损坏。当我们尝试追加内容但设备上没有剩余空间时,它们会损坏。这本身问题不大,因为从用户角度来看事务实际上从未提交,问题在于我们无法从这种情况中恢复。
这是 3.4+ 上的预期行为(和恢复)
独立实例
-
实例磁盘空间不足
-
JVM 不会崩溃,但 neo4j 处于不可用状态(需要手动干预)
-
手动释放服务器空间
-
重启实例
因果集群
-
实例磁盘空间不足
-
JVM 不会崩溃,但 neo4j 处于不可用状态(需要手动干预)
-
新的领导者会自动选出,写入操作可以立即恢复
-
手动释放旧领导者空间
-
使用 `neo4j-admin unbind` 解绑实例(这会在启动时触发本地数据库恢复,如果可能的话,而不是存储副本)
-
重启实例
如果不重启,旧的领导者仍将作为集群的一部分(作为追随者),驱动程序可能会将客户端请求路由到它并导致超时 |
尽管我们尽量使这个过程尽可能顺畅,但这仍然被视为灾难场景。您应该始终在操作系统级别监控您的磁盘空间使用情况,以防止出现这种情况。
此页面有帮助吗?