认识存储与数据库——存储
今天主要学习了数据是怎么产生,在后端系统里怎么流通,最后怎么写入到存储/数据库系统,了解学习了存储/数据库系统的产生背景及基本特点。
一、数据的产生
当我们使用计算机输入一则用户信息时,它会在电脑中生成类似的以下信息:
{
"user_name":"",
"password":"helloworld",
"password_hint":"coding",
......
}
这些信息会传入该开发端的后端服务器中,在后端服务器处理后存入我们的数据库。
二、数据的持久化
数据库中的信息能够持久化保存,在用户再次使用时可以读取之前存入的信息。
校验数据的合法性(检验数据是否已存在)->修改内存(用高效的数据结构组织数据)->写入存储介质(以寿命&性能友好的方式写入硬件)
三、存储系统
什么是存储系统?
一个提供了读写、控制类接口,能够安全有效地把数据持久化的软件,就可以成为存储系统。
我们所熟悉的单机存储存在以下缺点:
1.无法应对海量数据、多种数据的情景。
2.无法应对带有计算逻辑的存储。
因此我们需要将单机存储系统发展成网络的分布式存储系统来应对这种情形。
四、存储系统的特点
1.作为后端软件的底座,性能敏感
2.存储系统软件架构,容易受硬件影响
3.存储系统代码既“简单”又“复杂”
因此我们在写存储和读写代码时要注意不要写的太复杂,同时不要写很多分支,否则系统的性能会大大降低,但在io路径上又要考虑多种异常情况的处理以及硬件会不会受影响。
五、从应用到存储介质
1.存储:贯穿整个存储体系
2.拷贝:尽量减少使用,拷贝会消耗CPU,过多的拷贝会让CPU消耗过度,性能下降。
3.需要有统一的软件接入层
六、RAID技术
出现背景:
- 单块大容量磁盘的价格>多块小容量磁盘
- 单块磁盘的写入性能<多块磁盘的并发写入性能
- 单块磁盘的容错能力有限,不够安全
RAID 0
- 多块磁盘简单组合
- 数据条带化存储,提高磁盘带宽
- 没有额外的容错设计
RADI 1
- 一块磁盘对应一块额外镜像盘
- 真实空间利用率仅50%
- 容错能力强
RAID 0+1
- 结合了RAID 0和RAID 1
- 真实空间利用率仅50%
- 容错能力强,写入带宽好
个人收获
在学完数据的存储后,我了解到了数据的产生、传输以及它的一个存储过程,知道了在存储信息时需要考虑到多方面因素,例如:存储介质,读写的代码复杂度,检错分支的重要性,拷贝的使用对CPU的一个消耗问题等。同时,也知道了我们常使用的单机存储存在的不足等。