2023-06-24 monetdb-解读的角度-思考

news/2024/12/29 3:18:05/

摘要:

gbk是monetdb中的核心, 是Goblin Database Kernel的缩写, 在monetdb中的最核心的模块, 可以说是作为逻辑优化,物理优化, 查询执行的整个汇集。

本文记录下对monetdb解读的角度

monetdb对于列存储数据库的整体上的启发:

  1. 设计列存储的理论基础
  2. 向量化的cpu的硬件的架构基础, cpu分支预测, pipeline 预处理, cpu的cache命中
  3. 列存储与行存储的设计上的区别
    1. 行存储对于写和读的场景,分别有哪些优势和劣势
    2. 为什么行存储大部分都是在围绕b+树做处理
    3. 列存储的处理单元是列, 对于写和读的影响分别是什么
  4. 列存储对读做了向量化的优化处理, 那么对于更新是如何处理,对于ACID是如何实现的?

monetdb的模块分解

一. 整体上的模块划分

参考: Design Overview | MonetDB Docs

  1. 查询解析器
    1. 输入: ANSI SQL的查询语句
    2. 输出: monetdb的MAL语句,分解为BAT的关系代数形式的语句
  2. 查询优化器
    1. 对于MAL语句做一些基于规则的优化
    2. 代码中是以opt开头的文件
    3. 大部分是人为的规则, 可以对比duckdb的rules
  3. MAL执行器
    1. 查询执行的核心, 并且在不同的算子上做具体的优化
    2. 此处应该注意区别于基于代价的查询优化器和执行器, 不做整体的代价公式, 具体的细节可以查看monetdb中的相关设计文档
    3. 执行的基本单位是BAT,直接翻译是二进制的列关系, 而且对于列是认为是只读的,每次对于列的计算是生成一个新的列。这点上clickhouse汲取了monetdb的设计经验
    4. 内存模型和磁盘模型是一致的,磁盘的读取是基于内存映射mmap, 数据的存储结构是为了向量化的读取做了优化
    5. 此处对于如何实现更新的ACID是一个尚未被彻底解读代码的地方

二. 查询优化器

参考: MAL Optimizers | MonetDB Docs

三. MAL执行层

参考: 

  1. Algebra | MonetDB Docs
  2. Bat | MonetDB Docs


http://www.ppmy.cn/news/555830.html

相关文章

DGX H100超级计算机,借助 NVIDIA DGX H100 释放 AI 的力量

人工智能正在改变世界,开创跨不同行业的创新和优化新时代。然而,人工智能的复杂过程需要强大的计算能力,特别是对于复杂和大规模的任务。NVIDIA 通过开发 DGX H100 迎接这一挑战,这是一个强大的系统,可以处理一些最苛刻的 AI 工作负载。 DGX H100 是什么? DGX H100 是 …

408王道计算机组成原理强化——中央处理器及大题解构

目录 1.指令的实现逻辑 2.硬件的控制信号 3.常见硬件 3.1.操作元件 3.2.寄存器 4.中断 5.数据通路 6.五段式指令流水线 7.真题 1.指令的实现逻辑 1.取指令 ①根据PC取指令到IR:(PC)→MAR,M(MAR)→…

计算机辅助设计习题

3.1 某曲线由以下数据点表示,经过计算发现该数据点存在问题,下划线所示的数据点需要剔除,试编制C计算机程序,采用链式数据结构实现这一过程。分析如果采用数组实现这一过程,二者数据在内存中的存储地址有何不同&#x…

leetcode188. 买卖股票的最佳时机 IV.动态规划-java

买卖股票的最佳时机 IV leetcode188. 买卖股票的最佳时机 IV题目描述 动态规划代码演示 动态规划专题 leetcode188. 买卖股票的最佳时机 IV 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-st…

如何选择消息中间件

一、 分布式系统消息通信技术简介 分布式系统消息通信技术主要包括以下几种: 1. RPC(Remote Procedure Call Protocol). 一般是C/S方式,同步的,跨语言跨平台,面向过程 2. CORBA(Common Object Request Broker Architecture). CO…

java.sql.SQLException: No value specified for parameter 6

异常 java.sql.SQLException: No value specified for parameter 6 原因 sql中定义了6个参数,只传了5个参数

【gitHubDailyShare】多合一黑客工具汇总,Hacking Too与计算机安全相关的开发者工具,包括网络攻击、DDOS 与 XSS 攻击工具

GitHub 上开源的多合一黑客工具汇总:Hacking Tool。 作者收录了多款与计算机安全相关的开发者工具,包括网络攻击、DDOS 与 XSS 攻击工具、信息收集、SQL 注入、网络爬虫、哈希破解等。 GitHub:github.com/Z4nzu/hackingtool ​​​

支付宝生成秘钥工具

网址:https://openhome.alipay.com/platform/appDaily.htm?tabinfo 生成RSA2秘钥 下载秘钥生成工具 将下载的工具进行安装。 生成秘钥 填写生成的应用公钥,获取支付宝的公钥。 生成的应用公钥,获取支付宝的公钥。**