我想知道在将文档写入磁盘时是否需要Lucene段。下面是文档如何从ElasticSearch写入磁盘的简要过程。首先,将一个ElasticSearch文档写入内存缓存(请参阅LSM-tree memTable)其次,将一组文档刷新到页面缓存中(每隔1秒)作为不可变Lucene段(请参考LSM-tree不可变memTable)最终,该段将“fsync”到磁盘上。
看起来我们完全可以绕过“页面缓存”部分,也就是说,在第一步,当我们想在内存缓冲区中创建一个文档时,elasticsearch会为它创建一个段。然后,如果我们想更新该文档,elasticSearch会为更新后的文档创建另一个段。现在我们总共有2个段。1秒后,这两个段将在磁盘上合并并刷新。
您知道Lucene细分市场的优势在哪里吗?
1条答案
按热度按时间2q5ifsrm1#
页面缓存旨在通过将数据存储在物理内存中来最大限度地减少磁盘I/O,否则将需要访问磁盘。
缓存通常支持不同的策略,即无写、直写缓存和回写,页面缓存是一种回写策略,页面被周期性地刷新到磁盘。
该机制加快了数据访问速度,减少了I/O次数。
Lucene写入页面缓存以提高系统I/O吞吐量。
当然,页面高速缓存会占用更多内存,且可能会丢失高速缓存中的数据。