Skip to content

Latest commit

 

History

History
138 lines (104 loc) · 4.03 KB

introduction.md

File metadata and controls

138 lines (104 loc) · 4.03 KB

数据库系统概述

数据库系统发展简史

  • 1980 年代:商业 RDBMS
  • 1990 年代:开源 RDBMS
  • 2000 互联网
    • 谷歌三驾马车开启大数据时代
      • GFS
      • Bigtable
      • Mapreduce
    • NoSQL
      • Hadoop
      • Redis
      • MongoDB
  • 2010 移动互联网:NewSQL(集成分布式技术 + 关系模型)
    • Spanner
    • TiDB
  • 2020 云计算时代:HTAP
    • TiDB

数据库技术发展内在驱动

业务发展

  • 数据存储量
  • 吞吐量
  • 读写 QPS

数据(容量)架构演进

  • 单节点
  • 共享状态 (Scale up)
  • 分布式 (Scale out)

场景创新

  • 查询语言
  • 计算模型
  • 数据模型
  • 读写延时

数据模型与交互效率的演进

  • 标准 SQL 语言
    • 支持 ACID 事务 (OLTP, On-Line Transaction Processing)
    • 结构化存储
  • NoSQL (Not Only SQL)
    • 非结构化数据
      • Key-value
      • 文本
      • 时序数据
      • 地理信息
    • 缺点:不支持事务
  • NewSQL
    • 兼容数据模型的可扩展需求
    • 支持 ACID 事务
  • HTAP (HybridTransactional/Analytical Processing)

硬件与云计算的发展

  • 读写分离
  • 一体机
  • 云原生

分布式数据库的发展

分布式技术发展的内在原因

  • 内在原因:如果一个系统需承载的计算量增长速度大于摩尔定律的预测,集中式系统将无法承载这个系统所需的计算量。
  • 经济原因:使用相对廉价的机器组合形成的分布式系统,除了可以获得超过 CPU 发展速度的性能外,还可以按需弹性伸缩。

分布式系统的历史

2006 年,谷歌推出了大数据三驾马车:

  • GFS (Google File System): 解决了分布式文件系统问题;
  • Google Bigtable: 解决了分布式 Key-Value 存储的问题;
  • Google MapReduce: 解决了分布式文件系统和分布式 KV 存储上进行分布式计算和分析的问题。

分布式系统

主要挑战

  1. 如何最大程度地实现分治
  2. 如何实现全局一致性
  3. 如何进行部分故障与失效的容错
  4. 如何应对不可靠的网络和网络分区

技术模型经典理论 CAP

分布式系统的不可能三角:

  • 一致性 Consistency(强调各个数据副本的一致性)
  • 可用性 Availability
  • 分区容忍性 Partition Tolerance

关系型模型与事务

事务具有 ACID 特性:

  • Atomicity 原子性:事务包含的全部操作是一个不可分割的整体
  • Consistency 一致性:事务的前后所有相关数据状态一致(强调事务的一致性)
  • Isolation 隔离性:用来规定多个事务访问同一个数据资源时对该数据资源的操作行为
  • Durability 持久性:事务一旦完成,数据的变更需要记录下来

NewSQL

NewSQL 定义

NewSQL 是一类关系数据库,它寻求为在线交易处理 (OLTP, OnLine Transaction Processing) 工作提供 NoSQL 系统的可扩展性,同时维护传统数据库系统的 ACID 保证。即:

分布式系统 + SQL + 事务 = 原生分布式关系型数据库

NewSQL 解决的问题