Cassandra - A Decentralized Structured Storage System——论文阅读

SIGOPS 2010 Paper 分布式元数据论文阅读笔记整理

问题

Facebook生产环境中,在大量基础设施(数千个组件)上运行的分布式存储系统可能面临各种故障,因此,软件系统需要以一种将故障视为规范而非例外的方式进行构建,如何在这种情况下保证可靠性和可扩展性,同时保证不牺牲读性能下保证高写入吞吐量。

背景

在生产环境中运行的存储系统的体系结构非常复杂,除了实际的数据持久性组件外,该系统还需要具有以下特性;负载平衡、成员身份和故障检测、故障恢复、副本同步、过载处理、状态转移、并发和作业调度、请求编组、请求路由、系统监控和报警、配置管理的可扩展和稳健的解决方案。

本文重点关注Cassandra中使用的核心分布式系统技术:分区、复制、成员身份、故障处理和扩展。所有这些模块同步工作以处理读/写请求。通常,对密钥的读/写请求会被路由到Cassandra集群中的任何节点,节点确定该密钥的副本。对于写入,系统将请求路由到副本,并等待仲裁的副本来确认写入的完成。对于读取,基于客户端所需的一致性保证,系统将请求路由到最近的副本,或者将请求路由至所有副本,并等待仲裁响应。

本文方法

提出Cassandra,一种分布式存储系统,用于管理分布在许多商品服务器上的大量结构化数据,提供无单点故障的高可用性服务。

  • 管理持久状态,提高了依赖该服务的软件系统的可靠性和可扩展性。

  • 不支持完整的关系数据模型,为客户端提供了一个简单的数据模型,支持对数据布局和格式的动态控制。

划分

使用一致性哈希和环划分数据到不同节点。为了负载均衡,分析环上信息,并让轻负载节点在环上移动,以减轻重负载节点。

复制

每个数据都在N个主机上复制,包括多种复制策略:Rack Unaware、Rack Aware(在数据中心内)、datacenter Aware。

成员

成员基于Scuttletter[19],一种基于反熵Gossip的机制,具有非常高的CPU利用率和gossip频道利用率。

故障检测

通过故障检测,节点可以本地确认其他节点的接入和离开, 同时避免与无法访问的节点通信。通过节点的故障检测块发送值来判断,不发出值则节点处于接入或离开状态,发出的值表示节点的网络和负载状态。

自举

节点首次启动时会在环中选择随机位置,并获得令牌,随后令牌在集群中传播以通知其他节点。

集群缩放

新节点加入后会从旧节点分取部分数据,并通过内存复制技术传到新节点。

本地持久化

依赖本地文件系统实现数据持久性,利用顺序写入的提交日志实现。

查找时首先查询布隆过滤器,随后查询索引,最后查找磁盘上的文件。

实现细节

单机上主要包含以下进程:分区模块、成员身份和故障检测模块、存储引擎模块。系统控制消息利用UDP传输,用于复制和请求路由的应用程序消息利用TCP传输。

数据请求流程:(1)识别拥有数据的节点(2)将请求路由到节点并等待响应到达(3)如果响应没有在配置的超时值内到达,则使请求失败并返回到客户端(4)基于时间戳计算出最新响应(5)如果它们没有最新的数据,则在任何副本处安排数据修复。

清除提交日志项的机制:滚动提交日志,在旧的提交日志超过特定的、可配置的大小后,将滚动新的提交日志。默认用128MB。

基于主键对所有数据进行索引,磁盘上的数据文件分解为一系列块,每个块最多包含128个键,并且由块索引来划分。

总结

对Facebook中分布式存储系统Cassandra进行介绍,介绍各种实现的大概思路,包括:数据划分、复制、成员身份和故障检测、集群缩放、本地持久化、数据请求流程。

相关推荐
Eastmount1 天前
[论文阅读] (47)LAMD: 基于大模型上下文驱动的Android恶意软件检测与分类
android·论文阅读·大模型·系统安全·恶意代码检测
蓝海星梦1 天前
【论文笔记】DeepSeekMath-V2: 基于自我验证的数学推理新范式
论文阅读·人工智能·自然语言处理·数学推理·deepseek
EEPI2 天前
【论文阅读】Vision Language Models are In-Context Value Learners
论文阅读·人工智能·语言模型
墨绿色的摆渡人2 天前
论文笔记(一百一十六)ViTa-Zero: Zero-shot Visuotactile Object 6D Pose Estimation
论文阅读
醒了就刷牙2 天前
Vilt论文相关工作部分
论文阅读·论文笔记
m0_743106462 天前
【Feedforward 3dgs】YOU ONLY NEED ONE MODEL
论文阅读·人工智能·计算机视觉·3d·几何学
有Li2 天前
基于小波分析和记忆库的超声长视频时空细节追踪-文献速递-医疗影像分割与目标检测最新技术
论文阅读·文献·医学生
万里鹏程转瞬至3 天前
论文简读:Kwai Keye-VL Technical Report
论文阅读·多模态
川西胖墩墩3 天前
中文PC端跨职能流程图模板免费下载
大数据·论文阅读·人工智能·架构·流程图
静听松涛1333 天前
在线协作跨职能泳道图制作工具 PC版
大数据·论文阅读·人工智能·信息可视化·架构