日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

副本放置策略Copysets论文解读及工程实践

發布時間:2024/2/28 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 副本放置策略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论文解读及工程实践的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。