1. 单机存储:单个计算机节点上的存储软件系统,一般不涉及网络交互
(1) 本地文件系统‘:Linux文件系统的两大数据结构:Index Node和Directory Entry
Index Node:记录文件元数据,inode是文件的唯一标识
Directory Entry:记录文件名,inode指针等,dentry是内存结构,与inode是N:1的光系
(2) Key-value存储:常见使用方式:put(k,v)&get(k);常见数据结构:LSM-Tree
2. 分布式存储:在单机存储基础上实现分布式协议,涉及大量网络交互
(1) HDFS:大数据时代基石。
特点:支持海量数据存储;高容错性;弱POSIX语义;使用普通x86服务器,性价比高。
(2) Ceph:特点一套系统支持对象接口、块接口、文件接口,一切皆数据;数据写入采用主备复制模型;数据分布模型采用CRUSH算法
3. 单机数据库:单个计算机节点上的数据库系统
(1) 关系型数据库:商业产品:Oracle,开源产品:MySQL&PostgreSQL
(2) 非关系型数据库:MongoDB,Redis,Elasticsearch
Elasticsearch:面向文档存储,文档可序列化JSON,支持嵌套,依赖Lucene引擎等
Redis:数据结构丰富,C语言实现,超高性能等
MongoDB:面向文档,文档可序列化JSON,依赖wiredTiger引擎,支持事务等
4. 分布式数据库
(1) 解决容量问题:存储节点池化,动态扩容缩容
(2) 解决弹性问题
(3) 解决性价比问题:灵活扩缩,减少成本
5. 新技术演进:软件架构变更,Al增强,新硬件革命
(1) 软件架构变更:SPDK
(2) AL增强:Machine Learning
(3) 高性能硬件:RDMA网络;Persistent Memory;可编程交换机;CPU/GPU/DPU