2017-02-22 25 views
0

我有一个庞大的数据库上运行的大型复杂Sphinx配置。由于旋转需要很长时间,因此我们使用多核/ cpus将其设置为多线程。这减少了需要自然旋转的时间。然而,问题是我们现在是否需要以相同的方式提供该指数?如果我们使用32位cpu服务器来旋转它,那么我们是否需要有一个32位cpu服务器来为索引服务,或者我们可以在完成时以某种方式将碎片重新合并为一个?重组狮身人面像碎片?

回答

0

那么有合并选项将两个索引合并成一个。 http://sphinxsearch.com/docs/current.html#index-merging

但是,'旋转'和'发球'之间的区别是什么意思?

两者都是由searchd完成的。旋转正在加载一个新的索引,服务正在回答查询。至少我的理解。

...所以可以直接查询这些索引,假设你能够旋转它们。

如果能提供更多的细节,也许可以给出更详细的答案。

+0

那么我希望以下说明(我没有做实际的分片只是配置);该计划将启动一个64-cpu服务器以多线程方式对配置进行索引。据我所知它实际上将分贝分成不连续的块,但我可能是错的。这是要采取一个指数,可以需要一个合理的时间框架旋转一天。我希望能够使用来自较小服务器的sphinx查询(sphinxQL)运行该站点,因为不需要64-CPU服务器24x7的成本。 – user3649739

+0

狮身人面像不限于每个核心一个索引。它可以在单个核心上非常高兴地查询64分片索引。这将只是一个接一个地完成。如果有2个核心,理论上可能会快两倍,一次只能两个。 4个核心再次两次。更多的核心=更多的并行化,所以更少的查询墙时间。更重要的是成本还是性能? :) – barryhunter

+0

啊永恒的问题:|我们的目标是用我们能够承受的最大服务器启动,以获得尽可能多的性能。当然,我们希望成长为一个尽可能最佳的表现。所以这个问题基本上可以重申为“直到我们能够承受一台拥有尽可能多内核的服务器,因为我们拥有碎片,狮身人面像才能够在更少的内核上运行”。我认为你回答了一个很好的答案,尽管谢谢你! – user3649739