SphinxSearch - 使用共享数据的不同节点

病毒

我们正在使用 Amazon EC2 实例构建 SphinxSearch 集群。我们使用相同的共享文件系统(弹性文件系统)进行了像多个实例一样的示例测试。我们的想法是,在一个集群中,我们可能有 10 个以上的节点,但是我们可以使用单个实例来索引文档并将其保存在 Elastic File System 中,并且可以被多个节点共享以进行读取。

我们的测试工作正常,但从技术上讲,这种方法有什么问题吗?(比如锁定问题等)

有人可以就此提出建议吗

提前致谢

Manticore 搜索

如果您可以拥有 N 个索引副本,则可以执行以下操作:

  • 在临时文件夹中的一个位置构建索引
  • 重命名文件,使其包含 .new。
  • 使用 rsync 或任何您喜欢的方式将索引分发到所有其他地方。有些甚至使用UFTP进行广播
  • 通过将 HUP 发送到 searchds 或通过执行 RELOAD INDEX ( http://docs.manticoresearch.com/latest/html/sphinxql_reference/reload_index_syntax.html )来一次在所有位置旋转索引,通常只需要几毫秒我们可以说您的新索引在所有节点上同时替换了前一个索引
  • 以前(也许仍然在 Sphinx 中)如果它正在处理长查询(旋转只需等待),则旋转索引(通过 --rotate 或 RELOAD)存在问题。它最近在 Manticoresearch 中得到了修复。

这是人们多年来在生产中使用的久经考验的解决方案,但如果您真的想在多个 searchd 实例之间共享相同的文件,您可以软链接除 .spl 之外的所有文件,然后使用链接(不是实际文件)您需要重新启动 searchd 实例,这通常看起来不太好,但在某些特殊情况下可能仍然是一个很好的解决方案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章