ES写入原理

ES写入时
1.首先写入数据的请求由客户端选择一个node节点,这个节点成为协调节点。
2.协调节点进行路由(给document分配一个id根据id进行哈希算法找到一个主分片)将请求发送到该主分片所在的node
3.node处理请求写入document并将数据同步到副本分片上,数据写入后向协调节点发送写入成功的响应
4.协调节点收到写入成功的响应之后返回结果给客户端

写入数据的底层原理
写入数据时会先后记录数据的位置有以下节点
1.buffer 2.os cache 中的segment file 3.translog 4.磁盘上的segment file

buffer作为内存缓冲区
translog作为宕机恢复的日志,位置在oscache和磁盘中,每隔五秒刷新到磁盘中,因此宕机最多丢失五秒的数据。每30分钟或者日志文件足够大时发起一次flush操作将os cache中的segment file刷到磁盘中去,并且清空日志文件
segment file存储ES的数据,位置在oscache和磁盘中,先存到oschche中等待translog发起commit操作,segment flie将被刷到磁盘中去,每秒生成一个segment file文件

过程如图:
在这里插入图片描述
第一步:首先数据会被同时写入buffer和translog,
第二步当buffer达到足够大小或存储了一秒钟的数据后,es会将buffer中的数据refresh到oschche中。
第三步:translog足够大或每隔30分钟发起commit操作将os cache中的segment file flush到磁盘中去,并且清空日志文件

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值