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

101 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第1篇笔记。

存储

(硬件)存储器的金字塔结构

塔尖:容量小,性能极高。

塔底:容量大,性能(读写,访问)极其不友好。如磁带

Persistent memory:中间级别

(软件)存储链路上的缓存很重要

RAID技术:单机高性能。高性价比。高可靠性。

单块磁盘写入性能小于多块磁盘的并发写入性能。

RAID0:多块磁盘的简单组合。条带化存储。无容错

RAID1::一块磁盘对应一块额外镜像盘。仅50%的利用。

RAID0+1:仅50%可用。但性能有RAID0.提高了很多

存储系统

单机存储系统:

文件存储

Index node:全局唯一标识,记录文件元数据

Directory entry: 全内存结构,记录Inode(为N:1),文件名,层级关系等。

KEY-VALUE存储

LSM-Tree。牺牲读性能,追求写入性能。

分布式存储系统:(网络交互)

分布式存储-HDFS

NAMEnode-DATAnode。文件形式,高容错,海量。 Hadoop-mapreduce(大数据计算)

分布式存储-Ceph

一切皆对象,主备复制模型,数据分布模型CRUSH算法(副本的存储计算):hash+权重+随机抽签。

单机DB:

RDB

Mysql.pgsql

非RDB

MongoDB,Redis,ES  没有模式,尝试支持事务/sql ES:面向文档,序列化JSON, index = 表,强依赖lucence,大量数据结构和算法(模糊/关联度搜索)

MongoDB:面向文档,序列化JSON ,ollection = 表,wierdTiger引擎,支持事务

Redis: 数据结构丰富,基于内存,AOF/RDB持久化

分布式DB:

解决(池化技术,动态扩容):容量问题,弹性问题(迁移难),性价比问题;

并发写:内存弹性:分布式事务:

新技术演进

Bypass OS kernel(SPDK,用户态访问磁盘,轮询,无锁数据结构) 硬件革命(RDMA网络,用户态内存映射到网卡;Persistent memory,介于SSD与内存之间) 智能存储格式转换(行存,列存)

关于mapreduce的一点补充学习

mapReduce:是一种编程模型,用于大规模数据集的并行运算。概念"Map(映射)"和"Reduce(归约)"即分而治之,是它们的主要思想。

image.png

总结思考

数据库和存储是后端十分重要的部分。分布式存储如TOS,靠着高性价比、高易用、海量应用的特性在企业中越来越有分量。