时隔16年Jeff Barr重返10.23-25 QCon上海站,带你看透AI如何重塑软件开发! 了解详情
写点什么

Philip Rathle 谈 Neo4j 2.3 图数据库新特性和 openCypher 计划

  • 2015-12-10
  • 本文字数:2489 字

    阅读完需:约 8 分钟

近日,图 NoSQL 数据库 Neo4j 母公司 Neo Technology发布了该数据库的2.3 版本。同时,他们还宣布了 openCypher 计划,帮助创建一种标准的图查询语言。

为了获得更好的性能,2.3 版本支持内存内页面缓存组件。另外,它还支持 Docker 工具,并增强了查询计划器。 Philip Rathle 是 Neo Technology 的产品副总裁,他在一篇文章中介绍了Neo4j 最新版本的新特性。

openCypher 旨在使 Neo4j 成为一个 更简单的图数据管理平台,以加速图处理和分析的应用。它主要包含如下四个部分:

  • 语言规范
  • 参考实现
  • 技术兼容工具包
  • Cypher 参考文档

InfoQ 就 Neo4j 最新版本的新特性和 openCypher 公告采访了 Philip。

InfoQ:您能介绍下新的内存内页面缓存组件这个纯堆外缓存吗?它的工作原理是什么?为什么要构建一个原生缓存,而不是使用一种已有的缓存框架?

Rathle:将磁盘内容缓存移至堆外,可以让我们在管理整个数据库的内存时获得更多的控制。Neo4j 以 Java 为基础构建。对于传统应用程序而言,它提供了出色的内存管理和性能,不过,当连续不断的查询操作导致大量数据循环经过数据库缓存时,它就无法满足要求了。

Neo4j 的堆内缓存功能已经提供了极高的性能。这一直很有效……直到非常大的缓存与非常大的查询让 Java 的分代垃圾收集器备受压力,导致 JVM 堆成为一个限制扩展的因素。按照设计,新的堆外缓存同堆内缓存一样快(实际上更快),远远超出缓存在受 JVM 堆限制时可能达到的图查询性能水平。同时,新缓存管理非常简单,调优选项更少,调优更灵活。

InfoQ:内存内页面缓存的并发访问是如何管理的?

Rathle:并发管理有多种机制。一是提供粒度够细但又互不影响的低级数据结构,同时粒度又要够大,可以提供一个有效的“缓存亲和度(cache affinity)”水平。二是快速锁定同智能锁定相结合,确保访问缓存的线程在大多数情况下都可以自由运行。再就是,我们还在 Neo4j 2.3 中新增了检查点,提供恰当的选项和默认值,用于不断地清除缓存。通过将负载在时间上分散开,在日志切换期间,查询仍然能够顺畅地操作。

InfoQ:增强后的 Cypher 查询计划器是如何工作的?有什么特别的应用场景比其他应用场景更有效吗?

Rathle:在 Neo4j 2.3 中,Cypher 查询计划器在决定一个查询使用哪个执行计划之前会考察更多的计划。以前,为了避免内存过度使用,它会主动裁剪计划——这对于大查询非常合适。但计划器经常会陷入局部最优,导致次优查询计划。更新后的 Cypher 查询计划器采用了一种更好的算法,使它可以考察更多的计划,同时还能保持一个低水平的内存需求。

Neo4j 2.3 还提供了可以用于求解查询的新操作符——例如,在适用的情况下,新增的 TriadicSelection 操作符可以让查询比以前快许多倍。

InfoQ:对于新版本的字符串强化图搜索功能,您能举几个例子吗?这个新功能是基于什么构建的?

Rathle:Neo4j 2.3 向 Cypher 添加了新操作符——“STARTS WITH”、“ENDS WITH”和“CONTAINS”。这些操作符可以简化使用 Cypher 在图中搜索字符串属性的操作。此外,STARTS WITH 操作符可以使用普通索引快速找到匹配的节点。

同 STARTS WITH 类似,在 Neo4j 2.3 中,Cypher 计划器还能识别数值范围查询,并 且,会在基于数值属性在图中搜索节点时使用普通索引。所有这一切的关键是一个足够智能的优化器,它能够将图模式匹配与基于文本的索引结合起来,优化图 - 文混合搜索。

InfoQ:关于 Docker 支持,你们为开发人员提供了什么工具,让他们可以开始在 Docker 容器中使用 Neo4j?

Rathle:我们已经构建了一个 Neo4j Docker 镜像。该镜像是官方 Docker 镜像库的一部分,在使用标准 Docker 工具运行 Neo4j 容器时可以使用。要了解更多关于 Neo4j on Docker 和可用工具的信息,可以查看通用文档,地址为 https://hub.docker.com/r/neo4j/neo4j/

InfoQ:Docker 支持现在可以用于生产环境了吗?在将 Neo4j 与 Docker 一起使用时,有什么部署注意事项?

Rathle:是的。目前,Neo 有一个官方 Docker 库,我们会为客户提供官方支持。至于最佳实践:内存可能是最重要的调优参数。底层硬件必须为运行在它上面的容器提供足够的内存;Neo4j 镜像允许按需配置内存。而 Neo4j 企业版——与社区版的差别主要是商业性——有许多社区版所没有的操作特性,包括集群。

本质上讲,Docker 容器没有永久性,但 Neo4j 需要持久存储来存储数据。为此,底层硬件必须包含一块可以挂载到容器的磁盘。在默认情况下,Docker 是彼此隔离的。在运行一个 Neo4j 集群时,必须仔细配置容器,确保它们彼此之间可以互相通信。

InfoQ:OpenCypher 获得了来自 Databricks 和 Oracle 的支持。您能否详细介绍下,Spark GraphX 图数据处理库如何从 openCypher 计划获益?

Rathle:该计划最终会实现 Cypher 在 Spark 上运行……或者至少成为 Spark 的图功能组件。现在,在 Spark 上做图查询,主要的选项是 Scala,这不错:Scala 非常强大。(实际上,Cypher 就是用 Scala 实现的。)但是,Cypher 为许多习惯使用 SQL 的数据分析师提供了使用 GraphX 图分析功能的机会,我们为此感到兴奋,因为 Spark 是 Neo4j 很自然的补充。Spark 主要是一个数据科学家获取洞识的工具集,Neo4j 主要是一个在应用程序中实现实时图分析的平台。洞识和行动:很好的互补。

那是我们的愿景和动机。我们同 Databricks 建立了良好的友谊,Databricks 联合创始人兼 CEO Ion Stoica 表示将为 openCypher 提供公共支持服务,对此我们非常高兴。用他的话说:“图处理正成为现代大数据技术栈中不可或缺的部分。Neo4j Cypher 查询语言将极大的加速图数据库的应用。我们希望将 Cypher 的图模式匹配能力带到 Spark 技术栈,使人们可以更方便地进行图查询。”

关于受访者

Philip Rathle是 Neo Technology 的产品副总裁。他热衷于构建优秀的产品,帮助用户应对明天的挑战。在职业生涯的头十年,他为世界上其中一些最大的公司构建信息解决方案:首先是在埃森哲,然后是在 Tanning Technology,后者是当时世界上顶尖的数据库咨询服务公司之一,他作为解决方案架构师,主要关注数据仓库和 BI 战略。

查看英文原文: Philip Rathle on Neo4j 2.3 Graph Database Features and openCypher Initiative

2015-12-10 16:162192
用户头像

发布了 1008 篇内容, 共 438.5 次阅读, 收获喜欢 346 次。

关注

评论

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

苹果电脑软件开发工具:Xcode 15全新发布

Rose

编程开发 Xcode Mac版 Xcode 15

SnailSVN Mac版:从 Finder 的上下文菜单中快速访问各种最常用的 SVN 功能

Rose

Mac软件 SVN客户端 SnailSVN Pro下载 Subversion(SVN)客户端

AI力量:如何让测试更智能更高效

测试人

软件测试

在 GraalVM 静态编译下无侵入实现可观测探索

阿里巴巴云原生

Java 阿里云 云原生

苹果电脑3D壁纸屏保 Screen Wonders动态壁纸

Rose

动态壁纸 Screen Wonders壁纸 苹果电脑屏保 mac屏保

IntelliJ IDEA 2023:智能编码,让开发更高效!

Rose

ide 编程开发 IntelliJ IDEA 2023破解 IntelliJ IDEA 2023 IDEA 2023激活码

工业物联网App开发:连接未来智能制造的关键

天津汇柏科技有限公司

数字化转型 工业物联网

flowjo 10破解版图文教程 flowjo 10 mac专业的细胞分析工具

Rose

mac软件下载 流式细胞分析软件 FlowJo 10下载 FlowJo 10破解版

Puppet 2024年度报告:平台工程发掘 DevOps 无限潜质

SEAL安全

DevOps 平台工程 puppet

教你用python爬取『京东』商品数据,原来这么简单!

技术冰糖葫芦

API 接口

达芬奇调色软件破解版 davinci resolve 18.6.6最新中文安装包

Rose

DaVinci Resolve 破解 DaVinci Resolve18下载 达芬奇下载 达芬奇视频调色

全智能深度演进,一键成片让视频创作颠覆式提效

阿里云CloudImagine

云计算 媒体 云剪辑

Puppeteer实践:复杂的问题简单化

南城FE

JavaScript 前端 nodejs puppeteer

Yummy FTP Pro for mac中文直装版 最可靠的ftp文件传输工具

Rose

Mac软件 文件传输工具 ftp传输 Yummy FTP Pro 破解版 Yummy FTP Pro 下载

如何使用 NFTScan NFT API 在 Blast 网络上开发 Web3 应用

NFT Research

API NFT\ NFTScan

cURL 命令全面解析:提高工作效率

Apifox

程序员 前端 后端 API curl

源码解析丨一次慢SQL排查

GreatSQL

慢查询

霍格沃兹测试开发学社,全方位的测试解决方案提供商

霍格沃兹测试开发学社

低代码无法取代程序员,但为什么很多程序员却反感低代码?

天津汇柏科技有限公司

程序员 低代码 数字化转型

人工智能如何让测试更智能更高效?

霍格沃兹测试开发学社

章文嵩等技术大咖共同探讨企业数据治理和降本增效策略运用!

AutoMQ

#云原生 KubeBlocks #Kafka #OceanBase #AutoMQ

想在Mac电脑上畅玩Windows游戏,那就试试CrossOver 24虚拟机吧!

Rose

CrossOver 24 CrossOver 24虚拟机 如何在Mac运行win 苹果电脑虚拟机软件

keyshot2023怎么保存低版本(keyshot2023下载安装教程)

Rose

KeyShot2023pro安装包 keyshot2023下载

Hype 4 Pro:打造惊艳HTML5动画与交互设计的全能之选

Rose

html5 网页制作 交互设计工具 Hype 4 Pro破解版 Hype 4 Pro下载

抢先一步,获取最全测试开发岗求职攻略

霍格沃兹测试开发学社

Philip Rathle谈Neo4j 2.3图数据库新特性和openCypher计划_语言 & 开发_Srini Penchikala_InfoQ精选文章