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-03-27 15:10:32 发布