精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

大規模Neo4j集群中的因果一致性

責任編輯:editor004

作者:Andrew Morgan

2017-04-20 11:20:18

摘自:INFOQ

在QCon 2017倫敦大會上,Neo4J Technology首席科學家Jim Webber介紹了Neo4J是如何實現因果一致性的。

在QCon 2017倫敦大會上,Neo4J Technology首席科學家Jim Webber介紹了Neo4J是如何實現因果一致性的。他的演講內容包括:高層概覽Neo4J集群的架構、使用Raft實現共識機制,以及用于實現“寫后讀”(RAW,read-after-write)一致性的“書簽”(Bookmarking)模式。

據Webber介紹,為將集群問題分而治之,Neo4J提供了兩類角色不同的節點,分別稱為核心(Core)節點和只讀(Read)節點。在集群中,核心節點用于寫操作,并提供了集群的持久性保證。只讀節點是核心集群的只讀異步副本,實現在“多讀少寫”(Read-heavy)負載場景下的擴展。

,Webber進一步介紹了為達成持久性保證,核心節點是如何實現Raft共識算法的。一旦一個事務寫入到一個核心節點,Raft就會對事務做日志,并將事務到復制到集群中所有其余的核心節點。Raft并非等待事務被完全復制,而是等待大多數選舉(Majority Vote),這足以保證寫操作的持久性。

Webb還介紹了Raft在性能上和彈性上的優點。對于性能而言,Raft只需等待大多數復制,因此阻塞的時間更短,進而降低了查詢延遲。從彈性的角度看,即使一些節點故障,只要大多數依然可以選舉,核心集群就仍然正常工作。

Webber對Raft和Paxos做了比較,Raft相對更簡單,而且更易于實現,這就是Neo4J選擇Raft的原因。他認為Raft降低了軟件故障出現的可能性,提高了應用的可維護性。

據Webber介紹,圖數據庫通常是一類“多讀少寫”的數據庫。即使在寫操作期間,也必須讀取和遍歷圖數據。這就是在Neo4J集群中通常只讀節點要多于核心節點的原因。因為只讀節點不參與共識提交,這意味著只讀節點適用于自動擴展,并且更易于按需部署或調配。

考慮到事務是被異步復制到只讀節點的,Webber給出了一個簡單應用場景,對此機制進行了展示。如果用戶需要在創建數據后就立刻讀取它們,即便寫操作具有持久性保證,但還是有可能無法發現這些數據。這是由于數據是最終一致的,可能數據尚未復制到被查詢的節點上。

要解決這一“寫后讀”一致性問題,Webber介紹了Neo4J中提供的一種因果一致性模式,稱為“書簽”。

書簽模式的第一階段包含一次寫操作,寫操作完成后將返回相應的事務標識給客戶端。第二階段是一次讀操作,客戶端在查詢中發送事務的標識。通過使用事務標識,被讀取的節點將可以阻塞給定的事務。

Webber用一個代碼例子展示了書簽模式,強調了在他看來,實現書簽模式是非常簡單的。在這個例子中,客戶端接收一個事務標識,然后傳遞給此后的查詢。

要了解更多的細節,可以從此處在線完整觀看該演講。Webber還推薦閱讀一下Raft的論文。

查看英文原文: Causal Consistency for Large Neo4j Clusters

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 津南区| 陕西省| 大埔县| 达孜县| 沐川县| 饶阳县| 紫金县| 湟源县| 石首市| 连山| 卢湾区| 玉林市| 东兰县| 轮台县| 肃宁县| 五寨县| 鄂托克前旗| 元谋县| 于都县| 明光市| 麦盖提县| 工布江达县| 桑植县| 子洲县| 临汾市| 登封市| 朝阳区| 瓦房店市| 饶阳县| 京山县| 舞阳县| 通渭县| 景洪市| 宝坻区| 读书| 福建省| 内乡县| 化隆| 韶山市| 酉阳| 丹凤县|