QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

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

  • 2017-04-19
  • 本文字数:1084 字

    阅读完需:约 4 分钟

在 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

2017-04-19 19:002278
用户头像

发布了 227 篇内容, 共 77.9 次阅读, 收获喜欢 28 次。

关注

评论

发布
暂无评论
发现更多内容

淘宝店铺所有商品数据接口怎么获取

tbapi

淘宝API接口 淘宝店铺所有商品数据接口

CRISP-DM的应用与理解

天翼云开发者社区

数据挖掘 CRISP-DM

金九银十来了,你的简历写好了么?

不在线第一只蜗牛

程序员 前端

云原生主键模型:高效、弹性,省钱又省心

StarRocks

数据库 大数据 存算分离 存算分离架构 湖仓一体

ps2224最新版,Photoshop 2024(Win&Mac) 软件下载

你的猪会飞吗

PS2024破解 mac破解软件下载 ps2024中文

俄罗斯即将启动跨境加密支付试行计划:规避制裁与加密货币的未来

区块链软件开发推广运营

交易所开发 dapp开发 区块链开发 链游开发 NFT开发

与客户建立联系,成为企业战略决策的引领者

智达方通

全面预算管理 财务管理 客户关系

NocoBase 与百事通:为法律行业带来全新变革

NocoBase

低代码 无代码 客户案例

万界星空科技MES系统如何帮助企业降低成本

万界星空科技

工业互联网 制造业 生产管理系统 mes 智能制造业

算网资源调度关键技术

天翼云开发者社区

云计算 云服务

【论文速读】| 基于大语言模型智能体对文本到图像模型进行越狱

云起无垠

智能体进化发展了一年,现在的RPA Agent迭代到什么程度了?

王吉伟频道

RPA 智能体 大语言模型 AI Agent RPA Agent

人工智能 | MetaLlama大模型

测试人

人工智能 软件测试

私有云服务器虚拟化超分比及资源扩容管理

天翼云开发者社区

云计算 服务器 虚拟化

新手使用住宅代理有哪些常见误区?

IPIDEA全球HTTP

GPU虚拟化技术简介:实现高性能图形处理的灵活部署

天翼云开发者社区

云计算 gpu 虚拟化技术

NFTScan | 08.26~09.02 NFT 市场热点汇总

NFT Research

NFT\ NFTScan

海外直播带货,怎样确保网络稳定流畅

Ogcloud

海外直播专线 海外直播 直播专线 海外直播网络 tk直播专线

解析淘宝商品详情API返回值中的关键属性

代码忍者

观测云核心技术揭秘:基于时间的半结构化数据模型

观测云

数据结构

通义灵码使用安装教程,3分钟快速上手体验

阿里巴巴云原生

阿里云 云原生 通义灵码

《有恃无恐》

充实的orzi

#小说 #艺术来源于现实

小白学深度学习:知识蒸馏研究综述

阿里云天池

HBlock应用实践与性能测试:解锁老旧服务器存储潜力,打造高效稳定的存储集群

Geek_2dc40b

HBlock 老旧服务器盘活

河南大学OpenHarmony技术俱乐部正式揭牌成立

科技热闻

TikTok直播限流与网络有关系吗?怎么解决?

Ogcloud

海外直播专线 海外直播 tiktok直播专线 海外直播网络 tiktok直播网络

无需推翻既有的建设,这个可观测性产品思路清奇

巴辉特

监控 可观测性 Prometheus 故障定位

大规模Neo4j集群中的因果一致性_架构_Andrew Morgan_InfoQ精选文章