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

104 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天,今天主要学习了存储和数据库的一些知识,重新回顾了RAID技术和linux文件系统的两个重要数据结构index node 和 directory entry。

存储与数据库

存储

存储:提供了读写、控制类接口,能安全有效数据持久化的软件
特点:性能敏感,易受硬件影响
数据到存储介质:缓存很重要,要用好;拷贝很昂贵,要减少。

RAID技术

全名:廉价冗余磁盘阵列
RAID0:最优读写性能,不提供数据冗余,至少需要两块盘
RAID1: 最佳安全性能,一块磁盘对另一块磁盘镜像,100%自动复制
RAID5:不对存储数据备份,把数据和对应的奇偶校验信息存储到各磁盘,且二者存在不同的磁盘上。

数据库

关系数据库非关系数据库
形式文档、键值对、图
查询SQL复杂查询复杂
事务要求不要求

主流存储产品剖析

单机存储:本地文件系统

linux文件系统:

  1. index node:文件元信息如数据在磁盘位置,是文件唯一标识,存在缓存。
  2. directory entry:记录文件名字、索引节点和其他关系,存在内存。
  3. 关系:n个directory entry : 1个inode(如硬链接)

mysql

操作日志redolog:记录那个page什么操作
临时数据文件:join或排序结果存在这里

非关系数据库:三足鼎立

elasticsearch:面向文档存储,模糊匹配
mongoDB:基于collection的存储
Redis:数据结构丰富,主要基于内存

分布式数据库

存储节点池化解决以下三个问题: 1.容量问题 2.解决弹性问题,扩容缩容 3.性价比问题

新技术展望

软件架构变更

bypass:减少系统调用的性能损耗,直接从用户态访问磁盘
中断到轮询:磁盘性能提升后,中断次数变多,不利于IO性能,绑定cpu不断轮询

AI增强

行列混存

硬件变更

RDMA网络:工作卸载到RDMA网卡 可编程交换机:缓存一致性协议

总结

存储数据库领域,硬件反推软件革命非常普遍