Elasticsearch程序员elasticsearch

Elasticsearch段合并

2017-03-28  本文已影响528人  GhostStories

elasticsearch 中每个索引都会创建一个到多个分片和零个到多个副本,这些分片或副本实质上都是lucene索引

欢迎访问本人博客:http://wangnan.tech

lucene索引是基于多个索引段创建,索引文件中绝大部分数据都是只写一次,读多次,而只有用于保存文档删除信息的文件才会被多次更改

在某些时刻,当某种条件满足时,多个索引段会被拷贝合并到一个更大的索引段,而那些旧的索引段会被抛弃并从磁盘中删除,这操作叫做段合并(segment merging)

为什么要进行段合并?

段合并好处

段合并代价

elasticsearch允许用户选择段合并政策(merge policy)及储存级节流(store level throttling)

选择正确的段合并策略

尽管段合并是lucene的责任,elasticsearch也允许用户配置想用的段合并策略
到目前为止有三种可用的合并策略:

为了告知elasticsearch我们想使用的段合并策略,可以将配置文件的index.merge.policy字段泪痣成我们期望的段合并策略类型例如:index.merge.policy.type: tiered

调度

es允许我们定制合并策略的执行方式,调度器分两种
默认的是并发合并调度器 ConcurrentMerge-Scheduler

并发合并调度器

该调度器使用多线程执行索引合并操作

顺序合并调度器

它使用同一个线程执行所有的索引合并操作,在执行合并时,该线程的其他文档处理都会被挂起,从而索引操作会延迟进行

(注:内容整理自《深入理解elasticsearch》)

上一篇下一篇

猜你喜欢

热点阅读