写数据过程
- 客户端发写数据的请求时,可以发往任意节点。这个节点就会成为coordinating node协调节点.
- 计算的点文档要写入的分片: 计算时就采用hash取模的方式来计算
- 协调节点就会进行路由,将请求转发给对应的primary sharding所在的datanode
- datanode节点上的primary sharding处理请求,写入数据到索引库,并且将数据同步到对应的replic
- 等primary sharding和 replica sharding都保存好文档了之后,返回客户端响应。
读数据过程
- 客户端发请求可发给任意节点,这个节点就成为协调节点
- 协调节点将查询请求广播到每一个数据节点,这些数据节点的分片就会处理改查询请求
- 每个分片进行数据查询,将符合条件的数据放在一个队引当中,并将这些数据的文档D、节点信息、分片信息都返回给协调节点。
- 由协调节点将所有的结果进行汇总,并排序.
- 协调节点向包含这些文档ID的分片发送et请求,对应的分片将文档数据返回给协调节点,最后协调节点将数据整合返回给客户端。