ES 如何将新文档的索引从 In-memory buffer 写入到文件系统缓存


当一个文档被索引时,它会被添加到in-memory buffer,refresh会将在in-memory buffer中的文档会被写入到一个新的segment,但没有fsync--这个步骤在网上查资料是说写入到文件系统缓存,这样这个段就可以被打开使用搜索,轻量级的操作(没有fsync),现在的疑问就是怎么样写入到文件系统缓存的!谢谢各位大神
已邀请:

kennywu76 - wood@Ctrip

赞同来自: feihui

segment本身就是一个文件,从in-memory buffer写入到segment的过程就是一个写文件的过程。 操作系统层面对新生成的文件不会马上持久化到磁盘,而是写入到文件系统缓冲区。 只有文件缓冲区满了,或者手动调用fsync,缓冲区的数据才会持久化到磁盘。

redhat

赞同来自:

有个参数 refresh_interval,默认是1秒。或者调用_refresh接口

要回复问题请先登录注册