2023-01-23 stonedb-聚合多线程并行扫表-VCPackGuardian策略LOCK_LRU-概要设计

stonedb引入LOCK_LRU策略解决LOCK_ALL策略的内存问题,通过淘汰最近最少使用的pack进行内存控制。线程模型确保了顺序读取,避免回退,数据结构采用std::vector和std::unordered_map组合,实现LRU淘汰机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:

聚合的多线程处理,现有代码仅保持读取的最后一个pack.在线程切换后将失效.

此前增加了一种lock_all策略, vc_guard不淘汰已读的pack, 持有所有的pack, 等待上层业务释放. 但是lock_all策略没有内存控制机制, 持续的读取pack在超过内存限制后将导致OOM.

2023-01-10 mysql列存储引擎-聚合多线程并行扫表-VCPackGuardian策略LOCK_ALL-概要设计_帝尊悟世的博客-优快云博客

所以再新增一种LOCK_LRU策略, 以淘汰掉最近最少使用的pack.

本文阐明LOCK_LRU的设计思想.

LOCK_LRU可行的逻辑基础:

pack使用逻辑:

  1. 迭代器顺序向下读取pack, 解析其中内容
  2. 多个线程的迭代器都是向下顺序迭代, 不存在回退
  3. 已读的pack在使用后不会再次使用<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟世者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值