近实时操作:
写入操作延时时间 = 主分片数据写入时间 + 并行写入副本的最大延时
在数据安全和数据延时之间,ES所做的妥协:
实时存储数据、实时读取数据的过程
-
首先在memory(内存)中建立索引,并在内存中写入Translog日志。后写入日志的原因是:数据在建立索引时,需要经过分词等一系列复杂的操作,有可能写入失败,为了保证日志中都是成功的数据,所以后写入。
-
索引建立分段的数据对象(segment)
-
Segment会默认在1s内refresh 到OS Cache(内存缓冲区),此时,数据就可以查询了。
-
内存缓冲区的segment在默认30min内flush到磁盘(Disk)。
-
memory中的translog在一定时间/一定大小后,也会定时刷入磁盘。并在Disk保存好数据后,清空日志文件。