分布式存储:
分布式存储系统是大量普通PC服务器通过互联连接,对外作为一个整体提供存储服务。
分布式存储的特性:
可扩展,整个系统可扩展;低成本,分布式存储系统的自动容错,自动负载均衡,可布置成本低;高性能,无论是整个集群还是单台服务器,都要求分布式存储系统有较高性能;易用性,分布式存储系统需要能狗提供易用的对外接口,并且有相应的工具。
分布式存储系统的挑战性:
数据状态信息的持久化,要求在自动迁移,自动容错,并发读写的过程中保持数据的一致性。
分布式存储数据分类:
1.非结构化数据
2.结构化数据
3.半结构化数据
分布式存储方式分类:
1.分布式文件系统 多种数据类型存储,图片,视频等以内存块存储,存储非机构化数据
2.分布式键值系统 一般用作缓存,是表格系统实现的一种简化方式,存储半结构化数据
3.分布式表格系统 主要针对单张表格的操作,存储半结构化数据
4.分布式数据库 用于存储结构化数据,例如Oracle,MySQL,DB2等关系型数据库,及众多非关系型数据库。
单机存储系统
单机存储:
事务必须满足(ACID)特性,原子性,一致性,隔离性,持久性。
单机存储引擎:
哈希存储引擎
Bitcask 是一个基于哈希表的键值存储系统,它仅支持追加操作,即所有的写操作只追加而不修改老的数据。在这种系统中每一个文件都有一定的的大小限制,当文件增大到一定程度的时候,就会进行文件的合并,减少文件的数量。
数据结构:
定期合并:
将老数据文件中的数据扫描一遍,然后生成新的文件,最后只生成一个最新的数据。减少冗余的文件。
快速恢复:
每次将哈希表存储在一个文件内,如果需要重新建立哈希表,则读取文件快速建立哈希表,如果扫描一遍所有的文件则会导致时间过长。