KUDU(三)kudu数据读写,更新流程

文章目录

在这里插入图片描述
当CLient请求写数据时,先根据主键从Master获取要访问的目标Tablets,然后依次到对应的Tablet获取数据
因为kudu表存在主键约束,所以需要进行主键是否已经存在的判断,这里涉及到之前说的索引结构对读写的优化,一个Tablet中存在多个RowSets,为了提升性能,尽可能减少扫描RowSets数量,首先,我们先通过每个 RowSet 中记录的主键的(最大最小)范围,过滤掉一批不存在目标主键的RowSets,然后在根据RowSet中的布隆过滤器,过滤掉确定不存在目标主键的 RowSets,最后再通过RowSets中的 B-树索引,精确定位目标主键是否存在。
如果主键已经存在,则报错(主键重复),否则就进行写数据(写MemRowSet)。

在这里插入图片描述
先根据要扫描数据的主键范围,定位到目标的Tablets,然后读取Tablets 中的
RowSets,在读取每个RowSet时,先根据主键过滤要scan范围,然后加载范围内的BaseData,再找到对应的DeltaMemStores,应用所有变更,最后union上MemRowSet中的内容,返回数据给Client

更新

在这里插入图片描述
数据更新的核心是定位到待更新数据的位置,这块与写入的时候类似,就不展开了,等定位到具体位置后,然后将变更写到对应的DeltaMemStore 中

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值