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数据读写过程相关推荐

  1. 【蓝牙sbc协议】sbc源码阅读笔记(三)——数据读写过程

    sbc_编码过程详解 编码部分源码 // sbcenc.c static void encode(char *filename, int subbands, int bitpool, int join ...

  2. Hadoop-HDFS的数据读写过程(详细过程与图解)

    目录 网络拓扑-节点距离 读过程 HDFS客户端与NameNode通信 HDFS客户端与DataNode通信 HDFS读数据的详细过程 代码实现 写数据 HDFS客户端与NameNode通信 HDFS ...

  3. 【Elasticsearch】如何设计可扩展的 Elasticsearch 数据存储的架构

    1.概述 转载:如何设计可扩展的 Elasticsearch 数据存储的架构 Elasticsearch 允许您存储.搜索和分析大量的结构化或非结构化数据.因为在速度.可扩展性和灵活性方面拥有优势,E ...

  4. Elasticsearch数据接入

    文章目录 简介 LogStash接入 ES-Hadoop接入 重要配置 批处理导入 流数据写入 Dstream to ES Structured Streaming to ES 几个注意事项 主键设置 ...

  5. 干货 | Elasticsearch 数据建模指南

    0.题记 我在做 Elasticsearch 相关咨询和培训过程中,发现大家普遍更关注实战中涉及的问题,下面我选取几个常见且典型的问题,和大家一起分析一下. 订单表.账单表父子文档可以实现类似 SQL ...

  6. mysql 冷热数据分离_elasticsearch冷热数据读写分离

    Elasticsearch5.5冷热数据读写分离 前言 冷数据索引:查询频率低,基本无写入,一般为当天或最近2天以前的数据索引 热数据索引:查询频率高,写入压力大,一般为当天数据索引 当前系统日志每日 ...

  7. 嵌入式linux文件系统格式,嵌入式Linux的文件系统分区及数据读写方法与流程

    本发明涉及Linux系统的数据存储管理领域,特别是涉及一种基于NANDFlash存储器和UBIFS文件系统的嵌入式Linux的文件系统分区及数据读写方法. 背景技术: ::目前Linux操作系统由于源 ...

  8. python读数据-python数据读写

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 读写json文件的文档docimport jsondirectory = ...

  9. 【Android 高性能音频】AAudio 音频流 缓冲区 简介 ( AAudio 音频流内部缓冲区 | 缓冲区帧容量 | 缓冲区帧大小 | 音频数据读写缓冲区 )

    文章目录 I . AAudio 音频流内部缓冲区 与 音频数据读写缓冲区 概念 II . AAudio 音频流内部缓冲区 缓冲区帧容量 BufferCapacityInFrames 与 缓冲区帧大小 ...

最新文章

  1. 转载:二叉树的前中后和层序遍历详细图解(递归和非递归写法)
  2. 强网杯2020-dice2crybaby_crtbank
  3. 土拍熔断意味着什么_火爆!楼面价14615元/㎡,土拍过后房价涨,常州买房正当时!...
  4. 探讨PHP 静态变量 静态方法 初始化类的问题 哪种写法合格
  5. 数学4如何用计算机画正切函数图像,《正切函数的图像与性质》示范公开课教学设计【高中数学必修4(北师大版)】.doc...
  6. 自动驾驶应用加速 模拟仿真技术是关键之一
  7. Spring学习笔记 Spring项目介绍
  8. 目标检测之正负样本详解
  9. mysql通过股票代码查数据_如何在交易数据中查询各个版本交易量前三的股票?(MySQL分组排名)...
  10. 实例对比 Julia, R, Python,谁是狼语言?
  11. 项目中分页查询得实现
  12. 图像缩放算法(中篇)
  13. Java培训机构出来好找工作吗?
  14. Android挂逼修炼之行---微信摇骰子和猜拳作弊器原理解析
  15. 645 - 2007通信协议报文解析
  16. [机器学习] 超参数优化介绍
  17. 七年级上册计算机工作计划,七年级信息技术教学工作计划
  18. 柯达破产背后的品牌价值
  19. wireshark 过滤omci包_PON注册认证过程分析
  20. 一次制作写字机器人的过程(含制作教程)

热门文章

  1. Cognitive Complexity of methods should not be too high Refactor this method to reduce its Cognitive
  2. 《数据仓库与数据挖掘教程》ch01绪论 章节整理
  3. 购买阿里云域名绑定ip教程
  4. PPC气箱脉冲除尘器
  5. Superset 数据分析平台搭建及使用 1
  6. 解决netsh winsock reset找不到指定文件
  7. FLD5302升压8.4V充电IC芯片和FLD5303升压12.6V充电IC芯片规格书datasheet
  8. 利用声音传感器控制led灯功能_树莓派 LED+蜂鸣+声音传感器+红外模块组合打造声控/红外控制LED...
  9. 07 HSV和HSL和YUV
  10. pikachu暴力破解