Elasticsearch数据读写过程
1. 写入数据原理。
首选Elasticsearch并不是完全实时的,即写入数据后不是立马就会被读到的。默认的时间间隔是1秒钟。
插入数据的时候,数据首先会被写入到buffer缓冲区,此时的数据是不能被搜索到的(但是可以通过get id的方式获取),同时,会生成一个translog文件,数据也会写到这里面来。
es在写数据的时候,数据是先进入缓存中的,并不是马上写入磁盘,所以如果此时断电,缓存数据会丢失,借助translog,可以进行数据恢复。
当缓冲区的数据达到一定量的时候(默认是分配的内存的10%)或者到达时间间隔(默认 1 s),数据就会被写入到 index 下面的segment中,数据写入这里面的时候,就已经建立好了倒排索引,同时清空缓冲区的数据。数据每隔1s就会被刷新进segment文件中,同时数据会进入到os cache 中,这时候,数据就可以被搜索到了,这个过程也是 refresh 过程。
不断循环这个过程,数据就会不断从缓存写入segment文件,但是translog文件会不断增大。
当translog文件不断增大,就会触发commit操作,缓冲区的数据会全部写入到一个新的segment file 文件(这个过程也称为flush),然后进入os cache中,再进入到磁盘中持久化,并且会记录一个偏移量,会被进入到.ckp文件中。
translog的数据都写完之后会被删除掉。
2. 数据读取、更新原理
删除数据,会生成一个 .del 标记这个document,然后就不能被搜索到了
更新也是一样,先标记,然后生成一个新的文件。
es集群并不是像Hadoop一样,分工十分明确的master、slave,虽然es也有master、slave,但是他们都可以用来接收客户端的请求。
客户端的请求到任意节点后,这个节点会担任协调节点的角色,在es集群内部进行路由。
数据查询也类似,请求在协调节点转发,在各个节点获取数据后,在协调节点上进行汇总排序,最后返回客户端。
Elasticsearch数据读写过程相关推荐
- 【蓝牙sbc协议】sbc源码阅读笔记(三)——数据读写过程
sbc_编码过程详解 编码部分源码 // sbcenc.c static void encode(char *filename, int subbands, int bitpool, int join ...
- Hadoop-HDFS的数据读写过程(详细过程与图解)
目录 网络拓扑-节点距离 读过程 HDFS客户端与NameNode通信 HDFS客户端与DataNode通信 HDFS读数据的详细过程 代码实现 写数据 HDFS客户端与NameNode通信 HDFS ...
- 【Elasticsearch】如何设计可扩展的 Elasticsearch 数据存储的架构
1.概述 转载:如何设计可扩展的 Elasticsearch 数据存储的架构 Elasticsearch 允许您存储.搜索和分析大量的结构化或非结构化数据.因为在速度.可扩展性和灵活性方面拥有优势,E ...
- Elasticsearch数据接入
文章目录 简介 LogStash接入 ES-Hadoop接入 重要配置 批处理导入 流数据写入 Dstream to ES Structured Streaming to ES 几个注意事项 主键设置 ...
- 干货 | Elasticsearch 数据建模指南
0.题记 我在做 Elasticsearch 相关咨询和培训过程中,发现大家普遍更关注实战中涉及的问题,下面我选取几个常见且典型的问题,和大家一起分析一下. 订单表.账单表父子文档可以实现类似 SQL ...
- mysql 冷热数据分离_elasticsearch冷热数据读写分离
Elasticsearch5.5冷热数据读写分离 前言 冷数据索引:查询频率低,基本无写入,一般为当天或最近2天以前的数据索引 热数据索引:查询频率高,写入压力大,一般为当天数据索引 当前系统日志每日 ...
- 嵌入式linux文件系统格式,嵌入式Linux的文件系统分区及数据读写方法与流程
本发明涉及Linux系统的数据存储管理领域,特别是涉及一种基于NANDFlash存储器和UBIFS文件系统的嵌入式Linux的文件系统分区及数据读写方法. 背景技术: ::目前Linux操作系统由于源 ...
- python读数据-python数据读写
广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 读写json文件的文档docimport jsondirectory = ...
- 【Android 高性能音频】AAudio 音频流 缓冲区 简介 ( AAudio 音频流内部缓冲区 | 缓冲区帧容量 | 缓冲区帧大小 | 音频数据读写缓冲区 )
文章目录 I . AAudio 音频流内部缓冲区 与 音频数据读写缓冲区 概念 II . AAudio 音频流内部缓冲区 缓冲区帧容量 BufferCapacityInFrames 与 缓冲区帧大小 ...
最新文章
- 转载:二叉树的前中后和层序遍历详细图解(递归和非递归写法)
- 强网杯2020-dice2crybaby_crtbank
- 土拍熔断意味着什么_火爆!楼面价14615元/㎡,土拍过后房价涨,常州买房正当时!...
- 探讨PHP 静态变量 静态方法 初始化类的问题 哪种写法合格
- 数学4如何用计算机画正切函数图像,《正切函数的图像与性质》示范公开课教学设计【高中数学必修4(北师大版)】.doc...
- 自动驾驶应用加速 模拟仿真技术是关键之一
- Spring学习笔记 Spring项目介绍
- 目标检测之正负样本详解
- mysql通过股票代码查数据_如何在交易数据中查询各个版本交易量前三的股票?(MySQL分组排名)...
- 实例对比 Julia, R, Python,谁是狼语言?
- 项目中分页查询得实现
- 图像缩放算法(中篇)
- Java培训机构出来好找工作吗?
- Android挂逼修炼之行---微信摇骰子和猜拳作弊器原理解析
- 645 - 2007通信协议报文解析
- [机器学习] 超参数优化介绍
- 七年级上册计算机工作计划,七年级信息技术教学工作计划
- 柯达破产背后的品牌价值
- wireshark 过滤omci包_PON注册认证过程分析
- 一次制作写字机器人的过程(含制作教程)
热门文章
- Cognitive Complexity of methods should not be too high Refactor this method to reduce its Cognitive
- 《数据仓库与数据挖掘教程》ch01绪论 章节整理
- 购买阿里云域名绑定ip教程
- PPC气箱脉冲除尘器
- Superset 数据分析平台搭建及使用 1
- 解决netsh winsock reset找不到指定文件
- FLD5302升压8.4V充电IC芯片和FLD5303升压12.6V充电IC芯片规格书datasheet
- 利用声音传感器控制led灯功能_树莓派 LED+蜂鸣+声音传感器+红外模块组合打造声控/红外控制LED...
- 07 HSV和HSL和YUV
- pikachu暴力破解