es读写底层原理剖析
2023-07-03 12:20:14 2 举报
es读写底层原理
作者其他创作
大纲/内容
客户端
同步数据1
内存buffer
segmentfile(磁盘文件)
OS cache每5秒写入translog文件
每隔30分钟flush
translog写入OS cache
translog不断变大,到一定的阈值,会触发commit操作
shard 03primary
es进程02(协调节点)
接到搜索请求找自己本地的replica shard和primary shard,再找其他节点的primary和replica节点,找出所有符合的document的docid,协调节点根据docid去找出符合的document
协调节点返回搜索结果
es进程03
shard 03replica
commit point(磁盘)
shard 01replica
客户端搜索某条数据,发现在.del中被标识成删除,就不会搜索出来
es是准实时的,因为进入OS cache的数据只能被搜索到,可能一秒后才能查到
segmentfile(大磁盘文件)
font color=\"#e74f4c\
OS cache
shard 02primary
通过hash计算出数据1应该写到shard 01上,协调节点将数据路由到primary shard
.del文件(磁盘)
删除数据,写入.del文件
shard 02replica
es进程01
primary和replica shard都写完了,协调节点会返回写成功的响应
当segment文件数量多时,多个文件会merge成一个大文件,同时会查看数据是否被标识删除,被标识删除的数据,在新文件里就没了
搜索关键词
shard 01primary
translog日志文件(磁盘)
查询doc[id =1]
写入一条数据1
通过负载均衡去primary和replica上轮循查询数据,交给协调节点返回
0 条评论
下一页