2023-04-17 stonedb-X100引擎-聚合-思考

news/2025/1/16 1:53:29/

摘要:

最近在分析将X100引擎的处理做更为精细化的处理, 一个非常经典的场景以及算子便是聚合的处理。

本文对聚合要面临的问题做思考. 其中将视角切换为将mysql列存储的聚合做X100引擎的处理。

X100引擎:

2023-04-13 MonetDB/X100: Hyper-Pipelining Query Execution_禅定悟世的博客-CSDN博客

mysql列存储的聚合处理:

面临问题:

  1. 对列数据的访问方式导致难以在多线程切片时做到线程安全
  2. 聚合使用的hash表的key, 直接数据拷贝grouping的列
  3. 采用了经典的火山模型

导致的困境:

  1. 列数据横向切片的困难, 导致了无法做到线程并行
  2. 突入表现在
    1. 线程安全, 临界区界定模糊, 导致在访问数据时的错误
    2. 一些数据类型在访问时候计算, 比如decimal, 导致多个线程同时修改同一份数据
  3. 聚合的hahs表使用grouping列的值当作key, 最突出的问题就是导致了性能和内存占用
  4. 火山模型则导致了向量化的问题
    1. 火山模型的iterator导致了数据的访问非向量化
    2. 不利于CPU的cache
    3. 在火山模型的访问的过程中生成聚合hash导致多流水线分支预测的生效

数据存储的方式:

<


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

相关文章

dolphinscheduler 3.0.1数据质量

dolphinscheduler 3.0.1数据质量 &#x1f42c;环境配置&#x1f42c;定义质量节点测试&#x1f420;运行失败 &#x1f42c;源码其它(spark-submit)20221114补充 &#x1f53c;上一集&#xff1a;dolphinscheduler 3.0.1 资源中心 *️⃣主目录&#xff1a;dolphinscheduler 3.…

【FT2000/4+X100】调试记录

硬件环境FT2000/4X100&#xff0c;单板结构&#xff0c;对外显示&#xff0c;运行银行麒麟操作系统。 ## 一 生成UEFI.BIN&#xff0c;烧写在FT2000-4的QSPI Flash中下载源文件 edk2-for-support.tar&#xff1b; 参考文件 ft2004c&D2000编译打包说明V1.0.5&#xff1b; …

枭龙智能眼镜 XLOONG X100 Glass拆解

↓这里只拆到主板过&#xff0c;首先需要对带Glass的可拆卸配件进行壳体加热&#xff0c;主机外壳有密封胶&#xff0c;吹风机对主机外壳的接缝处进行加热&#xff0c;可以从下侧的点开始用撬棒拆 ↑拆开一个角之后沿着边慢慢打开&#xff0c;如果还是有阻尼感打不开 &#xff…

Hbase---hfile

逻辑数据组织格式 Scanned block section&#xff1a;表示顺序扫描HFile时&#xff08;包含所有需要被读取的数据&#xff09;所有的数据块将会被读取&#xff0c;包括Leaf Index Block和Bloom Block&#xff1b;Non-scanned block section&#xff1a;HFile顺序扫描的时候该…

测试真的会被ChatGPT代替一文告诉你

送走最后一车货&#xff0c;最后三个工人&#xff0c;老王吃力的关上大铁门。左手从口袋摸出一盒烟&#xff0c;轻轻一颠&#xff0c;滑落一根&#xff0c;右手娴熟的夹住。掏出打火机&#xff0c;点燃&#xff0c;一丝青烟腾起&#xff0c;萦绕在指头。 夕阳穿过玻璃&#xf…

Git教程笔记

概念 Git是一个分布式版本控制工具&#xff0c;主要用于管理开发过程中的源代码文件&#xff08;Java类、xml文件、html页面等&#xff09;在软件开发过程中被广泛使用。 Git常用命令 Git全局设置 获取Git仓库 工作区、暂存区、版本库 概念 Git工作区中文件的状态 工作区中…

Kubernetes StatefulSet之volumeClaimTemplates

在 Kubernetes 中&#xff0c;StatefulSet 是用于管理有状态应用的控制器对象。它确保每个 Pod 都有唯一的标识符和稳定的网络标识&#xff0c;并按照顺序进行部署和终止。StatefulSet 还提供了一种方便的方式来管理这些有状态应用所需的持久化存储。 volumeClaimTemplates 是…

实时检测Aruco标签坐标及位姿opencv-python4.6和4.7版本

先说opencv-contrib-python4.7.0.72时&#xff0c;aruco下面带曲线&#xff0c;但是程序也能跑&#xff0c;可以跑检测的&#xff0c;对比4.6版本需要改三个函数 4.6装opencv-contrib-python 4.7装opencv-contrib-python 1 cv2.aruco.Dictionary_get() cv2.aruco.getPredef…