文档的分布式存储

目录

文档存储在分片上

文档到分片的路由算法

更新一个文档的的流程

删除一个文档的流程


文档存储在分片上

  • 文档会存储在具体的某个主分片和副本分片上:例如文档1,会存储在P0和R0分片上

  • 文档到分片的映射算法

    • 确保文档能够均匀分布在所用的分片上,充分利用硬件资源,避免部分机器空闲,部分机器繁忙

    • 潜在的算法

      • 随机/Round Robin.当查询文档1,分片数很多,需要多次查询才能查到文档1

      • 维护文档到分片的映射关系,当文档数据量很大的时候,维护成本高

      • 实时计算,通过文档1,自动算出需要去哪个分片上获取文档

文档到分片的路由算法

  • shard = hash(_routing)% number_of_primary_shards

    • Hash算法确保文档均匀分布到分片中

    • 默认的_routing值是文档id

    • 可以自定制routing数值,例如用相同国家的商品,都分配到指定的shard

    • 设置 Index Settings后,Primary数不能修改的根本原因

更新一个文档的的流程

  • 用户发送一个请求到一个节点,该节点扮演Cooperation Node的一个角色通过hash算法计算这个路由该被发送到那个分片上
  • 先做一个删除,再把文档创建出来
  • 成功之后再把这个操作结果发送给Cooperation Node,Cooperation Node将结果相应给客户端

删除一个文档的流程

  • 用户发送一个请求到一个节点,该节点扮演Cooperation Node的一个角色通过hash算法计算这个路由该被发送到那个分片上
  • 删除该分片上对应的文档,将删除replica的请求发送到其他replica上(路由通过Cluster State获取)
  • replica删除成功后发送给Primary Shard,Primary Shard将整体删除的结果发送给Cooperation Node,Cooperation Node将结果相应给客户端

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值