数据库系统实现(BUFFER数据下推算法)

       使用BUFFER CACHE进行数据的处理,KEY进行INSERT的过程中,首先进行PAGE算法,对应到TREENODE上,进行比较,如果大于TREENODE 对应的MAX(TREENODE 的FILE中SEGMENT的数据没有满的情况下,不进行MAX的比较,都可以进行INSERT本LEVEL 的MSGBUFFERLIST 中),继续下一LEVEL的TREENODE的判断,过程进行重复即可。

       某Level 的MSGBUFFER的数量超过阀值,需要进行数据的下推,会触发本LEVEL的数据持久后,写文件操作,将数据写到对应TREENODE的SEGMENT上,同时修改TREENODE的COUNTER和MAX。

       本LEVEL进行的INSERT, MERGE, SORT, SPLIT处理后,挤出的数据需要下推到下一LEVEL 的MSGBUFFER,存在一个问题,挤出的数据是否可以全数INSERT下一级的MSGBUFFER,如果下一LEVEL的MSGBUFFER空间够,直接INSERT;如果MSGBUFFER空间不够的话,就需要进行NEXT LEVEL的持久化,过程控制就比较复杂。有可能每一LEVEL 的MSGBUFFER都出现此情况。

        一个假设是MSGBUFFER 的数据进行NSERT, MERGE, SORT, SPLIT处理后,挤出到下一级的数据是不会增加的,最多是和INPUT的数据相同,这样就可以使用同一个CALLBACKBUFFER来进行数据缓存,等下一个触发来进行继续向下推的处理。

       算法有两个空间来进行下推数据的处理,可以定义为INPUT MSGBUFFERLISET, 另一个可以定义为NEXT INPUT MSGBUFFERLIST, 其中NEXT INPUT MSGBUFFERLIST是向下一LEVEL推数据的缓存。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值