Elasticsearch的写的底层原理

前面有一篇文章讲解了Elasticsearch的读写搜索过程,有的人感觉不太理解,今天我们再来看看这些过程的原理

写数据底层原理

首先是将数据写入到内存buffer中,在这里的时候,数据是搜索不到。他同时会将数据写入到translog日志文件中。

当buffer即将存满,又或者是到了一个定存放时间,它就将内存buffer中的数据刷新到一个新的segment file中。他不是直接进入到磁盘文件,而是先到了os cache中,这就是refresh的过程了。

每1秒钟,elasticsearch会将buffer中的数据写入到一个全新的segment file中,并且会产生一个新的segment file,他是用来存储最近1秒之中buffer写入进来的数据。

假如buffer里面没有数据,就不会执行刷新操作了,如果有数据,则会每1秒执行一次刷新操作,刷进segment file中。

这里我们也需要了解一个东西os cache,这是操作系统中的缓存,当每次有数据要写入到磁盘中的时候,他都会首先进入到os cache中保存,当数据被刷入到os cache 中,这个时候,数据就能够被检索到了。

这样一直重复着上述的步骤。

好了我们来总结一下这个过程:数据首先写入buffer,然后每1秒钟会执行一次刷新,将数据转入到os cache中(这就是为什么我们从elasticsearch写入到他能够被我们检索出来,中间有1秒的延迟的原因了)。之后每隔5秒钟会将数据写入到translog文件内,当此文件增长到一定的成都,或者每隔30分钟,会提交一次,将缓存的数据全部刷新到segment file磁盘中

好了,今天关于Elasticsearch中写操作的底层原理就讲解到这里,欢迎大家留言交流。

也欢迎大家关注我的公众号《coder练习生》

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ybb_ymm

你的鼓励会是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值