JanusGraph 总线
JanusGraph Bus 描述了一个可配置的日志集合,JanusGraph 将图及其管理的变化写入其中。JanusGraph Bus 用于内部(即多个 JanusGraph 实例之间)和外部(即与其他系统集成)通信。
特别是,JanusGraph 维护了三个独立的日志
触发器日志
触发器日志的目的是捕获事务的变更,以便由此产生的图变化可以触发其他系统中的事件。此类事件可能是将变化传播到其他数据存储、视图维护或聚合计算。
触发器日志由用户配置的多个子日志组成。打开事务时,可以指定触发器子日志的标识符
tx = g.buildTransaction().logIdentifier("purchase").start();
在这种情况下,标识符是“purchase”,这意味着此事务的变更将被写入名为“trigger_purchase”的日志中。这使用户可以控制事务变更的日志记录位置。如果没有指定触发器日志,则不会创建触发器日志条目。
事务日志
事务日志由 JanusGraph 维护,如果启用,则每个事务包含两个条目:1. 预提交:在变更持久化到存储和索引后端之前,变更被编译并写入日志。2. 后提交:事务的成功状态被写入日志。
通过这种方式,事务日志充当预写日志(WAL)。此日志不供用户或外部系统使用——为此请使用触发器日志。它在内部用于针对最终一致性后端存储部分事务持久化。
可以通过根级配置选项“log-tx”启用事务日志。
管理日志
管理日志由 JanusGraph 在内部维护,用于通信和持久化对全局配置选项或图模式的所有更改。