我们正在编写基于 BerkleyDB JE 和 Lucene 的本地搜索服务。BDB 用于存储原始文档,Lucene 用于搜索。我们计划复制 BDB 存储以实现高可用性和平衡读取请求。
但有一个问题。当文档在 BDB 从站上复制时,应用程序需要知道哪些文档应该在 Lucene 索引中重新索引。据我了解,复制日志已经包含这些条目(实际上我只需要主键)。
所以我的问题是有什么方法可以访问 Berkley DB 复制日志并计算复制流中哪些记录发生了更改?
我们正在编写基于 BerkleyDB JE 和 Lucene 的本地搜索服务。BDB 用于存储原始文档,Lucene 用于搜索。我们计划复制 BDB 存储以实现高可用性和平衡读取请求。
但有一个问题。当文档在 BDB 从站上复制时,应用程序需要知道哪些文档应该在 Lucene 索引中重新索引。据我了解,复制日志已经包含这些条目(实际上我只需要主键)。
所以我的问题是有什么方法可以访问 Berkley DB 复制日志并计算复制流中哪些记录发生了更改?
这是在BDB Java 版论坛上提出的一个很好的问题。
简短的回答是,在 BDB JE 中目前没有办法做到这一点,尽管该功能已被请求并且它在我们的长期路线图中。如果您想在产品中使用复制触发器,我建议您将请求提交到上面列出的论坛,并说明用例以及您希望行为是什么——即:如何您希望副本上的应用程序得到通知,应用程序需要 BDB JE 提供的信息以及应用程序将如何处理这些信息。
您可能还想阅读有关 Carbonado 的 BDB JE 常见问题解答,作为您尝试做的一个选项。