编辑
2024-04-09
数据库
00
请注意,本文编写于 227 天前,最后修改于 227 天前,其中某些信息可能已经过时。

目录

简介
四大组件模块
数据节点
计算节点
管理节点
全局事物管理器
四种分发策略
Hash分发
Duplicate分发
Range分发
List分发
数据类型
函数功能

简介

GoldenDB是一个面向分布式环境的一个高可用性数据库,适用于需要高性能、高可靠性和一致性的数据存储场景。

整体由计算节点、数据节点、全局事务管理器、管理节点四种核心模块组成。完全兼容MySQL语法,大部分兼容Oracle语法

详细文档:https://www.goldendb.com/#/docsIndex/docs


四大组件模块

整体由计算节点、数据节点、全局事务管理器、管理节点四种核心模块组成:

image-20240409160601030


数据节点

是用于存储业务数据,及执行分布式子事务的节点。每个数据节点都是独立自治的数据库系统,一个业务的数据只会落到一个数据集群中。

img


计算节点

它主要是接受应用发过来的业务语句,对业务语句做语法解析,根据数据的分布信息做分布式的优化。同时还有个最重要的功能就是进行分布式事物的并发控制。

img


管理节点

是对系统计算节点集群、数据集群管理的节点,它承载了分布式数据库系统的所有的运维操作,包括集群高可用高可靠的管理、系统的备份恢复、系统元数据管理、数据迁移等操作。

img


全局事物管理器

他是协调计算节点一起进行分布式事物的并发控制的,管理分布式事物的生命周期。负责维护一张当前所有正在执行的分布式事物列表。

img


四种分发策略

依据分发策略,分布式数据库GlodenDB将数据存储在不同数据节点上。依据相应字段值可确定数据具体落在哪个分片的字段成为分片键

支持的分发策略

  • Hash分发:字段进行Hash计算得到的值落入对应的分片
  • Duplicate分发:插入的数据都会落入所有分片
  • Range分发:根据插入数据的大小计算,落入不同的分片
  • List分发:以编码形式,当数据编码为指定的值时,落入对应的分片

Hash分发

创建一个名为Hash_t1表数据分布在2分片t2,t3上的Hash表:

sql
create table Hash_t1( id int primary key, name varchar(10), sex varchar(1), salary decimal(10,2) )Distributed by Hash(id) (t2,t3);

字段说明:

字段说明
Hash(id)该表的分发策略为Hash分发
id 字段分发键

Duplicate分发

创建一个名为Duplicate_t1的表,表数据全量分布在2分片t2,t3的Duplicate:

sql
create table Duplicate_t1( id int primary key, name varchar(10), sex varchar(1), salary decimal(10,2) )Distributed by Duplicate(id) (t2,t3);

字段说明:

字段说明
Duplicate(id)该表的分发策略为Duplicate分发

### Range分发

创建一个名为Range_t1的表

sql
create table Range_t1( id int primary key, name varchar(10), sex varchar(1), salary decimal(10,2) )Distributed by Range(id)(t2 values less than (15000),t3 values less than MAXVALUE);

字段说明:

字段说明
Range(id)该表的分发策略为Range分发
(t2 values less than (15000),t3 values less than MAXVALUE)分发键值<15000,则数据插入t2
分发键值>=15000,则数据插入t3

List分发

创建一个名为List_t1的表:

sql
create table List_t1( id int primary key, name varchar(10), sex varchar(1), salary decimal(10,2) )Distributed by List(sex) (t2 values in ('男'),t3 values in ('女'));

字段说明:

字段说明
List(sex)该表的分发策略为List分发
(t2 values in ('男'),t3 values in ('女'))分发键值为“男”,则数据插入t2
分发键值为“女”,则数据插入t3

数据类型

sql
数字类型: int integer smallint tinyint mediumint bigint decimal numeric float double 字符类型: char varchar 日期类型: date timestamp datetime time year 大对象类型: text blob

函数功能

sql
控制流函数:case when、if(expr1,expr2,expr3)、ifnull(expr1,expr2)等 字符串函数:char_length coalesce concat convert in instr length lower replace rtrim 等字符串处理和比较函数 数学函数:abs avg ceil/ceiling char floor in 日期和时间函数:date date_add date_format date_sub datediff day dayname dayofmonth dayofweek 等 转换函数:cast convert 等转换函数

//内容参考金篆信科GoldenDB官网文档

本文作者:春天y

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!