副本放置策略Copysets论文解读及工程实践
副本放置策略Copysets论文解读及工程实践
- 概述
- CopySet论文解读
- 术语定义
- Random Replication
- Copyset Replication
- Premutation
- Replication
- 工程实践
- 参考链接
概述
分布式存储追求在系统成本允许的范围内(一般存储集群都是三副本,还想方设法的使用条带化、压缩等方式降低成本),降低数据丢失的概率,降低故障恢复的时间。好的副本放置策略可以优化整个集群的可用性和一致性。
斯坦福大学曾经出过一篇论文,Copysets: Reducing the Frequency of Data Loss in Cloud Storage,讲解了随机放置副本的问题,提出了copyset副本放置策略。这对很多分布式系统都有借鉴意义。
CopySet论文解读
本文出现以前,工业界的分布(包括HDFS、GFS、Azure Storage)经常使用随机副本放置(rack不同),但这种方式丢数据的概率也较大。作者提出使用CopySet放置副本,在5000个节点的RAMCloud集群中,将1%节点故障情况下集群丢数据的概率从之前的99.99%降低到0.15%。
术语定义
R
:数据的副本数量N
:存储节点的数量S
:Scatter width,如果急群中某个存储节点故障,S
个其他存储节点能参与到集群的修复中。显然,这个值越大,故障恢复时间就越短。(Ceph集群中S==N)copyset
:存储某个数据(GFS中的chunk)的所有存储节点permutation
:存储节点的某种排列方式,例如,N=7可以分解为形如{4, 1, 3, 6, 2, 7 ,5}
的premutation
Random Replication
系统对于每一份数据(存储数据的最小单位,例如GFS中的chunk,WAS中的extent),随机选出R
个不同的存储节点复制数据。当然,这其中选择也是有一定技巧的,这些副本不能在同一个故障域(failure domain,如,不同的机架rack、交换机)中。
这种副本架构的工程实践中,丢数据的概率还是挺大的,根据作者的计算,在上千存储节点的分布式系统中吗,当1%的存储节点同时发生故障,三副本的RamCloud有99.99%的概率丢数据,FaceBook HDFS有22.8%的概率丢数据。
Copyset Replication
Copyset Replication分为两个阶段,Premutation和Replication,相比之前的随机策略,这种方式可以在缩短故障恢复时间的基础上降低丢数据的概率(副本分布较均匀)。
Premutation
系统根据R、N,划分出不同的copyset。每轮划分出N/R
个copyset。每次确保其中的copyset不与当前和之前所有轮次中已经产生的copyset相同,同时需要考虑failure domain的限制。由于每个存储节点都会分布在每轮的copyset中,因此每轮premutation都可以增大集群的Scatter Width。
Replication
集群根据Premutation选出的replica,寻找合适的copyset放置数据。某一个node可以选择多个relica
工程实践
根据上述的描述,一个简单的生成副本位置的算法如下:
- 根据系统的R、N,排列组合生成所有的copyset,共有CNRC_N^RCNR个copyset
- 根据系统failure domain,排除不符合规则的copyset。
- 系统使用可用的copyset,构成存储系统的副本架构。
假设在实际工程中故障域只有rack限制,那么算法可以简化为:
假设有三个rack:A、B、C,每个rack有四个存储节点A:{1, 2, 3, 4}, B:{5, 6, 7, 8}, C:{9, 10, 11, 12}
,集群R=3
- 以每个rack的存储节点交错的形式,组成Premutation:
{1, 5, 9, 2, 6, 10, 3, 7, 11, 4, 8, 12}
- 以R为滑动窗口,顺序遍历整个Premutation,生成copyset:
{1, 5, 9}, {5, 9, 2}, {9, 2, 6}...
- 这种方式生成的copyset可以满足故障域要求,并且副本分布均匀。
参考链接
- Copysets: Reducing the Frequency of Data Loss in Cloud Storage论文
- Data Availability and Durability with the Hadoop Distributed File System
- 副本放置&Copyset Replication
副本放置策略Copysets论文解读及工程实践相关推荐
- HDFS副本放置策略和机架感知
副本放置策略 的副本放置策略的基本思想是: 第一block在复制和client哪里node于(假设client它不是群集的范围内,则这第一个node是随机选取的.当然系统会尝试不选择哪些太满或者太忙的 ...
- HDFS详解(架构设计、副本放置策略、读写流程、进程、常用命令等)
前言:当数据集的大小超过一台独立的物理计算机的存储能力时,就有必要对它进行分区(Partition)并存储到若干台单独的计算机上.管理网络中跨多台计算机存储的文件系统成为分布式文件系统(distrib ...
- SDM原理解读与工程实践
SDM原理解读与工程实践 本文主要介绍的是阿里在召回阶段使用的深度召回模型SDM,paper名称为<SDM: Sequential Deep Matching Model for Online ...
- DSSM原理解读与工程实践
推荐算法实践 DSSM原理解读与工程实践 一.原理 DSSM(Deep Structured Semantic Model),由微软研究院提出,利用深度神经网络将文本表示为低维度的向量,应用于文本相似 ...
- Block的副本放置策略
服务器有:塔式.机架.刀片3种. Block块的N个副本的放置策略: 第一个副本放置:如果在集群内上传1T文件,就放置在该DN上.如果在集群外上传,则找一个磁盘空间足够.CPU够用的节点. 第二个副本 ...
- HDFS副本放置策略
1.第一个副本放置在上传文件的DataNode上,如果是集群外提交,则随机挑选一个磁盘不太满,CPU不太忙的节点. 2.第二个副本放置在与第一个副本不同的机架上. 3.第三个副本放置在与第二个副本同机 ...
- Video Object Segmentation with Adaptive Feature Bank and Uncertain-Region Refinement论文解读和代码实践
NeurPIS2020的论文 官方代码 基础的框架采用STM,但是提出了自适应调整memory bank和一种新颖的refinement操作. Motivation STM是目前半监督VOS方向的SO ...
- 【天光学术】网络工程论文:网络工程实践中安全技术的应用(节选)
摘要:随着我国经济的不断发展,信息化已经深入到我国各个领域.而网络信息技术的使用,改变了传统的信息交流方式,给人们的工作与生活带来了极大的便捷,其重要性不断提高.尤其是近年来,信息技术已经深入到经济发 ...
- Hadoop 副本存储策略的源码修改和设置
Table of Contents BlockPlacementPolicy Hadoop 提供的 BlockPlacementPolicy 实现 BlockPlacementPolicyDefaul ...
最新文章
- 计算机应用为什么要学机械制图,机械制图为什么这么难学?
- mybatis中传入String类型参数的问题
- assert()函数_【工程师分享】避免Xil_Assert系列宏导致的死循环
- asp.net环境下的静态类以及静态变量
- 另一种Background job的 debug方法
- canvas图形编辑器
- 如何提升软件交付效能?答案未必如你所想
- 一句话解释什么是回归
- 前端与移动开发乐淘项目-day02
- python---python3 获取当前路径及os.path.dirname的使用;os.path.abspath(__file__)用法及意义
- 用git push代码到远程仓库的时候出现错误
- 类别不平衡学习的常用策略
- SQL入门:第一章 建立自己的数据库
- (附源码)计算机毕业设计ssm宠物管理系统
- 怎样用java抽签小程序,可以作弊的抽签小程序,急求java抽签小程序
- 复合函数高阶求导公式_复合函数求导公式有哪些
- 自制hdmi线一头改vga图_什么是VGA?
- Fast Deep Matting for Portrait Animation on Mobile Phone
- 密码爆破工具——九头蛇(hydra)
- 微信朋友圈附近推效果怎么样?