【发布时间】:2018-02-18 12:28:01
【问题描述】:
我正在努力寻找足够的文档和示例,以便通过路径分片节点存储在集群环境中构建和使用 Jackrabbit OAK。 我知道这是可能的,因为在一些地方有引用但信息很少,而且 OAK 或 NodeStore API 不够直观,无法找到此功能。
查看此 PDF 中的幻灯片 17,其中列出了各种分片策略。 http://events.linuxfoundation.org/sites/events/files/slides/the%20architecture%20of%20Oak.pdf
我的用例是我需要多个远程服务器都运行相同的 Jackrabbit OAK 应用程序,该应用程序使用由 MongoDB 支持的 DocumentNodeStore 作为节点和 blob 存储。我最终想要的是在整个节点结构中由不同路径组织的这些远程服务器上对我的数据的部分进行分片(或分区)。
例如:
服务器 (A)
负责将内容存储在/a/*
服务器 (B)
负责将内容存储在/b/*
如果服务器 (A) 想要读取或写入 /b/* 的内容,它可以使用正常的 JCR 或 OAK API 访问该路径上的节点,这应该将用户从网络详细信息和与服务器的连接中完全抽象出来 ( B) MongoDB。
是否有与此用例相关的可靠文档?如果没有,学习这个的最好方法是什么?我可以花一整天时间浏览 OAK 源代码,但文档会更好。
【问题讨论】:
-
我不认为这就是 Oak 中集群的工作方式。集群中的每个节点都需要能够访问所有文档。
-
@JulianReschke,我认为 OP 想了解如何对支持存储库的 mongo 设置进行分片。 Afaiu,mongo 分片仍然允许所有客户端读取任何文档 - 最好是一个客户端可以从潜在的非常远程的分片实例中读取最少的文档。我的意思是在他的例子中,A 应该主要关注 /a/* (当然也需要读取根目录)
标签: java mongodb jakarta-ee jackrabbit jackrabbit-oak