这个用户很懒,还没有个人简介
私信
主帖 5
回帖
视频
提问
回答
资源
专栏
背景在并发编程时,对于互斥区我们一般通过锁来保护。在Greenplum中也是如此,所以大家在源码中可以看到相应的锁操作,比如我们已经熟悉的spinlock,lwlock等等。但是在有些场景中,互斥区非常小(比如只访问一个变量的场景),为了提升性能,更希望使用无锁方式来进行操作,因此希望对应的操作可以原子化。针对这类场景,在大部分编程语言中都内置了相应的基础库,比如C++中的std::atomic,Java中的java.util.concurrent.atomic...
2022-08-03 17:46:38 172浏览 0点赞 0回复 0收藏
优化器是数据库的关键组件,GPORCA是Greenplum中的强大的模块化查询优化器,帮助用户对SQL进行优化,生成高效的查询计划,提高查询效率。GPORCA优化器架构是基于Cascades模型,本文将对GPORCA优化器的Transform流程进行详细介绍。优化器简介SQL是一种描述性语言。对于一个复制的SQL语句,可能生成几十上百个等价的执行计划。实际上,选择最优执行计划的问题,已经被证明是一个NPHARD问题。因此,人为的把SQL推导成执行计划,并...
2022-08-03 17:46:17 205浏览 0点赞 0回复 0收藏
位图(bitmap)索引是Greenplum中所特有(对比PostgreSQL)的一种索引类型,非常适用于大数据量且数据修改需求不大的数据分析场景(OLAP)中使用。Bitmap索引可以保证在提供优良查询速度的前提下,使用更小的空间开销,能够有效节省大数据量环境的硬盘空间使用,从而降低系统运行成本。1什么是BitmapIndexBitmapIndex非常类似于RevertedIndex(转置索引,或倒排索引),是一种反向索引,使用位图(bitmap)结构来记录某个唯一Key...
2022-08-03 17:45:54 247浏览 0点赞 0回复 0收藏
续:深入浅出GreenplumBitmapIndex(上篇)3.1IndexScan首先来看下IndexScan的执行流程以及大致的函数调用栈,如下图所示:整体可以分为4大部分:最外层自然是AM,即AccessMethod部分,是PostgreSQL对数据访问方式的一种抽象,我们可以简单地理解为一种多态。BitmapIndex使用bmgettuple()每次向上层调用返回一个tuple,在第一次调用时将调用bitmapfirst()完成初始化工作,而后不断调用bitmapnext()返回结果;第二部分则是为索引扫...
2022-08-03 17:44:33 209浏览 0点赞 0回复 0收藏
gprestore是专门用来做gpdb数据恢复的并行恢复工具,配合gpbackup使用,编译安装方式与gpbackup一样,无论是官方下载的软件包还是自行编译的软件包,均会有gprestore这个命令。下面我们仍然采用与中篇一样的套路来进行演示,首先把gprestore的详细命令给大家贴一下,然后通过实验的方式做几个具体场景的解释。在本文的最后,对整个工具进行一个总结,希望对大家日后使用有所帮助。1gprestore备份参数详解如果要使用gprestore进...
2022-08-03 17:44:03 188浏览 0点赞 0回复 0收藏