ArangoDB中的节点哈希



我正在使用ArangoDB进行图形版本控制,并将寻找一种更快的方法来评估两个不同集合中的节点是否相同。除了在我写每个节点之前对其进行哈希之外,ArangoDB是否有任何机制可以让我读取节点的哈希?我通常使用Python Arango访问数据库。

如果我自己哈希是唯一可行的选择,那么对于Graph DB中的这些类型的文档,什么是合理的哈希函数?_id不应被包括在内,因为两个不同集合中的同一节点仍然不同。_rev实际上并不重要,而且我不确定_key是否真的是必需的,因为节点是由它以任何方式标识的。

您需要制作自己的哈希算法来实现这一点。

问题是,生成哈希的文档的唯一值是特定于用户的,因此您需要从外部生成该哈希值,并将其与每个文档一起保存。

为了确认唯一性,您可以通过Foxx Microservice或在AQL查询中进行确认,如果发现多个节点具有重复的哈希,则会抛出错误。

如果您想在插入中强制执行唯一性,那么您需要从外部构建该逻辑。

然后,您可以选择信任自己的唯一性,或者建立一个Foxx Microservice来搜索范围内的集合,以确保没有其他文档具有相同的哈希值。

查询许多其他集合的性能会很差,因此另一种选择是设置一个接受文档更新的Foxx队列,然后让Foxx服务从队列中执行INSERT/UPDATE命令。这样就不会降低客户端应用程序的速度,数据最终会尽快在Arango中更新。

最新更新