「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:一

简介: 「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:一

1.1 分布式存储概念

分布式存储系统特性:

  • 可扩展
  • 低成本
  • 高性能
  • 易用

主要挑战 :数据、状态信息的持久化,要求在自动迁移、自动容错、并发读写的过程中保证数据的一致性。

技术点:

  • 数据分布 :如何将数据分布到多台服务器才能保证数据分布均匀?数据分布到多台服务器后如何实现跨服务器读写操作?
  • 一致性 :如何将数据的多个副本复制到多台服务器,即使在异常情况下,也能够保证不同副本之间的数据一致性?
  • 容错 :如何检测到服务器故障?如何自动将出现故障的服务器上的数据和服务迁移到集群中的其他服务器?
  • 负载均衡 :新增服务器和集群正常运行过程中如何实现自动负载均衡?数据迁移过程中如何保证不影响已有服务?
  • 事务与并发控制 :如何实现分布式事务?如何实现多版本并发控制?
  • 易用性 :如何设计对外接口使得系统容易使用?如何设计监控系统并将系统的内部状态以方便的形式暴露给运维人员?
  • 压缩 / 解压缩 :如何根据数据的特点设计合理的压缩、解压缩算法?如何平衡压缩算法节省的存储空间和消耗的 CPU 计算资源?

1.2 分布式存储分类

分布式存储数据结构:

  • 非结构化数据 :办公文档、文本、图片、图像、音频、视频
  • 结构化数据 :关系数据库中,可以用二维关系表结构表示。结构化数据的模式(Schema,包括属性、数据类型以及数据之间的联系)和内容是分开的,数据的模式需要预先定义。
  • 半结构化数据 :如 HTML 文档。自描述的,结构和内容混在一起,没有明显的区分,也不需要预先定义数据的模式结构。

1.2.1 分布式文件系统

以对象形式组织,对象之间没有关联,一般称为 Blob(Binary Large Object,二进制大对象)数据。

分布式文件系统也常作为分布式表格系统 以及分布式数据库的底层存储。

总体看,分布式文件系统存储三种类型的数据:

  • Blob 对象
  • 定长块
  • 大文件

1.2.2 分布式键值系统

用于存储关系简单的半结构化数据,只提供基于主键的 CRUD 功能。

类似传统的哈希表。是分布式表格系统的一种简化实现,一般用作缓存。

** 常见的数据分布技术:** 一致性哈希。

1.2.3 分布式表格系统

用于存储关系较复杂的半结构化数据,支持 CRUD,支持扫描某个主键范围。如:DynamoDB

同一个表格的多个数据行也不要求包含相同类型的列。

1.2.4 分布式数据库

从单机关系数据库扩展而来,用于存储结构化数据。

  • MySQL Sharding 集群,
  • Amazon RDS,
  • 阿里巴巴 OceanBase,
  • 腾讯 TDSQL
  • Tidb
相关文章
|
1月前
|
存储
嵌入式微处理器的系统架构中指令系统
嵌入式微处理器的系统架构中指令系统
11 0
|
1月前
|
存储 搜索推荐 数据挖掘
ElasticSearch架构介绍及原理解析
ElasticSearch架构介绍及原理解析
61 0
|
2月前
|
缓存 NoSQL 关系型数据库
|
2月前
|
监控 数据可视化 关系型数据库
微服务架构+Java+Spring Cloud +UniApp +MySql智慧工地系统源码
项目管理:项目名称、施工单位名称、项目地址、项目地址、总造价、总面积、施工准可证、开工日期、计划竣工日期、项目状态等。
303 6
|
1月前
|
存储 前端开发 BI
基于云计算技术的B/S架构智能云HIS系统源码 集挂号、处方、收费、取药、病历于一体
云HIS是针对中小医院机构、乡镇卫生室推出的一套基于云端的云HIS服务平台,借助云HIS,将医院业务流程化,大大提高医院的服务效率和服务质量,为客户提供医院一体化的信息解决方案。云HIS主要功能:包含门诊收费管理,住院收费管理,门诊医生工作站,住院医生工作站,住院护士工作站,辅助检查科室管理,药房药品管理,药库药品管理,报表查询。满足诊所、中小医院业务中看诊、收费、发药、药库管理、经营分析等多环节的工作需要。
40 4
|
2月前
|
SQL 分布式计算 Hadoop
Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
【2月更文挑战第6天】Azkaban【基础 01】核心概念+特点+Web界面+架构+Job类型(一篇即可入门Azkaban工作流调度系统)
69 0
|
22天前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
21天前
|
运维 Linux Apache
LAMP架构调优(九)——Apache Rewrite功能实战
LAMP架构调优(九)——Apache Rewrite功能实战
11 1
|
25天前
|
存储 监控 容灾
TiDB存储层深入:分布式存储架构与数据一致性保障
【2月更文挑战第26天】本文将深入探讨TiDB的存储层,详细解析其分布式存储架构、数据复制机制以及数据一致性保障措施。通过了解存储层的核心组件和工作原理,我们可以更好地理解TiDB如何确保数据的可靠性、高可用性和可扩展性。本文将从存储层的架构、数据分布、容错机制等方面展开介绍,帮助读者全面掌握TiDB存储层的关键技术和优势。
|
1月前
|
架构师 算法 关系型数据库
数据库架构师之道:MySQL安装与系统整合指南
数据库架构师之道:MySQL安装与系统整合指南
43 0

推荐镜像

更多