数据写入的过程
Refresh
- 将文档先保存在Index buffer中,以refresh_interval为间隔事件,定期清空buffer,生成segment,借助文件系统缓存的特性,先将segment放在文件系统缓存中,并开放查询,以提升搜索的实时性。
Translog
- segment没有写入磁盘,即便发生了当机,重启后,数据也能恢复,默认配置是每次请求都会落盘。
Flush
- 删除旧的translog文件
- 生成segment并写入磁盘/更新commit point并写入磁盘。ES自动完成,可优化点不多。
Refresh Internal
- 降低Refresh的频率
增加refresh_interval的数值,默认为1s,如果设置成-1,会禁止自动refresh
避免过于频繁的refresh,而生成过多的segment文件,但会降低搜索的实时性
- 增大静态配置参数indices.memmory.index_buffer_size
默认是10%,会导致自动触发refresh