Es写数据过程
1)客户端选择一个node发送请求过去,这个node就是coordinating node,协调节点,对document进行路由,将请求转发给对应的node
2)实际的node上的primary shard处理请求,然后将数据同步到replica node
3)coordinating node,如果发现primary node和所有replica node都搞定之后,就返回响应结果给客户端
Es写数据底层原理
1)先写入buffer,在buffer里的时候数据是搜索不到的;同时将数据写入translog日志文件
2)如果buffer快满了,或者到一定时间,就会将buffer数据refresh到一个新的segment file中,但是此时数据不是直接进入segment file的磁盘文件的,而是先进入os cache的。这个过程就是refresh。
每隔1秒钟,es将buffer中的数据写入一个新的segment file,每秒钟会产生一个新的磁盘文件,segment file,这个segment file中就存储最近1秒内buffer中写入的
据,但是如果buffer里面此时没有数据,那当然不会执行refresh操作咯,每秒创建换一个空的segment file,如果buffer里面有数据,默认1秒钟执行一次refresh操作,刷入一个新的segment file中。
操作系统里面,磁盘文件其实都有一个东西,叫做os cache,操作系统缓存,就是说数据写入磁盘文件之前,会先进入os cache,先进入操作系统级别的一个内存缓存中去,只要buffer中的数据被refre
ElasticSearch写入数据和查询数据的过程
最新推荐文章于 2024-08-21 12:09:53 发布
本文详细介绍了ElasticSearch的数据写入过程,包括客户端请求、协调节点、主分片处理及副本分片同步。同时,解析了ElasticSearch的写入原理,如数据先写入缓冲区和Translog,再定时刷新到Segment文件,并通过操作系统缓存实现准实时搜索。还讨论了Translog的角色以及在宕机时的数据恢复机制。最后,概述了ElasticSearch的查询过程,强调了doc id在路由和查询中的作用。
摘要由CSDN通过智能技术生成