大规模分布式存储系统原理解析与架构实战-读书笔记1-概述
Google、Amazon、Alibaba等互联网公司的成功催生了云计算和大数据这两个热门领域。而无论是云计算,大数据还是其他互联网应用,其后台基础设施的建设主要目标都是构建低成本、高性能、可扩展、易用的分布式系统。
分布式存储的概念
- 大规模分布式存储系统的概念:
“分布式存储系统是大量普通PC服务器通过Internet互联,对外作为一个整体提供服务” - 分布式存储系统的主要挑战:
数据,状态信息的持久化。要求在自动迁移,自动容错,并发读写的过程中保持一致性。 - 分布式存储的两个主要技术:
分布式系统和数据库
几个问题:
1 数据分布:如何将数据分布到多个服务器而且要数据分布均匀?如果进行跨服务器操作?
2 一致性:如何将数据的多个副本复制到不同服务器?且在异常情况下也能保持数据一致?
3 容错:如何检测到服务器故障?如何自动将出现错误的服务器的数据迁移到其他服务器?
4 负载均衡:新增服务器和集群正常运行中如何实现自动负载均衡?数据迁移过程中如何保证不影响已有服务?
5 事务与并发控制:如何实现分布式事务?如何实现多版本并发控制?
6 易用性:如何设计对外接口使系统容易使用?如何设计监控系统并将系统内部状态暴露给运维人员?
7 如何根据数据的特点设计合理的压缩/解压缩算法?如何平衡压缩算法节省的存储空间和消耗的CPU计算资源?
分布式存储系统挑战大,研发周期长,涉及知识面广。如果一个工程师能深入理解分布式存储系统,理解其他互联网后台架构不会再有任何问题
分布式存储分类
大致分为三类:结构化数据,非结构化数据,半结构化数据。
本书将分布式存储系统分为四类:
- 分布式文件系统
图表,视频,等非结构化数据,以对象的形式组织,对象之间没有关联,一般称为Blob(Binary Large Object)。
分布式文件系统用于存Blob对象,典型的有Facebook Haystack以及Taobao File System(TFS)。另外,也常作为分布式表格系统和分布式数据库的底层存储。 - 分布式键值系统
用于存储结构简单的半结构化数据,提供基于主键的CRUD。 - 分布式表格系统
用于存储结构较为复杂的半结构化数据 - 分布式数据库
从单机关系数据扩展而来。关系型数据库(如Mysql)最成熟,NoSQL现在也很火。
来源:CSDN
作者:Freddie愣
链接:https://blog.csdn.net/qq_36152792/article/details/103905590