增量合并操作Delta Merge Operation之过程

         由于写操作只在增量存储区上进行,要将数据转换成使用内存少和读取性能好的格式就需要将它传输到主存储区。此过程即为增量合并操作Delta Merge Operation。合并过程如下图


1.      合并前,所有写操作在增1进行,读操作读取增1和主1的数据。

2.      合并过程中:

a)      所有写操作在增2进行

b)      读操作读取主1、增1和增2的数据

c)       1内未提交的数据复制到增2

d)      1内已提交的数据和主1内的数据合并进入主2

3.      合并完成后

a)      删除主1和增1

b)      2的数据重新压缩并优化,如果需要还可以对记录排序并调整压缩参数。若压缩变动,立即重新载入数据

c)       2数据持久化到磁盘

d)      删除增量日志

增量存储区只存在于内存中,不会写入磁盘。对增量区域进行的所有变动操作会形成增量日志(系统重启后,用于增量存储区的重建)。增量合并操作进行后会删除增量日志文件。

因为有双重缓冲,操作过程中表被锁定的时间很短(只在增1内未提交的数据复制到增2时以及最后主1和增1被替换时)。

         注意,

合并操作需要的内存=当前主存储区+未来主存储区+当前增量存储区+附加内存。

若列存储表未被加载或部分加载,合并操作会完全加载表数据。

Delta Merge Operation操作代价较高的原因如下:

Ø  主存储区的数据被重新写入内存,消费CPU资源。当主1和主2并存时至少需要双倍的内存消耗

Ø  哪怕只是很少的更改,主存储区都要被持久化到磁盘,加重IO负担

以下操作部分减少增量合并对系统的影响

Ø  执行memory-only merges:只影响内存中的结构,不进行最后的持久化

Ø  表分区:将表分成多个分区,每个分区拥有独立的主存储和增量存储。增量合并操作只在分区层面进行操作,所以减少了合并和持久化的数据量。但也要注意分区的不好影响。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值