【云原生数据库:原理与实践】1- 数据库发展历程

1-数据库发展历程

1.1 数据库发展概述

从1960年:Integrated Database System(IDS),该系统是一个网状模型(Network Model)到 IMS(Information Management System),使用了层次模型(Hierarchical Model)支持事务处理。

再到IBM的E.F.Codd提出:A Relational Model of Data for Large Shared Data Banks 中 提 出 了 关 系 模 型(Relational Model),Michael Stonebraker 开 发 出PG的前身INGRES(Interactive Graphics and Retrieval System),后续便是DB2 Oracle...

1.1.4 云原生与分布式时代

随着业务处理规模增加,一种方法是垂直扩展(Scale up),提升数据库各个组件的容量,使用更好的硬件,比如小型机、高端存储,如著名的"IOE"解决方案,数据库系统架构使用多个计算节点共享一份存储,称为Shared-Storage架构

另一种方法是水平扩展(Scale out),还是保持原来单个数据库实例的容量不变,用更多的数据库节点组合为一个无共享(Shared-Nothing)分布式系统来解决问题,每个节点根据分布规则(Sharding Rule)存储一部分数据(Shard),处理一部分请求。

然后就是Google三驾马车,GFS、BigTable、MapReduce。

在处理频繁变化的业务和一些专用的特殊结构时殊为不便。一些使用更灵活的数据模型定义(Schemaless)或特殊的数据模型的数据库出现了,统称为NoSQL系统。NoSQL数据库主要包括键值(KeyValue,KV)数据库、文(Document)数据库、图(Graph)数据库三大类。键值数据库的代表为Redis、HBase和Canssandra;文档数据库的代表为MongoDB;图数据库的代表为Neo4j等。

1.2 数据库技术发展趋势

1.2.1 云原生与分布式

对于云数据库而言,基于资源解耦的高可用性是其基本特征。

面对高并发与大数据处理需求,云数据库应该具备水平扩展与分布式处理能力,包括但不限于负载均衡、分布式事务处理、分布式锁、多租户下的资源隔离与调

度、CPU混合负载和大规模并行处理等。

1.2.2 大数据与数据库一体化

要使云数据库具备大数据处理能力,一方面需要借助云基础设施的快速弹性、分布式并行处理特性,打造强劲的内核引擎,实现计算与存储资源效能的最大化,以可接受的性价比对外输出海量数据分析处理能力。另一方面,需要有与大数据分析处理相配套的生态工具,主要是数据流转迁移工具、数据集成开发工具以及数据资产管理能力。

1.2.3 软硬件一体化

利用异构计算设备GPU加速这些计算操作、还有FPGA、NVM。

网络上 RDMA、InfiniBand等。

1.2.4 多模

图(Graph)、键值(Key-Value)、文档(Document)、时序(Time Series)和时空(Spatial)等,以及图片、流媒体等非结构化数据

1.2.5 智能化运维

1.2.6 安全可信

1.3 关系数据库主要技术原理

  1. 接入管理

主要是ODBC JDBC

  1. 查询引擎

SQL引擎子系统负责将用户发送过来的SQL请求进行解析、语义检查、生成逻辑计划(Logical Plan),经过一系列重写(Rewrite)与优化(Optimize),生成物理计划(Physical Plan),交由计划执行器(Plan Executor)执行

  1. 事务处理

并发控制,根据异常不同等级定义了多个隔离级别(Isolation Level)选项,以严格程度依次增加分为:读未提交(ReadUncommitted)、读已提交(Read Committed)、可重复读(RepeatableRead)和可串行化(Serializable)。

主要的并发控制技术有以下几种:2PL、MVCC、OCC

日志与恢复系统:日志系统是数据库存储引擎中的核心部分,主要功能是保证已提交事务中的持久性(D),使得数据库在崩溃后仍然能将之前已提交的事务恢复过来,并且确保回滚中止执行的事务的原子性(A)。目前主要是根据ARIES论文的日志机制进行设计。

  1. 存储引擎

数据组织和索引管理:行列存储以及混合存储

缓冲区管理等。

相关推荐
一只栖枝几秒前
Oracle OCP知识点详解2:管理用户密码期限
数据库·oracle·开闭原则·ocp
PingCAP2 分钟前
TiDB 亮相宜昌“医院‘云数智’技术实践研讨及成果展示交流会”,探讨国产化 + AI 背景下的数据库新趋势
数据库·人工智能·tidb
java技术小馆9 分钟前
Zookeeper中的Zxid是如何设计的
java·分布式·zookeeper·云原生
努力的小Qin10 分钟前
银河麒麟V10 aarch64架构安装mysql教程
数据库·mysql·架构
lswzw19 分钟前
istio 灰度实验
云原生·istio
云心雨禅20 分钟前
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
数据库·sql·oracle
vivo互联网技术1 小时前
活动中台系统慢 SQL 治理实践
java·数据库·后端
爱可生开源社区1 小时前
当测试工具开始「思考」,是工具还是「同事」?
数据库
haven-8521 小时前
duckdb不支持向量
数据库·oracle
崖山数据库系统YashanDB1 小时前
YashanDB hint语法
数据库