自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Gauss松鼠会

汇集数据库的爱好者和关注者,大家共同学习、探索、分享数据库前沿知识和技术,像松鼠一样剥开科学的坚果;交流GaussDB、openGauss及其他数据库的使用心得和经验,互助解决问题,共建Database技术交流圈。

  • 博客(28)
  • 资源 (12)
  • 收藏
  • 关注

原创 openGauss数据库源码解析系列文章——公共组件源码解析(下)

上一篇openGauss数据库源码解析系列文章——公共组件源码解析(上)中,从系统表、数据库初始化、多线程架构及线程池技术四个方面对公共组件的源代码实现进行介绍。本篇接着从内存管理、多维监控、模拟信号机制展开介绍。五、内存管理数据库在运行过程中涉及许多对象,这些对象具有不同的生命周期,有些处理需要频繁分配内存。如一个SQL语句,在解析时需要对词法单元和语法单元分配内存,在执行过程中需要对执行状态分配内存。在事务结束时,如果不是prepare语句,那么SQL语句的执行计划内存和执行过程的状态内存都需要释放

2021-04-27 10:34:11 3137 13

原创 openGauss数据库源码解析系列文章——公共组件源码解析(上)

在数据库组件中,一些组件是专用的,如词法解析只用于SQL引擎;而另外一些组件是公共的,用于整个数据库系统。openGauss的公共组件包括系统表、数据库初始化、多线程架构、线程池、内存管理、多维监控和模拟信号机制等。每个组件实现了一个独立的功能。本篇将从系统表、数据库初始化、多线程架构及线程池技术四个方面对公共组件的源代码实现进行介绍。一、系统表系统表又称为数据字典或者元数据,存储管理数据库对象的定义信息,如表、索引、触发器等。用户可通过系统表查询用户定义的具体对象信息,如表的每个字段类型。因为open

2021-04-27 10:05:33 3811 13

原创 openGauss数据库源码解析系列文章——openGauss开发快速入门(三)

在openGauss数据库源码解析系列文章——openGauss开发快速入门(中),介绍了openGauss基本使用,本篇将从openGauss的开发和编译、参与openGauss社区开源项目两方面展开具体介绍。三、 开发和编译作为openGauss数据库开发者,在基于openGauss开源产品进行二次开发后,往往需要编译openGauss对所开发的功能的实现情况进行验证。本篇向读者简要介绍openGauss的编译方法,详细的内容参见openGauss官网(https://opengauss.org/z

2021-04-26 17:18:59 4390 6

原创 openGauss数据库源码解析系列文章——openGauss开发快速入门(二)

在上一篇openGauss数据库源码解析系列文章——openGauss开发快速入门(上)中,我们介绍了openGauss的安装部署方法,本篇将具体介绍openGauss基本使用。二、 openGauss基本使用openGauss安装完成后会自动启动,用户可以使用openGauss自带的gsql(openGauss交互终端)客户端连接数据库进行相关SQL操作。(一) 连接数据库本篇为您介绍如何使用gsql客户端连接数据库。gsql是openGauss自带的客户端工具。使用gsql连接数据库,可以交互

2021-04-26 15:39:12 3255 11

原创 openGauss数据库源码解析系列文章——openGauss开发快速入门(一)

作为openGauss数据库开发者,在基于开源社区的openGauss版本进行二次开发的过程中,需要完成软件包获取、源码了解、代码修改、编译发布等过程,同时还需要安装数据库以了解数据库的基本特点、验证开发的功能实现情况,本篇将简要介绍openGauss的安装部署方法。一、 安装部署作为openGauss数据库开发者,除了基于openGauss开源产品进行二次开发外,往往也需要了解openGauss的特点和使用方法,同时验证所开发的功能的实现情况。本篇向读者简要介绍openGauss的安装部署方法,详细的

2021-04-26 15:24:13 4238 14

原创 openGauss数据库源码解析系列文章——openGauss简介(三)

五、价值特性openGauss相比其它开源数据库主要有复合应用场景、高性能和高可用等产品特点。(一)高性能1. CBO优化器openGauss优化器是典型的基于代价的优化(Cost-Based Optimization,简称CBO)。在这种优化器模型下,数据库根据表的元组数、字段宽度、NULL记录比率、唯一值(Distinct Value)、最常见值(Most Common Value, 简称MCV)等表的特征值以及一定的代价计算模型,计算出每一个执行步骤的不同执行方式的输出元组数和执行代价(cos

2021-04-26 14:40:57 4193 4

原创 openGauss数据库源码解析系列文章——openGauss简介(二)

上一篇openGauss数据库源码解析系列文章–openGauss简介(上)中,从openGauss概述、应用场景、系统结构、代码结构四个方面对openGauss进行了初步介绍。其中,openGauss的代码结构介绍了数据库系统通信管理、SQL引擎两方面内容,本篇接着从代码结构第三方面的内容——存储引擎,以及openGauss的价值特性方面展开介绍。(三)存储引擎openGauss存储引擎是可插拔、自组装的,支持多个存储引擎来满足不同场景的业务诉求,目前支持行存储引擎、列存储引擎和内存引擎。早期计算机

2021-04-26 14:39:06 3943 3

原创 openGauss数据库源码解析系列文章--openGauss简介(一)

openGauss数据库是华为深度融合在数据库领域多年经验,结合企业级场景要求推出的新一代企业级开源数据库。此前,Gauss松鼠会已经发布了openGauss数据库核心技术系列文章,介绍了openGauss的技术原理。从本期开始,Gauss松鼠会将陆续推出openGauss数据库源码解析系列文章,带你解析openGauss各功能模块的源代码逻辑和实现原理。该系列文章主要面向openGauss内核开发者及研究人员。接下来会先向大家概要介绍openGauss。本篇将从openGauss概述、应用场景、系统结构

2021-04-25 16:26:45 9975 6

原创 openGauss安全(下)

上篇内容从openGauss安全机制概览、openGauss安全认证、openGauss角色管理机制等方面介绍了openGauss安全(上)中的内容,本篇将围绕openGauss审计与追踪、openGauss数据安全技术、openGauss云安全技术、openGauss智能安全机制对openGauss安全的其他方面进行介绍。四、openGauss审计与追踪openGauss在部署完成后,实际上会有多个用户参与数据管理。除了管理员用户外,更多的是创建的普通用户直接进行数据管理。用户的多样性会导致数据库存在

2021-04-25 14:35:32 3548 3

原创 openGauss安全(上)

随着数字化技术的飞速发展,数字、连接、信号、人工智能充斥着人们工作、生活的各个领域。这些数字化信息被快速转换成数据并存放在各式各样的数据库系统中,而且通过进一步的数据管理与分析产生商业价值。这些有价值的数据或被存放在企业相对封闭的私有网络内,或被存放在相对开放的公有云环境下,又或是集成在智能系统中。人们在享受由数字化发展所带来的便捷生活的同时,也可能面临着无处不在的隐私泄露、信息篡改、数据丢失等安全风险。数据库安全作为数据库系统的护城河,通过访问登录认证、用户权限管理、审计与监视、数据隐私保护以及安全信道

2021-04-25 11:04:31 2947 3

原创 openGauss事务机制(下)

openGauss并发控制在openGauss事务机制(上)的介绍中,已经了解当数据库中存在并发执行事务的情况下,要保证ACID特性,需要一些特殊的机制来支持。并发控制就是这样的一种控制机制,能够保证并发事务同时访问同一个对象或数据下的 ACID特性。openGauss并发控制是十分高效的,其核心是 MVCC和快照机制。如openGauss事务机制(上)所述,通过使用 MVCC和快照,可以有效解决读写冲突,使得并发的读事务和写事务工作在同一条元组的不同版 本上,彼 此不会相互阻塞。对于并发的两个写事务,

2021-04-23 16:42:29 2720 4

原创 openGauss事务机制(上)

事务是为用户提供的最核心、最具吸引力的数据库功能之一。简单地说,事务是用户定义的一系列数据库操作(如查询、插入、修改或删除等)的集合,从数据库内部保证了该操作集合(作为一个整体)的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),这些特性统称事务的 ACID特性。其中:A:原子性是指事务中的所有操作要么全部执行成功,要么全部执行失败。一个事务执行以后,数据库只可能处于上述两种状态之一,即使数据库在这些操作执行过程中发生故障,也

2021-04-23 16:23:48 3559 4

原创 openGauss存储技术(二)——列存储引擎和内存引擎

上一篇内容我们介绍了openGauss存储技术(一)——行存储引擎,本文重点介绍openGauss列存储引擎和内存引擎。openGauss列存储引擎传统行存储数据压缩率低,必须按行读取,即使读取一列也必须读取整行。在分析性的作业以及业务负载的情况下,数据库往往会遇到针对大量表的复杂查询,而这种复杂查询中往往仅涉及一个较宽(表列数较多)的表中个别列。此类场景下,行存储以行作为操作单位,会引入与业务目标数据无关的数据列的读取与缓存,造成了大量IO 的浪费,性能较差。因此openGauss提供了列存储引擎的相

2021-04-22 20:48:33 5265 3

原创 openGauss存储技术(一)——行存储引擎

OLTP(联机事务处理)系统以高并发读写为主,数据实时性要求非常高,数据以行的形式组织,最适合面向外存设计的行存储引擎。随着内存逐渐变大,服务器上万亿字节(TB)大小的内存已经很常见,内存引擎面向大内存而设计,提高系统的吞吐量和降低业务时延。OLAP(联机分析处理)系统主要面向大数据量分析场景,对数据存储效率、复杂计算效率的要求非常高。列存储引擎可以提供很高的压缩比,同时面向列的计算,CPU 指令高速缓存和数据高速缓存的命中率比较高,计算性能比较好,按需读取列数据,大大减少不必要的磁盘读取,非常适合数据分析

2021-04-22 15:26:44 5445 4

原创 openGauss执行器技术

执行器在数据库的整个体系结构中起承上(优化器)启下(存储)的作用。本文首先介绍执行器的基本框架,然后引申介绍执行引擎中的一些关键技术。通过本文的阅读,读者能对执行器有个基本的认识。一、 openGauss执行器概述从客户端发出一条SQL语句到结果返回给客户端的整体执行流程如图1所示,从中可以看到执行器所处的位置。图1 客户端发出SQL语句的执行流程示意图如果把数据库看成一个组织,优化器位于组织的最上层,是这个组织的首脑,是发号施令下达指令的机构,执行器位于组织的中间,听从优化器的指挥,严格执行优化

2021-04-21 14:44:17 3118 3

原创 openGauss SQL引擎(下)——查询优化

上一篇openGauss SQL引擎 (上)中我们介绍了SQL引擎概览、SQL解析以及查询优化器的优势和优化技术的分类,本文将详细介绍查询优化的相关内容。(一)查询重写查询重写利用已有语句特征和关系代数运算来生成更高效的等价语句,在数据库优化器中扮演关键角色,尤其在复杂查询中,能够在性能上带来数量级的提升,可谓是“立竿见影”的“黑科技”。下面介绍查询重写的基本概念、常见的查询重写技术、查询重写面临的挑战等内容。1.查询重写的概念SQL是丰富多样的,应用非常灵活,不同的开发人员依据不同的经验,编写的S

2021-04-19 15:37:55 3143 3

原创 openGauss SQL引擎 (上)

数据库的SQL引擎是数据库重要的子系统之一,它对上负责承接应用程序发送的SQL语句,对下负责指挥执行器运行执行计划。其中优化器作为SQL引擎中最重要、最复杂的模块,被称为数据库的“大脑”,优化器产生的执行计划的优劣直接决定数据库的性能。本文从SQL语句开始介绍,对SQL引擎的各个模块进行全面的说明。一、 SQL引擎概览SQL引擎是数据库系统的重要组成部分,主要职责是将应用程序输入的SQL语句在当前负载场景下生成高效的执行计划,在SQL语句的高效执行上扮演重要角色。SQL语句在SQL引擎中的执行过程如

2021-04-19 10:16:10 3236 3

原创 面向鲲鹏和昇腾的创新架构

面向鲲鹏的创新架构华为的鲲鹏920处理器以及后续的处理器系列,与传统的英特尔 x86处理器相比,存在以下3方面的不同:具有更多计算核心,使得可以并行运行的算力大幅增加。具有更加显著的 NUMA 特性,将导致并行处理线程间同步代价的提高。处理器内部、跨处理器之间的核间通信能力(鲲鹏处理器提供 POE,Packet OrderEnforcement能力,实现核间通信消息包的保序能力),可以提升先前通过内存通信机制的通信效率。为了提升数据库系统对处理器的有效利用率,保证数据库系统提供的面向客户的 S

2021-04-19 09:37:38 2272 3

原创 GaussDB架构(下)

GaussDB云数据库架构云数据库系统的主要目的是提供数据库系统服务的基础设施,以实现对计算机资源的共享。本文所讲述的GaussDB云数据库架构设计的内容,目前处于研发阶段,对应产品尚未向客户发布。1.设计思想与目标客户从数据存放的位置来看,云数据库系统可以分成三大类:公有云数据库系统服务: 该类数据库系统服务主要面向中小型企业的数据库需求。针对中小型企业提供公有云数据库系统服务,可以大幅降低这类公司的运营成本,比如构建数据中心或者机房、构建服务器、运维服务器、运维数据库系统的成本等,同时也使得这

2021-04-16 09:32:02 3431 3

原创 GaussDB架构(中)

在GaussDB架构(上)中我们介绍了GaussDB的发展历史和架构概览,本篇主要介绍GaussDB OLTP数据库架构和GaussDB OLAP数据库架构。GaussDB OLTP数据库架构。OLTP是传统的关系数据库的主要应用,包括基本的增加、删除、修改、查询事务处理,例如银行交易。1. 设计思想与目标客户OLTP业务场景主要分为两大类:一类是金融银行业务场景,一类是互联网业务场景。但应用OLTP业务要满足5个重要的需求:故障业务中断时间,RTO(Recovery Time Objectiv

2021-04-15 21:05:48 2929 3

原创 GaussDB架构(上)

GaussDB是华为公司数据库产品品牌名。华为公司从开始自研数据库至今已经有近20年历史,其中经历了早期发展、GaussDB的诞生和发展、数据库产业化三个阶段。本文简明介绍华为公司自研数据库的历程,并给出一些GaussDB的里程碑时间点。GaussDB的发展历史是中国数据库发展历程的典型案例。GaussDB以云服务形式提供商业版本,并已在2020年中期推出开源数据库产品openGauss(社区网址为https://opengauss.org )。一、GaussDB发展历史本节首先概要介绍华为自研数据库的

2021-04-15 20:47:56 3348 2

原创 数据库未来发展趋势(下)

新应用驱动的数据库(5G、车、终端云)从数据库诞生开始,新的应用领域就不断为数据库带来新诉求,例如巨大的数据量、更短的数据处理时间、更高的可靠性、新的数据类型,而数据库也在满足这些新的诉求的同时得到不断的发展与更新。一、 及其相关应用对数据库系统带来的挑战与机遇从历史上看,通信技术对数据库发展起到了至关重要的作用:1980—1990年,TCP/IP网络协议出现,大中型企业内部开始规模部署局域网,甚至通过卫星技术将地域上分散的局域网互联互通,这推动了企业IT系统从主机时代走向客户端/服务端(Clie

2021-04-14 09:54:47 2472 4

原创 数据库未来发展趋势(上)

数据库是IT技术栈中承上启下的关键一层,具有如下特性:向上承托应用开发与运行,是应用生态关键组成之一。向下对接硬件和OS,对数据处理应用屏蔽底层硬件复杂性和兼容性。数据库系统是IT技术栈中的独立“小王国”,被誉为“软件行业皇冠上的明珠”。它内含了几乎所有的基础软件关键技术,是软件集大成者: OS(进线程调度和内存分配管理)、编程语言(SQL)、编译器(SQL编译和编译执行)、大规模并行计算(分布式SQL执行)、优化技术(优化器)等。数据库是数学理论和软件工程的结晶,其中蕴含了两个NP-Hard的世

2021-04-14 09:47:23 2732 4

原创 数据库发展史(下)

本篇文章为大家讲解AI原生数据库和其他类型数据库的发展历程。AI原生数据库近年来,随着AI(人工智能)技术的成熟和发展,AI与数据库的结合越来越紧密。为了提高数据库系统的智能化程度,使数据库系统能够更加智能地运行、维护、管理,不断有研究者采用人工智能方法来解决数据库管理、优化等问题。2019年初,谷歌联合麻省理工学院、布朗大学的研究人员共同推出了新型数据库系统SageDB,并撰写了一篇论文详述SageDB的设计原理和性能表现。论文中提出学习模型可以渗透到数据库系统的各个方面,提供了一种构建数据库系统的

2021-04-12 14:31:52 2602 21

原创 数据库发展史(中)

在《数据库发展史(上)》中,为大家介绍了网状数据库和层次数据库、关系数据库、分布式数据库、云数据库的发展史。本篇文章为大家介绍NoSQL数据库和NewSQL数据库的发展历程。NoSQL数据库尽管关系数据库系统技术已经相对成熟,能很好地处理表格类型的数据,但对业界出现的越来越多复杂类型的数据(如文本、图像、视频等)无能为力。尤其是步入互联网Web 2.0和移动互联网时代,许多互联网应用有着高并发读写、海量数据处理、数据结构不统一等特点,传统的关系数据库并不能很好地支持这些场景。另一方面,非关系数据库有着高

2021-04-12 14:24:42 1958 16

原创 数据库发展史(上)

数据库技术是信息技术领域的核心技术之一,几乎所有的信息系统都需要使用数据库系统来组织、存储、操纵和管理业务数据。数据库领域也是现代计算机学科的重要分支和研究方向。目前,在数据库领域已经产生了四位图灵奖得主,他们在数据库理论和实践领域均有突出贡献。在数据库诞生之前,数据存储和数据管理已经存在了相当长的时间。当时数据管理主要是通过表格、卡片等方式进行,效率低下,需要大量人员参与,极易出错。20世纪50年代,随着计算机的诞生和成熟,计算机开始运用于数据管理,与此同时,数据管理技术也迅速发展。传统的文件系统难以

2021-04-12 11:12:14 4632 17

原创 openGauss 2.0.0 版本正式发布

3月31日,openGauss 2.0.0 版本正式上线!openGauss 2.0.0 是openGauss社区发布的第一个Release版本。2.0.0版本与之前版本保持兼容的同时,也新增了众多特性,特别是在高性能、高安全和智能化的打造上有了更大的突破。01 鲲鹏NUMA架构优化,实现性能业界领先openGauss2P4P线性度架构优化后150230150%4P鲲鹏性能达到230万tpmC(每分钟处理交易量,被业界广泛用于衡量计算机系统的事务处理能力),满足1.

2021-04-09 17:27:30 3002 2

原创 Gauss松鼠会博客正式上线公告

Gauss松鼠会成立于2016年,以剖析论文的分享方式为主,同时包括前沿技术分享、专家讲座等方式。分享者包括华为公司技术专家/骨干、高校教授/副教授以及其他企业专家。Gauss松鼠会在华为已开展了300多期,获得了很好的反响。随着华为Gauss数据库产品在市场的发行与推广,为了更好的面向国内数据库爱好者建立技术交流圈,特将Gauss松鼠会的开展范围扩大到华为公司外,并建立Gauss松鼠会微信公众号,以此作为Gauss松鼠会的技术分享平台。Gauss松鼠会定位:汇集数据库的爱好者和关注者,大家共同学习、探

2021-04-09 10:46:05 719 4

openGauss 术语表 01.pdf

罗列了openGauss资料中常见的术语

2021-07-31

openGauss 工具参考 01.pdf

介绍连接数据库的客户端工具、openGauss服务器端所提供的命令行管理工具。

2021-07-31

openGauss 安全加固指南 01.pdf

规定了运行于Linux/Unix操作系统之上的openGauss数据库的安全配置规范。

2021-07-31

openGauss 管理员指南 01.pdf

提供了openGauss数据库常用的管理员操作,方便管理员更好地使用openGauss。 本文档适用于所有使用openGauss数据库的管理员。

2021-07-31

openGauss 安装指南 01.pdf

主要介绍openGauss数据库的安装方法,以指导用户顺利完成openGauss数据库安装。

2021-07-31

openGauss 快速入门 01.pdf

行简单的产品介绍和安装指导,支撑用户快速使用数据库,若了解详细特性以及参考类信息需查看具体单本文档。

2021-07-31

openGauss 编译指导书 01.pdf

介绍了openGauss对于操作系统的要求、编译环境的要求、软件依赖、编译方法以及编译结果的存放位置等。

2021-07-31

openGauss 特性描述 01.pdf

对openGauss数据库支持的特性进行了详细描述,包含特性的可获得性、特性简介、客户价值、特性描述、特性增强、特性约束和依赖关系等。

2021-07-31

openGauss 技术白皮书 01.pdf

主要介绍openGauss数据库的架构、能力以及主要技术。

2021-07-31

openGauss 产品描述 01.pdf

对openGauss数据库进行了详细描述,包含产品定位、系统架构介绍、应用场景、运行环境、技术指标、基本功能和特性、企业级增强特性介绍等信息。

2021-07-31

openGauss 发行说明 01.pdf

openGauss 2.0.1版本的发行说明。

2021-07-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除