1、数据的产生与流动
用户再APP或者网页上注册数据之后,数据便会发送到后端服务器中,对于一些需要记录存储的数据如用户ID等,会被存储再数据库系统中。 在进行数据的持久化操作中,会进行:
- 检验数据的合法性;
- 修改内存;
- 写入存储介质;
在数据写入存储介质的时候需要注意的是缓存和拷贝的流程,缓存有的时候会提高数据存储的过程;拷贝的过程一般会使用到CPU,很昂贵,所以有的时候会寻求绕过CPU拷贝的方式,如DMA技术和零拷贝技术来提高效率。
2 存储系统与数据库
2.1 存储系统与RAID技术
存储系统就是一个软件,它可以将数据有效安全地持久化,并且给用户提供了读写、控制等接口。
2.2 数据库
- 关系:任意元素组成的若干有序对反映事物间的关系;
- 关系型数据库:关系数据库是存储系统,但是在存储之外,又有其他能力包括适合处理结构化数据,支持事务,支持复杂查询语言等;
- 非关系型数据库:非关系数据库也是存储系统,但是一般不要求严格的结构化,其可能支持事务和复杂查询语言,这要看具体的非关系型数据库产品
3、主流数据库产品
- 单机存储:单个计算机节点上的存储软件系统,一般不涉及网络交互,如Linux本地文件系统
- 分布式存储:分布式存储是在单机存储的基础上实现了分布式协议,涉及大量的网络交互,如HDFS
- 单机关系型数据库:单个计算机节点上的数据库系统,采用关系型存储,如Oracle、MySQL等
- 单机非关系型数据库:典型的有MongoDB、Redis、Elasticsearch;
- 分布式数据库:由于
容量、弹性和性价比等问题
,在单机存储的基础上发展出了分布式存储技术
对于容量的问题,可以通过存储池的设计来突破单机的存储上限的问题,存储节点池化,动态地进行容量的扩缩;同时也可以通过存储池来解决弹性和性价比的问题。
存储未来发展的方向:
Bypass OS kernal:也就是绕开系统调用的消耗,直接在用户态进行访问磁盘,将中断改为轮询,减少用户态和内核态的切换;
将人工智能技术和存储有机地结合起来;
硬件的发展;