存储与数据库 | 青训营笔记

80 阅读4分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第14天。

存储与数据库

经典案例

一条数据从产生,到数据流动,最后持久化的全生命周期。

数据库的流动:用户注册的数据发送到后端服务器然后存储到数据库之中,由其他系统从数据库中调用对应内容。

数据持久化:首先校验数据的合法性,然后进行内存修改,用搞笑的数据结构组织数据,然后以寿命与性能有好的方式写入硬件。

存储与数据库简介

概念

一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,可以称为存储系统。

存储系统的系统特点:作为后端软件的底座,首先是性能敏感,然后存储系统软件架构,容易受到硬件影响,存储系统代码,是既“简单”又“复杂”的。

存储系统-RAID技术

单机存储系统实现高性能、高性价比、高可靠性的方法: Redundant Array of Inexpensive Disk

RAID出现的背景:

单块大容量磁盘价格>多块小容量磁盘

单块磁盘的写入性能<多块磁盘的并发写入性能

单块磁盘的容错能力有限,不够安全。

级别: RAID 0:

多块磁盘的简单组合;
    
数据条带化存储,提高磁盘带宽;
    
没有额外的容错设计;

RAID 1:

    一块硬盘对应一块额外镜像盘
    
真实空间利用率仅为50%
    
容错能力很强

RAID 0+1:

结合了RAID 0和RAID 1
    
真实的空间利用率只有50%
    
容错能力很强,写入带宽高
    
关系型数据库与存储系统的区别

关系型数据库是存储系统,但是在存储之外,又展现出了其他的能力。

非关系型数据库也是存储系统,但是一般都不要求严格的结构化。

事务具有ACID属性:

  • Atomicity:事务内的操作要么全做,要么不做。
  • Consistency:事务执行前后,数据状态是一致的。
  • Isolation:可以隔离多个并发的事务,避免影响。
  • Durability:事务一旦提交成功,数据要保证持久性。

主流系统刨析

单机存储:

单机存储=单个计算机节点上的存储软件系统,一般不涉及网络交互。

实例:本地文件系统

文件系统的管理单元:文件

文件系统接口:文件系统繁多,如Ext2/3/4,sysfs,rootfs等,但是都遵循VFS的统一抽象接口。

分布式存储:

分布式存储=在单机存储基础上实现了分布式协议,涉及到大量的网络交互。

实例:HDFS

HDFS堪称大数据时代的基石。

HDFS的核心特点为:支持海量的数据存储;有高容错性;弱POSIX语义;使用普通X86服务器,性价比很高。

单机数据库是单个计算机节点上的数据库系统,事务在单机内执行,也可以通过网络交互实现分布式事务。

单机关系型数据库

Oracle、MySQL、PostgreSQL

关系型数据库的通用组件:

  • Query Engine:负责解析query,生成查询计划。
  • Txn Manager:负责事务并发管理。
  • Lock Manager:负责锁相关的策略。
  • Storage Engine:负责组织内存/磁盘数据结构。
  • Replication:负责主备同步操作。

单机非关系型数据库

非关系型数据库中有:

MongoDB、Redis、Elasticsearch

关系型数据库一般直接使用SQL交互,非关系型数据库的交互方式各不相同。

非关系型数据库的数据结构千奇百怪,没有关系约束后,schema相对灵活。

不管是否是关系型数据库,大家都在尝试支持SQL和“事务“。

分布式数据库

分布式数据库主要是解决单机数据库的容量问题、解决弹性问题、解决性价比问题

分布式数据库:More to Do

新技术演进

新技术演进包括:软件架构变更、AI增强、新硬件革命

软件架构变更:Bypass OS kernel

AI增强:智能存储格式转换

新硬件革命:存储介质变更;计算单元变更;网络硬件变更