2022-09-02 stonedb-现有加载pack数据模块分析及需求推定

本文分析stonedb数据库在读取pack数据时的设计,强调多线程并行处理和线程安全的重要性。文章讨论了功能性需求,如向量化磁盘IO、缓存机制和事务隔离级别,以及非功能需求,特别是性能指标。当前设计存在的问题包括虚拟列与物理列的交互规则、元数据加载时机、缓存更新机制等,提出了改进的思考方向。

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

摘要:

在多线程并行处理对元组的访问时,必然要对元组的读取有深刻的理解,从而保证在做架构设计时能正确的处理。

这里有个误区, 理解现有代码的设计, 其目的并非是要顺着现有代码的设计思想走下去,而是要明白,按照新的设计思路做下去,所做出的改动对原有设计的破坏程度。要小心破窗效应。

对pack读取的记录在 2022-09-02 mysql/stonedb-读取Pack数据流程记录_帝尊悟世的博客-优快云博客

本文分析在理解读取pack所作的处理时的思路。

读取pack的模块设计分析:

设计和架构不能脱离目的而存在,这个目的的直观表现便是对需求的分析,需求分析确定了功能性和非功能性的边界,这是设计所要达到的目标。

功能性需求:

  1. 向量化读取磁盘io, 也就是一次读取一个pack长度的数据。
    1. 对比innodb的按页读取, 目的在于减少磁盘IO, 更快的加载更多的数据
    2. 同样采取该策略的数据库可以参考clickhouse
  2. 存在缓存机制, 避免每一次获取pack都从磁盘读取
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟世者

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

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

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

打赏作者

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

抵扣说明:

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

余额充值