2

我正在努力寻找足够的文档和示例,以便通过路径分片节点存储在集群环境中构建和使用 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 源代码,但更喜欢文档。

4

1 回答 1

1

此时 Oak 的 Mongodb 实现没有分片策略。问题本质上归结为这样一个事实,即_idOak 存储的 Mongo 文档不会将文档放在分片中,这样来自同一子树的一组节点可能会落在同一个分片实例上。曾经有过一些关于添加分片键来处理用例的讨论,但讨论并没有太大进展,因为此时我们还没有看到需要分片的引人注目的用例。

也就是说,afaik,您可以设置一个分片实例并相应地提供 mongouri。我上面所说的很可能不会像你想要的那样扩展。此外,我们还没有看到非分片设置无法处理的设置。

我知道它没有回答你的问题,但也许这表明你找不到关于这个话题的太多说法。

于 2017-09-11T02:46:30.337 回答