Es准实时运行原理
Es准实时运行原理
Alexes准实时运行原理
- lucene是倒排索引不可变的,但数据是能更新的,动态索引使用跟多的sgement,跟多的索引来完成变更
- lucene会有多个segment,每个segment会在内存缓存包含新的lucene文档,并不是每一个sgement上来就直接落盘,这个时候在内存缓存当中,
- 数据进来-> 内存buff -> sgement -> 磁盘 -> refresh之后写到磁盘
- 3个sgment
新数据进来写入内存buff
内存buff refresh之后生成一个新的sgement
- 同步更新commit文件第四个sgement写入成功
准实时查询原理
刷磁盘: 100个索引,每1m种刷100次磁盘
保证实时搜索,es提供了轻量级的实现方式,提供了文件系统缓存
内存缓存
- 文件系统缓存
- 文件在操作系统缓存可以被搜索
- lucene允许新的段被写入和打开,在文档未被完整提交时搜索可见 (刷的内存,不是刷的缓存)
- 刷memory buffer到文件系统缓存时,Trasnlog继续缓存,属于两个独立过程
- resfresh api
- 从小的段合并到大的段,减小文件句柄。