ES集群分布式查询原理

集群分布式查询

elasticsearch的查询分成两个阶段:

  • scatter phase:分散阶段,coordinating node会把请求分发到每一个分片
  • gather phase:聚集阶段,coordinating node汇总data node的搜索结果,并处理为最终结果集返回给用户分片存储原理

集群分布式存储

当新增文档时,应该保存到不同分片,保证数据均衡,那么coordinating node如何确定数据该存储到哪个分片呢?

分片存储原理:

elasticsearch会通过hash算法来计算文档应该存储到哪个分片:

说明:

  • _routing默认是文档的id
  • 算法与分片数量有关,因此索引库一旦创建,分片数量不能修改!

新增文档的流程如下:

解读:

1)新增一个id=1的文档

2)对id做hash运算,假如得到的是2,则应该存储到shard-2

3)shard-2的主分片在node3节点,将数据路由到node3

4)保存文档

5)同步给shard-2的副本replica-2,在node2节点

6)返回结果给coordinating-node节点

相关推荐
terry6008 小时前
2026滑动拼图验证码选型指南:AI对抗下的厂商对比与落地实测
大数据·人工智能·web安全·信息与通信·数据库架构
AI 小老六8 小时前
Google AX 控制面拆解:分布式 Agent 如何把断点恢复、审计策略和执行调度收进同一条链路
人工智能·分布式·后端·ai·架构·ai编程
仓储管理员20258 小时前
六款WMS仓储管理系统功能与部署方式介绍
大数据·精选
阿部多瑞 ABU8 小时前
数据循环悖论:AI检测模型的技术局限与生态灾难
大数据·人工智能·安全·机器学习·ai·自然语言处理
desond8 小时前
杭州抖音代运营公司怎么选?品牌来杭考察前的选择参考
大数据·产品运营
数智化精益手记局8 小时前
拆解复杂项目管理流程:用项目管理流程解决跨部门协作低效难题
大数据·运维·数据库·人工智能·产品运营
xhtdj8 小时前
Uber 如何通过批处理实现单账户每秒30+次更新
大数据·数据库·人工智能·安全·动态规划
functionflux9 小时前
kafka-python:Python 生态中最成熟的 Kafka 客户端
分布式·python·其他·kafka
湘美书院--湘美谈教育9 小时前
湘美谈教育AI赋能系列经验集锦:学好唐诗宋词的点滴心得体会
大数据·人工智能·深度学习·神经网络·机器学习
暴躁小师兄数据学院10 小时前
【AI大数据工程师特训笔记】第15讲:大数据环境安装
大数据·hadoop·flink·spark