icon-rss-large

IT基础知识手册 | | 登录

订阅我们

详细描述一下Elasticsearch索引文档的过程。

Published on 2020-07-11 by lianhe

 协调节点默认使用文档ID参与计算(也支持通过routing),以便为路由提供合适的分片。

  shard = hash(document_id) % (num_of_primary_shards)

  当分片所在的节点接收到来自协调节点的请求后,会将请求写入到Memory Buffer,然后定时(默认是每隔1秒)写入到Filesystem Cache,这个从Momery Buffer到Filesystem   Cache的过程就叫做refresh;

  当然在某些情况下,存在Momery Buffer和Filesystem Cache的数据可能会丢失,ES是通过translog的机制来保证数据的可靠性的。其实现机制是接收到请求后,同时也会写入到translog中,当Filesystem cache中的数据写入到磁盘中时,才会清除掉,这个过程叫做flush;

  在flush过程中,内存中的缓冲将被清除,内容被写入一个新段,段的fsync将创建一个新的提交点,并将内容刷新到磁盘,旧的translog将被删除并开始一个新的translog。

  flush触发的时机是定时触发(默认30分钟)或者translog变得太大(默认为512M)时;

Gravatar

About ghjk

Read More...
0
Comments
Leave a Comment