我们如何优化 Elasticsearch Serverless 中的刷新成本
作者:来自 ElasticFrancisco Fernández Castaño,Henning Andersen 最近,我们推出了 Elastic CloudServerless产品,旨在提供在云中运行搜索工作负载的无缝体验。为了推出该产品,我们重新设计了 Elasticsearch,将存储与计算分离,数据存储在云 blob 存储中,提供几乎无限的存储和可扩展性。在这篇博文中,我们将深入探讨如何消除索引数量和对象存储调用数量之间的强关系,从而让我们能够同时改善用户体验并降低成本。 在深入研究所做的更改之前,首先必须了解 Elasticsearch 和 Lucene 之间的相互作用。 Elasticsearch 使用 Lucene(一个用 Java 编写的高性能开源库)进行全文索引和搜索。当文档被索引到 Elasticsearch 中时,Lucene 不会立即将其写入磁盘。相反,Lucene 会更新其内部内存数据结构。一旦积累了足够的数据或触发了刷新(refresh),这些文档就会被写入磁盘,从而创建一组新的不可变文件(在 Lucene 术语中称为段 - segemnts)。在将段写入...