
GBase 8c
文章平均质量分 59
蜻蜓队镸
这个作者很懒,什么都没留下…
展开
-
GBase 8c 分布式高可用
在部署上,DN节点每个高可用组采用主从备份的方式,可以部署单主、一主一从以及一主多从的部署方式均可,主从之间可以配置为同步的备份方式也可以配置为异步的备份方式,也可以在一个高可用组内同时存在同步和异步的节点,一般同机房同城的节点之间采用同步的备份方式,异地的节点之间采用异步的备份方式。在部署上,CN多个节点完全对等的部署方式,每个节点在同一时间对外都提供相同的数据库视图,所以我们的CN节点高可用可以根据实际的业务需求,部署1个或多个都可以,多个CN节点可以部署在同机房、同城、异地都可以。原创 2022-10-28 15:50:14 · 1549 阅读 · 1 评论 -
GBase 8c的两阶段提交
两阶段提交协议之所以能够保证分布式事务原子性的关键在于:一旦准备阶段执行成功,那么提交需要的所有信息都完成持久化写入磁盘,即使后续提交阶段某个DN发生执行错误,该DN也可以再次从持久化的提交信息中尝试提交,直至提交成功。GBase 8c的跨节点的分布式事务是通过GTM的严格的两阶段提交的跨节点的分布式事务。在数据提交的时候,CN先向每个DN节点发送prepare状态,DN节点返回prepare ok状态后,CN再发送commit状态,最后DN节点返回commit ok状态后才算一次提交完成。原创 2022-10-28 14:18:34 · 342 阅读 · 0 评论 -
GBase 8c 存储技术---内存引擎(三)
内存引擎作为在GBase 8c中与传统基于磁盘的行存储、列存储并存的一种高性能存储引擎,基于全内存态数据存储,为GBase 8c提供了高吞吐的实时数据处理分析能力及极低的事务处理时延,在不同业务负载场景下可以达到其他引擎事务处理能力的3~10倍。内存引擎之所以有较强的事务处理能力,并不单是因为其基于内存而非磁盘所带来的性能提升,而更多是因为其全面地利用了内存中可以实现的无锁化的数据及索引结构、高效的数据管控、基于 NUMA 架构的内存管控、优化的数据处理算法及事务管理机制。同时支持同步和异步日志记录选项。原创 2022-10-28 11:43:37 · 1546 阅读 · 0 评论 -
GBase 8c 存储技术---列存储引擎(二)
此类场景下,行存储以行作为操作单位,会引入与业务目标数据无关的数据列的读取与缓存,造成了大量IO 的浪费,性能较差。列存储引擎的存储基本单位是 CU(Compression Unit,压缩单元),即表中一列的一部分数据组成的压缩数据块。行存储引擎中是以行作为单位来管理,而当使用列存储时,整个表整体按照不同列划分为若干个 CU,划分方式如下图所示。为了管理表对应的CU,与执行器层进行对接来提供各种功能,列存储引擎使用了CUDesc(压缩单元描述符)表来记录一个列存储表中CU 对应的元信息。原创 2022-10-28 11:31:40 · 941 阅读 · 0 评论 -
GBase 8c 存储技术---行存储引擎(一)
GBase 8c行存储引擎采用原位更新(in-place update)设计,支持 MVCC(Multi- Version Concurrency Control,多版本并发控制),同时支持本地存储和存储与计算分离的部署方式,支持存储层异步回放日志等。行存储引擎的特点是支持高并发读写,时延小,适合 OLTP交易类业务场景。注:数据页面缓存池中缓存数据页面,在数据页面中存放元组以及元组的历史版本并集中管理,使用 Vacuum(垃圾清理)线程进行定期的空间回收。原创 2022-10-28 11:24:34 · 552 阅读 · 0 评论 -
GBase 8c 自动分区管理
分区自动管理每隔period的时间就会自动创建分区,每次创建一个或多个时间范围为period的新分区,以推进最大的分区边界时间,保证其大于nowTime+30*period。这些时间相关的数据导入分区表时,需要保证分区表要有对应时间的分区,由于普通的分区表不会自动创建新的分区和删除过期分区,所以维护人员需要定期创建新分区和删除过期分区,提高了运维成本。分区自动管理每隔period的时间就会遍历检测所有分区,并删除其中的过期分区,如果所有的分区都是过期分区,则保留一个分区,并truncate该表。原创 2022-10-28 09:29:24 · 1395 阅读 · 0 评论 -
GBase 8c索引类型
B-tree索引适合比较查询和范围查询,当查询条件使用(>,=,=,原创 2022-10-25 14:23:56 · 605 阅读 · 0 评论 -
GBase 8c 锁机制
自旋锁主要用于加锁时间非常短的场合,比如修改标志或读取标志字段,在几十个指令(CPU原子指令)之内。GBase 8c锁分为三种:自旋锁(spinlock)、轻量级锁(Light Weight Lock/LWLock)和常规锁。常规锁主要用于业务访问的数据库对象加锁。常规锁的加锁遵守数据库的两阶段加锁协议,即访问过程中加锁,事务提交时释放锁。轻量级锁主要用于内部临界区操作比较久的场合,加锁和解锁的操作可以跨越函数,但使用后要立即释放。一般情况下,锁的使用和争抢会成为制约性能的重要因素。原创 2022-10-24 17:59:45 · 514 阅读 · 0 评论 -
GBase8c内核架构(一)-- 计算层
GBase 8c的跨节点的分布式事务是通过GTM的严格的两阶段提交的跨节点的分布式事务。用来记录事务执行的状态以及数据变化的过程,包括事务提交日志(CLOG)、事务提交序列日志(CSNLOG)以及事务日志(XLOG)。XLOG是数据的redo日志,用于恢复及持久化。GBase8c 系统中,事务执行读流程结合各事务提交的CSN序列号,采用了多版本并发控制机制,实现了元组的读和写互不阻塞。事务系统的中枢,它的实现是一个有限循环状态机,通过接受外部系统的命令并根据当前事务所处的状态决定事务的下一步执行过程。原创 2022-10-24 09:59:05 · 558 阅读 · 1 评论 -
GBase 8c 函数和操作符 - 位串函数和操作符
如果超过180次,需拆分为多个连续连接的字符串,在它们之间再执行连接操作。例如:str1||str2||str3||str4 拆分为 (str1||str2)||(str3||str4)。&,|和#的位串操作数必须等长。描述:位串之间如果不一致进行“或”操作。只是转换为“bit”的意思是转换成bit(1),因此只会转换成整数的最低位。描述:位串之间进行“与”操作。描述:位串之间进行“或”操作。描述:位串之间进行“非”操作。描述:位串之间进行连接。描述:位串进行左移操作。描述:位串进行右移操作。原创 2022-09-30 09:36:25 · 197 阅读 · 0 评论 -
GBase 8c 函数和操作符 - 字符处理函数和操作符 之 U-Z
描述:把字符串转化为大写。返回值类型:varchar。原创 2022-09-30 09:35:39 · 167 阅读 · 0 评论 -
GBase 8c 函数和操作符 - 字符处理函数和操作符 之 O-T
SQL语法兼容A和B的情况下,n选项在GUC参数behavior_compat_options的值包含aformat_regexp_match时,表示 . 能够匹配'\n' 字符,flags中没有指定n时,默认不能匹配'\n'字符;SQL语法兼容A和B的情况下,n选项在GUC参数behavior_compat_options值包含aformat_regexp_match时,表示 . 能够匹配 '\n' 字符,flags中没有指定n时,默认.不能匹配 '\n' 字符;匹配这两个标记之间的模式的文本将被返回。原创 2022-09-30 09:34:54 · 1005 阅读 · 0 评论 -
GBase 8c 函数和操作符 - 字符处理函数和操作符 之 H-N
描述:以sort_method指定的排序方式返回字符串在该排序模式下的编码值,该编 码值可用于排序,其决定了string在这种排序模式下的先后位置。描述:从字符串string的position(缺省时为1)所指的位置开始查找并返回第occurrence(缺省时为1)次出现子串substring的位置的值。描述:在string的左侧添上一系列的repeat_string(缺省为空白)来组成一个总长度为n的新字符串。描述:将字符串中的每个单词的首字母转化为大写,其他字母转化为小写。原创 2022-09-30 09:33:27 · 238 阅读 · 0 评论 -
GBase 8c 函数和操作符 - 字符处理函数和操作符 之 A-G
GBase 8c目前支持多种类型的数据库,目前有4种,分别是A类型,B类型,C类型以PG类型。所以,当使用A类型的数据库时,假如上述字符操作函数中有空字符串作为参数,会出现没有输出的情况。GBase 8c提供的字符处理函数和操作符,主要用于字符串与字符串、字符串与非字符串之间的连接,以及字符串的模式匹配操作。这是因为内核在调用相应的函数进行处理前,会判断所输入的参数中是否含有NULL,假如有,则不会调用相应的函数,因此会没有输出。因此,对于多字节编码的字符集,LENGTHB函数返回的长度可能大于n。原创 2022-09-30 09:32:24 · 360 阅读 · 0 评论 -
GBase 8c 数据类型-账本数据库使用的数据类型
HASH32数据类型用来在账本数据库中存储全局hash摘要或者历史表校验hash,在获 得长度为32个字符串的十六进制字符串的hash序列后,系统将调用hash32in函数将该 序列转换到一个包含16个无符号整形元素的数组中。HASH16数据类型用来在账本数据库中存储行级或表级hash摘要,在获得长度为16个字符串的十六进制字符串的hash序列后,系统将调用hash16in函数将该序列转换为一个无符号64位整数存储进HASH16类型变量中。以包含16个的无符号整形元素数的组存储。以无符号64位整数存储。原创 2022-09-30 09:30:05 · 112 阅读 · 0 评论 -
GBase 8c 函数和操作符-比较操作符
比较操作符可以用于所有相关的数据类型。所有比较操作符都是双目操作符,返回布尔类型数值。当输入的数据不同且无法隐式转换时,比较操作将会失败。例如,1原创 2022-09-30 09:29:08 · 227 阅读 · 0 评论 -
GBase 8c 函数和操作符-逻辑操作符
常用的逻辑操作符有AND、OR和NOT。运算结果可能为:TRUE、FALSE和NULL,其中NULL代表未知。运算优先级顺序为:NOT>AND>OR。运算规则参见表,表中的a和b代表逻辑表达式。操作符AND和OR具有交换性,即交换左右两个操作数,不影响其结果。原创 2022-09-30 09:28:06 · 191 阅读 · 0 评论 -
GBase 8c 开发接口
GBase 8c 接口驱动可以有效实现对上层应用请求的负载进行均衡,应用调用接口驱动配置多个集群节点的 IP,接口驱动的内部进行连接的负载均衡。原创 2022-09-05 10:23:49 · 263 阅读 · 0 评论 -
GBase 8c 安全特性
GBase 8c 具有独立的审计系统,它能定义相关的审计事件,记录用户的相关操作,并能记录用户标识、身份鉴别等的审计数据,能进行相关的审计分析并自动报警,并支持对审计数据进行查阅。为便于独立审计,保证更高的系统安全性,GBase 8c 设有专门的安全审计员进行审计管理,安全审计员可利用专门的审计操作界面对审计事件作选择,查阅有关审计数据,处理报警信息。GBase 8c 支持库、表等不同数据粒度的存储加密,不同数据对象可采用不同的加密密钥,如一表一密,可有效防止单点突破,保证更高的数据安全性。原创 2022-08-25 15:32:26 · 1407 阅读 · 0 评论 -
GBase 8c分布式查询方法
协调器管理和客户端的连接,对客户端发来的SQL进行解析,生产执行计划,把执行计划发到相应的数据节点进行读写操作,并将结果汇总返回给客户端。对于涉及跨 DN 的数据写操作,协调者还负责协调所有参与者进行两阶段提交。数据节点是数据实际存放的节点,保存表和索引等数据库对象。数据节点接收协调器下发的读写操作,并将结果返回给协调者处理。数据节点间也可以通信,进行跨数据节点的联合查询。全局事务管理器管理全局事务号和活动事务状态,确保系统的全局一致性。原创 2022-08-25 14:24:21 · 316 阅读 · 0 评论 -
GBase 8c基础操作
GBase 8c 是一款多模多态的分布式数据库,支持行存、列存、内存等多种存储模式和 单机、主备式、分布式等多种部署形态。GBase 8c 具备高性能、高可用、弹性伸缩、高安全性等特性,可以部署在物理机、虚拟机、容器、私有云和公有云。...原创 2022-08-15 11:32:47 · 911 阅读 · 0 评论