Elasticsearch 写入和查询优化底层原理

本文深入探讨了Elasticsearch的写入原理,包括涉及的概念和特性,并提出了两种优化方案。同时,文章详细阐述了Elasticsearch的优化策略,包括写入和查询的优化措施。
摘要由CSDN通过智能技术生成

一、Elasticsearch 写入原理

1、每个index,是由多个shard组成(默认是5个),每个shard有一个主节点和多个副本节点(分散在不同的物理节点上)。

2、 写入数据的时候,先根据routing参数(以那个字段的值作为路由key,可以在Request里面设置,
	如果没有就会按照mapping里面设置的来,mapping里面没有设置,就会按_id的值做参数)计算出对应的shard,
	在es集群中找到shard的primary节点。

3、数据发送到节点后,先将数据写入到内存buffer,这个时候是搜索不到数据的。

4、每隔1s,buffer里面的数据会生成segment file数据,并refresh到os cache中(系统级别的缓存),buffer缓存被清空,
  这个时候可以搜索到数据了,因为生成了segment file,虽然没有写入磁盘,但是已经在系统缓存中了。os cache会定时
  去做fsync,也就是写入数据到磁盘。

5、每隔5s,os cache会写入数据到translog日志文件,这个文件到达一定的大小后/或者到达一定时间后,会触发commit操作。
    commit第一步,是将buffer里面的数据refresh到os cache里面,清空buffer。
    	  第二步,是将os cache里面的数据fsync到磁盘里面去。
    	  第三步,是清空translog日志文件文件,重启一个translog日志文件。

6、写入原理图:

在这里插入图片描述
在这里插入图片描述

二、es 写入涉及到的概念

segment file: 
		
		倒排索引,buffer里面的数据,每隔1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值