将 ferret 索引复制到其他服务器吗?

将 ferret 索引复制到其他服务器吗?

我继承了一个遗留的 Rails 应用程序,最近将其全部迁移到 AWS。基础设施的一部分是 ferret 索引,它存在于十台后端应用服务器中,这些服务器每晚都会构建订阅者电子邮件。我们有一个大型数据库,因此每台后端服务器每天需要大约四个小时来重建索引。在十台应用服务器上,需要花费大量额外的时间来保持大多数服务器的运行,否则它们将被关闭。(总而言之,每组索引每台服务器大约 8GB)。

所有重建的雪貂索引都从主数据库读取相同的数据。我想知道的是 - 我是否可以应用程序服务器每天进行重建,然后将最终重建的索引 rsync 到其他应用程序服务器?我对 ferret(或 rails)了解不够多,不知道这里可能存在哪些类型的依赖关系。我认为索引就是索引,因此将完全相同的数据复制到所有服务器应该是“无争议的”。我是走错了路还是走在正确的轨道上?

答案1

我不明白为什么不行。

我的意思是,你试过了吗?

Ferret 只是 Lucene 的一个 ruby​​ 端口,您可以使用 Lucene 索引做一些有趣的事情,比如 rsync 和 NFS 共享它,只要服务器只需要对它进行只读访问。

但是,为了运行复制过程,您必须停止索引,这样您才能获得索引中数据的一致快照。

虽然听起来它是一个运行一段时间后就停止的批处理作业,但 ICBW。

我给您的最佳建议是尝试一下。从池中取出几台服务器,尝试在它们之间同步索引,然后进行测试。您应该能够定义一些测试用例来验证您的假设,对吗?

资料来源:1 2 3 4

相关内容