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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 「读书笔记」《大规模分布式存储系统:原理解析与架构实战》:五

5 分布式键值系统

可以看成是分布式表格模型的一种特例。

哈希分布算法。

5.1 Amazon Dynamo

问题 采取的技术
数据分布 改进的一致性哈希(虚拟节点)
复制协议 复制写协议(Replicated-write Protocol,NWR 参数可调)
数据冲突处理 向量时钟
临时故障处理 数据回传机制(Hinted handoff)
永久故障后的恢复 Merkle 哈希树
成员资格及错误检测 基于 Gossip 的成员资格和错误检测协议

5.1.1 数据分布

一致性哈希算法思想:给系统中每个节点分配一个随机 token,这些 token 构成一个哈希环。执行数据存放操作时,先计算主键的哈希值,然后存放到顺时针方向第一个大于或等于该哈希值的 token 所在的节点。

一致性哈希的优点:节点加入、删除时只会影响到在哈希环中相邻的节点,而对其他节点没有影响。

Dynamo 使用了改进的一致性哈希算法:每个物理节点根据其性能的差异分配多个 token,每个 token 对应一个「虚拟节点」。每个虚拟节点的处理能力基本相当,并随机分布在哈希空间中。

由于种子节点的存在,新节点加入比较简单。新节点首先与种子节点交换集群信息,从而对集群有了认识。DHT(Distributed Hash Table,一致性哈希表)环中的其他节点也会定期和种子节点交换集群信息,从而发现新节点的加入。

5.1.2 一致性与复制

复制:数据回传。

Dynamo 亮点技术:NWR,N 表示复制的备份数,R 指成功读操作的最少节点数,W 指成功写操作的最少节点数。 只要满足 W + R > N,就可以保证当存在不超过一台机器故障的时候,至少能够读到一份有效的数据。

如果应用重视读效率,可以设置 W = N,R=1;如果应用需要在读写之间权衡,一般可以设置 N=3,W=2,R=2。

NWR 看似完美,实则不然。在 Dynamo 这样的 P2P 集群中,由于每个节点存储的集群信息有所不同,可能出现同一个记录被多个节点同时更新的情况,无法保证多个节点之间的更新顺序。为此 Dynamo 引入向量时钟(Vector Clock)的技术手段尝试解决冲突。

5.1.3 容错

Dynamo 将异常分为 2 种类型:

  • 临时性的异常:如机器假死
  • 永久性的异常:如硬盘报修或机器报废等

容错机制:

  • 数据回传
  • Merkle 树同步
  • 读取修复

5.1.4 负载均衡

取决于如何给每台机器分配虚拟节点号,即 token。

分配节点的方法:

  • 随机分配:缺点是可控性差。
  • 数据范围分配 + 随机分配

5.1.5 读写流程

image.png

读取过程中,如果数据不一致,默认策略是根据修改时间戳选择最新的数据,当然用户也可以自定义冲突处理方法。读取过程中如果发现某些副本上数据版本太旧,Dynamo 内部会异步发起一次读取修复操作,使用冲突解决后的结果修正错误的副本。

image.png

5.1.6 单机实现

Dynamo 的存储节点包含 3 个组件:

  • 请求协调
  • 成员和故障检测
  • 存储引擎

Dynamo 设计支持可拔插 的存储引擎,如 Berkerly DB,MySQL InnoDB 等。

5.1.7 讨论

Dynamo 采用无中心节点的 P2P 设计,增加了系统的可扩展性。

Dynamo 只保证最终一致性,多客户端并发操作的时候很难预测操作结果,也很难预测不一致的时间窗口。

总体来看,Dynamo 在 Amazon 的使用场景有限,后续的类似系统会采用其他设计思路以提供更好地一致性。

5.2 淘宝 Tair

Tair 是淘宝开发的一个分布式 K/V 存储引擎。Tair 分为持久化和非持久化两种使用方式:

  • 非持久化可以看成是个分布式缓存
  • 持久化的 Tair 将数据存放于磁盘中。

Tair 可配置数据的备份数目。

5.2.1 系统架构

组成:

  • 1 个中心控制节点 - config server:负责管理所有 Data Server,维护其状态信息。一主一备。
  • 若干服务节点 - data server:对外各种数据服务,并以心跳的形式将自身情况汇报给 Config Server。

5.2.2. 关键问题

数据分布

哈希后,分布到 Q 个桶中。Q 要远大于集群的物理机器数,如 Q = 10240

容错

数据迁移

config server

客户端缓存路由表。

Data Server

Data Server 具备抽象的存储引擎层,可以很方便地添加新存储引擎。Data Server 还有一个插件容器,可以动态加载、卸载插件。

默认包含两个存储引擎:

  • Mdb
  • Fdb

5.2.3 讨论

Tair 中引入了中心节点 Config Server。这样很容易处理数据的一致性,不再需要向量时钟、数据回传、Merkle 数、冲突处理等复杂的 P2P 技术。另外,中心节点的负载很低。

Tair 持久化不尽如人意。如,Tair 持久化存储通过 异步复制 技术提高可靠性,可能会丢数据。

相关文章
|
20天前
|
人工智能 前端开发 编译器
【AI系统】LLVM 架构设计和原理
本文介绍了LLVM的诞生背景及其与GCC的区别,重点阐述了LLVM的架构特点,包括其组件独立性、中间表示(IR)的优势及整体架构。通过Clang+LLVM的实际编译案例,展示了从C代码到可执行文件的全过程,突显了LLVM在编译器领域的创新与优势。
40 3
|
10天前
|
监控 安全 API
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
本文详细介绍了PaliGemma2模型的微调流程及其在目标检测任务中的应用。PaliGemma2通过整合SigLIP-So400m视觉编码器与Gemma 2系列语言模型,实现了多模态数据的高效处理。文章涵盖了开发环境构建、数据集预处理、模型初始化与配置、数据加载系统实现、模型微调、推理与评估系统以及性能分析与优化策略等内容。特别强调了计算资源优化、训练过程监控和自动化优化流程的重要性,为机器学习工程师和研究人员提供了系统化的技术方案。
130 77
使用PaliGemma2构建多模态目标检测系统:从架构设计到性能优化的技术实践指南
|
3天前
|
机器学习/深度学习 算法 数据可视化
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
本文探讨了在量化交易中结合时序特征和静态特征的混合建模方法。通过整合堆叠稀疏降噪自编码器(SSDA)和基于LSTM的自编码器(LSTM-AE),构建了一个能够全面捕捉市场动态特性的交易系统。SSDA通过降噪技术提取股票数据的鲁棒表示,LSTM-AE则专注于捕捉市场的时序依赖关系。系统采用A2C算法进行强化学习,通过多维度的奖励计算机制,实现了在可接受的风险水平下最大化收益的目标。实验结果显示,该系统在不同波动特征的股票上表现出差异化的适应能力,特别是在存在明确市场趋势的情况下,决策准确性较高。
19 5
基于深度混合架构的智能量化交易系统研究: 融合SSDA与LSTM自编码器的特征提取与决策优化方法
|
14天前
|
机器学习/深度学习 人工智能 并行计算
【AI系统】Kernel 层架构
推理引擎的Kernel层负责执行底层数学运算,如矩阵乘法、卷积等,直接影响推理速度与效率。它与Runtime层紧密配合,通过算法优化、内存布局调整、汇编优化及调度优化等手段,实现高性能计算。Kernel层针对不同硬件(如CPU、GPU)进行特定优化,支持NEON、AVX、CUDA等技术,确保在多种平台上高效运行。
67 32
|
14天前
|
存储 机器学习/深度学习 人工智能
【AI系统】计算图优化架构
本文介绍了推理引擎转换中的图优化模块,涵盖算子融合、布局转换、算子替换及内存优化等技术,旨在提升模型推理效率。计算图优化技术通过减少计算冗余、提高计算效率和减少内存占用,显著改善模型在资源受限设备上的运行表现。文中详细探讨了离线优化模块面临的挑战及解决方案,包括结构冗余、精度冗余、算法冗余和读写冗余的处理方法。此外,文章还介绍了ONNX Runtime的图优化机制及其在实际应用中的实现,展示了如何通过图优化提高模型推理性能的具体示例。
45 4
【AI系统】计算图优化架构
|
4天前
|
机器学习/深度学习 前端开发 算法
婚恋交友系统平台 相亲交友平台系统 婚恋交友系统APP 婚恋系统源码 婚恋交友平台开发流程 婚恋交友系统架构设计 婚恋交友系统前端/后端开发 婚恋交友系统匹配推荐算法优化
婚恋交友系统平台通过线上互动帮助单身男女找到合适伴侣,提供用户注册、个人资料填写、匹配推荐、实时聊天、社区互动等功能。开发流程包括需求分析、技术选型、系统架构设计、功能实现、测试优化和上线运维。匹配推荐算法优化是核心,通过用户行为数据分析和机器学习提高匹配准确性。
23 3
|
3天前
|
弹性计算 Java 数据库
Web应用上云经典架构实战
本课程详细介绍了Web应用上云的经典架构实战,涵盖前期准备、配置ALB、创建服务器组和监听、验证ECS公网能力、环境配置(JDK、Maven、Node、Git)、下载并运行若依框架、操作第二台ECS以及验证高可用性。通过具体步骤和命令,帮助学员快速掌握云上部署的全流程。
|
17天前
|
存储 人工智能 监控
【AI系统】推理系统架构
本文深入探讨了AI推理系统架构,特别是以NVIDIA Triton Inference Server为核心,涵盖推理、部署、服务化三大环节。Triton通过高性能、可扩展、多框架支持等特点,提供了一站式的模型服务解决方案。文章还介绍了模型预编排、推理引擎、返回与监控等功能,以及自定义Backend开发和模型生命周期管理的最佳实践,如金丝雀发布和回滚策略,旨在帮助构建高效、可靠的AI应用。
76 15
|
20天前
|
人工智能 并行计算 程序员
【AI系统】SIMD & SIMT 与芯片架构
本文深入解析了SIMD(单指令多数据)与SIMT(单指令多线程)的计算本质及其在AI芯片中的应用,特别是NVIDIA CUDA如何实现这两种计算模式。SIMD通过单指令对多个数据进行操作,提高数据并行处理能力;而SIMT则在GPU上实现了多线程并行,每个线程独立执行相同指令,增强了灵活性和性能。文章详细探讨了两者的硬件结构、编程模型及硬件执行模型的区别与联系,为理解现代AI计算架构提供了理论基础。
62 12
存储 人工智能 自然语言处理
48 6

推荐镜像

更多
下一篇
DataWorks