分布式系统建设的目标:构建低成本、高性能、可扩展、易用的分布式存储系统,也是分布式系统的四个特性。
 
分布式存储系统:大量普通PC服务器通过Internet互联,对外作为一个整体提供服务。
 
可扩展
低成本
高性能
易用:分布式系统需要提供能够易用的对外接口
 
分布式存储涉及的技术主要来自两个领域:分布式系统、数据库。
会产生如下几个问题:
数据分布:如何将数据分布到多台服务器才能保证数据分布均匀?数据分布到多台服务器后如何实现跨服务器读写操作?
一致性:如何将数据的多个副本复制到多台服务器?即使在异常情况下,也能保证不同副本之间的数据一致性?
容错:如何检测到服务器故障?如何自动将出现故障的服务器上的数据和服务迁移到集群中的其他服务器上?
负载均衡:新增服务器和集群正常运行过程中如何实现自动负载均衡?数据迁移的过程中如何保证不影响已有服务?
事务与并发控制:如何实现分布式事务?如何实现多版本并发控制?
易用性:如何设计对外接口使得系统容易使用?如何设计监控系统并将系统的内部状态以方便的形式暴露给运维人员?
压缩/解压缩:如何根据数据的特点设计合理的压缩/解压缩算法?如何平衡压缩算法节省的存储空间和消耗的CPU计算资源。
 
分布式存储面临的数据需求有三类:
非结构化数据:包括所有格式的办公文档、文本、图片、图像、音频和视频信息等。
结构化数据:一般存储在关系数据库中的。
半结构化数据:自描述的,例如HTML文档。
 
分布式存储系统分为四类:分布式文件系统、分布式键值系统、分布式表格系统、分布式数据库。
 
分布式文件系统:
互联网应用需要存储大量的图片、照片、视频等非结构化数据对象,这类数据以对象的形式组织,对象之间没有关联,这样的数据成为Blob数据(二进制大对象)例如TFS系统等。分布式存储系统存储三种类型的数据:Blob对象、定长块、以及大文件。
 
分布式键值系统:
用于存储关系简单的半结构化数据,与传统的哈希表比较类似,不同的是,分布式键值系统支持将数据分布到集群中中的多个存储节点,一般用作缓存,如Tair、Memcache。
 
分布式表格系统:存储关系较为复杂的半结构化数据。
 
分布式数据库:采用二维表格组织数据,提供SQL系查询语言,例如MySQL数据库分片集群、OceanBase等。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 posted on 2019-12-12 13:59  冗热  阅读(208)  评论(0编辑  收藏  举报