OceanBase转储个人理解

我的理解:

转储的概念就是做小版本冻结(minor freeze),冻结memtable(frozen memtable)直接flush为mini sstable,mini sstable个数由minor_compact_trigger参数决定,冻结memtable(frozen memtable)被清空重用。mini sstable写到minor sstable里,每次转储会将memtable数据与前一次转储的数据合并(merge),转储文件最终合并到sstable中。

转储的作用:

解决资源消耗高、单组合memstore使用率高触发集群级合并、合并时间长,memstore内存释放不及时造成memstore满而数据写入失败  的问题。

转储的副作用:

数据层级多,查询链路长,查询性能下降。

冗余数据增多,占更多磁盘空间

转储功能适用场景:

1.跑批、大量数据导入,写memstore的速度很快,需要memstore内存尽快释放。

2.业务峰值交易量大,写入memstore的数据很多,但不想再峰值触发合并(major freeze),希望合并延后。

转储参数与常用配置:

minor_freeze_times

1.控制两次合并之间的转储次数,达到此次数,就自动触发合并(major freeze)

2.设置为0表示关闭转储。每次组合memstore使用率达到冻结阈值(freeze_trigger_percentage)都直接触发集群合并

3.增大该值尽量避免峰值交易时段触发合并(major freeze),将合并时机延后到低峰值的每日合并(major_freeze_duty_time)

minor_merge_concurrency

1.并发做转储的分区个数,单个分区暂不支持拆分转出,分区表可加速。

2.并发转储的分区过少,影响转储性能和效果(例如memstore内存释放不够快)

3.并发转储的分区过多,同样会消耗过多资源,影响在线交易性能。

4.减小该值(比如40),使memstore尽早释放,进一步降低memstore写满的概率

              OB                            tidb

     active memtable   =   memtable

     frozen memtable   =   immutable

L0  mini SStable          =   level 0

L1  minor sstable

L2  major sstable

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汪灵骅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值