Improvements in Manticore Search 2.7: local indexes management
直到现在,资源共享都是通过读写锁来实现的。在高负载情况下,使用锁机制在尝试对索引进行修改时可能会遇到问题。为了解决这些问题,我们必须重新思考线程与索引之间的关系。
索引可能很大甚至非常大,它们在多个工作进程中共享。在多核 CPU 上,你可以同时发起许多查询,它们会分布在各个核心上,使用同一个索引。这很简单明了。然而,有时你需要更新索引。无缝切换在旧版 fork 工作进程中表现良好:我们只需加载新的索引文件,让正在运行的 fork 进程继续使用旧索引提供服务。在某一时刻,新查询 …