<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-84  評論-56  文章-0  trackbacks-0

    來自Facebook核心數(shù)據(jù)組的Jeff Johnson周三在QCon紐約的演講中公布了Apollo,它是Facebook的一種類似于PaxosNoSQL數(shù)據(jù)庫。Apollo構(gòu)建于Apache Thrift 2 RPC框架,采用C++11開發(fā),是一種分層存儲系統(tǒng),所有數(shù)據(jù)被劃分到Shard,非常類似于HBase中的區(qū)域服務(wù)器。Johnson表示它最大的好處是在線低延遲存儲,特別是在Flash和內(nèi)存中。

    區(qū)別于面向文檔和鍵值的存儲,Apollo是一種修改的數(shù)據(jù)結(jié)構(gòu),允許你存儲Map、隊列、樹以及鍵值等等。系統(tǒng)中每個單獨的數(shù)據(jù)塊都非常小,從1字節(jié)到1MB,而所有的總大小則從1MB10+PB。它支持的服務(wù)器從最少三臺到數(shù)千臺之多。

    每個Shard有四個組件。第一個是Quorum一致性協(xié)議,它基于來自斯坦福的強Leader一致性協(xié)議RaftJohnson說他的團隊非常喜歡Raft的一個原因是Leader的故障恢復(fù)非常好定義,因為就是Quorum視圖的變化。話雖如此,他說這真的不比Multi-paxos簡單:

    我們不得不做大量的工作,從讓你異步讀寫磁盤到處理Follower忙于后臺事務(wù)等場景,因為服務(wù)器上有其它東西或者磁盤非常慢,錯誤檢查等等。

    第二個組件是存儲。目前主存儲基于RocksDB,是一種構(gòu)建于Google LevelDBKey/Value存儲結(jié)構(gòu)。雖然它是Key/Value存儲,Facebook使用它來模擬其它數(shù)據(jù)結(jié)構(gòu)。Apollo被設(shè)計為可以存儲未知的結(jié)構(gòu),團隊也正在增加對MySQL的支持以作為一種替代存儲引擎。

    第三個組件是客戶端API,它擁有read()write()方法。ApolloShard層執(zhí)行的所有操作都是原子操作,因此你可以描述前置條件,如果滿足,它返回readswrites。代碼示例如下:

    read(conditions : {map(m1).contains(x)},

         reads : {deque(d2).back()})

    上面的代碼表示如果Map m1包含x,就返回雙端隊列(Dequed2back上的值。

    你能將任意多個條件和任意數(shù)量的Read結(jié)合在一起。

    Write也非常類似,同樣允許你描述條件:

    write(conditions : {ver(k1) == v}, reads : {},

          writes : {val(k1) := x})

    最后一個組件是容錯狀態(tài)機(Fault Tolerant State MachineFTSM)。它們主要由系統(tǒng)代碼使用,但也可以被用戶代碼使用。每個FTSM都屬于Shard,例如,在一個有三臺機器的Shard中,它們?nèi)客瑫r執(zhí)行相同的代碼。它們能存取每臺機器的持久化存儲。最重要的是,如果一個節(jié)點故障,代碼將按所有節(jié)點都同意的正確順序繼續(xù)執(zhí)行。

    狀態(tài)機還被用于負(fù)載均衡、數(shù)據(jù)遷移、Shard創(chuàng)建和銷毀,以及協(xié)調(diào)跨Shard事務(wù)。狀態(tài)機也存在外部副作用,例如它們能發(fā)送RPC請求到遠(yuǎn)程機器,但不論何時它們要變更持久化狀態(tài),都必須提交給Raft以取得所有服務(wù)器的同意。

    Facebook目前將Apollo用于替換Memcached的一些應(yīng)用場景,同時Johnson也明確表示Facebook大規(guī)模地使用了Memcached。該公司同時正在嘗試使用它作為一種可靠的隊列系統(tǒng),用于發(fā)送Facebook消息到iOSAndroid和運營商SMS。它也可能用于更快速的分析。

    Apollo仍處于開發(fā)階段,還沒有開源,但Johnson說那是Facebook尋求并樂意去做的方式。Johnson的演示稿已經(jīng)提供給QCon紐約的參會者,在適當(dāng)?shù)臅r候會發(fā)布給所有人。

    查看英文原文:Facebook Announces Apollo, a New NoSQL Database for On-line Low Latency Storage

     

    posted on 2014-08-16 09:50 憶風(fēng) 閱讀(268) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 天堂在线免费观看中文版| 亚洲视频在线观看免费视频| 国产青草视频免费观看97 | 日本视频免费高清一本18| 国产精品V亚洲精品V日韩精品| 国产成人精品亚洲| 国产成人精品免费视频大| 亚洲一区二区影院| 无码国产精品一区二区免费vr| 亚洲日韩精品无码一区二区三区 | 亚洲香蕉免费有线视频| 亚洲日韩精品无码AV海量| 免费看韩国黄a片在线观看| 亚洲中文无码亚洲人成影院| 午夜网站免费版在线观看| 男男gay做爽爽的视频免费| 又粗又大又猛又爽免费视频| 四虎精品免费永久免费视频| 亚洲日韩欧洲无码av夜夜摸| 亚洲精品免费在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 麻豆视频免费播放| 亚洲av成人中文无码专区| 亚洲色偷拍区另类无码专区| 永久免费不卡在线观看黄网站| 亚洲黄色高清视频| 成人无遮挡毛片免费看| 免费大片av手机看片| 亚洲国产精品乱码一区二区| 免费看h片的网站| 国产亚洲精品精品精品| 国产成人无码综合亚洲日韩| 免费观看无遮挡www的小视频| 久久精品亚洲日本波多野结衣| 精品国产亚洲男女在线线电影 | 亚洲国产中文v高清在线观看| 大地资源中文在线观看免费版| 亚洲精品国产专区91在线| 日本特黄特色免费大片| 亚洲av无码片在线观看| 免费国产a国产片高清网站|