在Lucene4的时候进行段合并的时候,我们解压所有字段,然后再把他们压缩到新段中,虽然LZ4压缩算法很快,但是也会耗费大量的CPU。
现在Lucene5已经不再这么做了,而是直接拷贝这些已经被压缩的数据。拷贝也有个问题,就是段的最后一块总是不完整的,如果,虽然这一块很小(小于16K),但是日积月累的话,还是会增加压缩比。所以我们增加了一个阈值,如果这些不完整的快足够多的话,我们再段合并的时候就使用老的方式(重新解压,再重新压缩)
原文:https://www.elastic.co/blog/store-compression-in-lucene-and-elasticsearch
从Lucene4升级到Lucene5,对于段合并时的数据处理方式进行了优化。原先需要解压并重新压缩所有字段,这会消耗大量CPU资源。在新版本中,已压缩的数据被直接复制,减少了处理时间。为了进一步提升效率,引入了阈值判断机制,当不完整块积累到一定程度时,系统将采用旧的处理方式。

1万+

被折叠的 条评论
为什么被折叠?



