ArangoDB 3.5发布:流事务API、蒙面数据、搜索性能大幅提升、最短路径功能

ArangoDB 3.5 发布了。ArangoDB 是一个分布式原生的多模型数据库,具有灵活的文档、图形和键值数据模型。使用方便的 SQL 查询语言或 JavaScript 扩展构建高性能应用程序。

640?wx_fmt=png

此版本亮点包括:

  • 期待已久的 Streaming Transactions API,可以直接使用不同的语言驱动运行和管理 ACID 事务(已支持 Java Sync、Go、JavaScript 和 PHP)

  • ArangoSearch 改进,包括可配置分析器、超快速排序索引等

  • 扩展图形数据库功能,如 k-shortest 路径和新的 PRUNE 关键字

  • Data Masking,可以安全地使用模糊的生产数据来实现真实的开发和测试环境

  • Time-To-Live 索引、索引提示和命名索引等更新

  • SmartJoins,可以针对分布式数据运行高效的共址 JOIN 操作(企业版功能)

流事务 API(Streaming Transactions API)

此版本正式引入了流事务 API(Streaming Transactions API),这是一种更简单地使用 ACID 事务的方法,不需要编写任何 JavaScript 代码。使用新的流事务 API,可以直接使用喜欢的语言对 ArangoDB 进行 BEGIN、COMMIT 与 ABORT(回滚)操作,与使用 RDBMS 类似,目前官方已经支持 Java Sync、Go、JavaScript 与 PHP。事务可以包含一系列受支持的事务操作,后跟 commit 或 abort 命令。这允许客户端以比基于 JavaScript 的事务更有效的方式构建更大的事务。

事务可以有许多配置选项,对于调用事务,可以定义以下内容:

  • collections:任何写操作都需要的事务的集合

  • waitForSync:一个可选的 Boolean 标志,用于强制事务在返回之前写入磁盘

  • allowImplicit:允许事务从未声明的集合中读取

  • lockTimeout:允许指定事务完成的最长时间(默认为 10 分钟)

  • maxTransactionSize:如果使用 RocksDB 作为存储引擎(自 ArangoDB 3.4 以来的默认引擎),可以以字节为单位定义事务的最大大小

搜索引擎升级:可配置分析器和超快速排序查询

可配置分析器允许执行区分大小写的搜索、词干分析,并允许使用自己的语言特定的禁用词列表。同时还可以更好地调整 ArangoSearch 查询,包括英语、法语、德语与中文等多种语言。

新的排序索引,包括排序的查询有大幅性能提升。在为 ArangoSearch 创建视图时,现在可以指定创建此新索引并定义哪种排序顺序最适合查询要求(升序/降序)。如果查询中的排序顺序与视图中指定的排序顺序匹配,则可以直接从索引中读取结果并以超快的速度返回结果。内部基准测试表明,这些情况下性能提升高达 1500 倍。

创建排序视图可以通过`arangosh`完成:

db._createView('myView', 'arangosearch', { links : { ... }, primarySort: [ { field: 'myField', direction: 'asc' }, { field: 'anotherField', direction: 'desc' } ] })
db._query('FOR d in myView SEARCH ... SORT d.myField ASC RETURN d`); // no sorting at query time

图形数据库升级:k-shortest 路径和新的 PRUNE 关键字

新的 k-shortest 路径功能提供查询两个给定顶点之间的所有最短路径的选项,根据路径长度或路径权重返回排序结果。

640?wx_fmt=png

在上图的欧洲铁路的例子中,可以查询伦敦和格拉斯哥之间旅行的最短距离、最少停靠或最便宜的票价,具体取决于在边缘存储的信息。还可以想象一下将 k-shortest 路径功能运用到网络管理与威胁情报等方面。

新的 PRUNE 关键字是 AQL 图遍历查询中 FILTER 的替代方法,使用 PRUNE 允许用户减少遍历查询必须查找的文档数量。PRUNE 在图遍历中表现为停止条件,告诉遍历在满足给定条件时停止并返回完整结果路径。

数据遮掩(Data Masking):适用于 GDPR 和 CCPA 兼容的测试和开发

在生产环境中测试新版本或新功能是很有必要的,但是,将用户名称、生日、电子邮件地址或信用卡信息等敏感数据从高度安全的生产系统导出到安全性很低的测试和开发环境,通常是不可能的,或者会导致 GDPR/CCPA(欧盟《一般数据保护条例》/《加利福尼亚州消费者隐私保护法案》)合规性问题。

ArangoDB 中新的 Data Masking 功能允许定义要进行模糊处理的敏感数据,然后生成这些集合的“掩数据”,导出以用于测试或开发目的。

此外,快速一致的集群备份功能将在下个版本 3.5.1 中出现。

更具体的更新内容查看「阅读原文」。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET Core on K8S深入学习(7)Dashboard知多少

本篇已加入《.NET Core on K8S学习实践系列文章索引》,可以点击查看更多容器化技术相关系列文章。在第二篇《部署过程解析与Dashboard》中介绍了如何部署Dashboard,但是没有更多地介绍如何使用Dashboard,本文就来对Dashboard的使用进行补充。…

【学习笔记】Docker - 02. 在容器中运行软件(上)

2.1 控制容器: 构建一个网站监视器 需求: 客户想让你做一个网站, 这个网站需要被紧密的监视, 如果服务器宕机了, 那么它们的团队会收到相关的邮件. 这里用到了3个容器. 第一个运行NGINX; 第二个运行一个叫做mailer的程序. 这两个容器都是detached的. Detached 表示容器将在后台…

lintcode 有效的括号序列

心血来潮,半夜做了一道Lintcode的题目,调试完睡觉,欢迎大家批评指正。 public boolean isValidParentheses(String s) {// Write your code hereStack stacknew Stack();if(s.length()0){return true;}else if(s.length()1){return false;}fo…

2019 年 8 月编程语言排行榜,C#重回增长之路

至于火热的 Python,其占有率还是保持着一如既往的增长势头,由 7 月的 9.260% 上升到现在的 10.020%。C 的占有率则稍有下降,由 6.705% 下降到了 6.057%,C# 和 Visual Basic .NET 分别呈现出增长和下降的趋势。可能是本期榜单没什么…

asp.net core系列 71 Web架构分层指南

一.概述本章Web架构分层指南,参考了“Microsoft应用程序体系结构指南”(该书是在2009年出版的,当时出版是为了帮助开发人员和架构师更快速,更低风险地使用Microsoft平台和.NET Framework设计和构建有效,高质量的应用程…

C#高级语法之泛型、泛型约束,类型安全、逆变和协变(思想原理)

一、为什么使用泛型?泛型其实就是一个不确定的类型,可以用在类和方法上,泛型在声明期间没有明确的定义类型,编译完成之后会生成一个占位符,只有在调用者调用时,传入指定的类型,才会用确切的类型…

谈自由,ASP.NET Core才是未来?

首先我要说一下自己对自由的理解:自由是我可以选择不干什么,但我要保留我可以干什么的可能性。比如说我现在只有一个码农的角色,但我仍然要保留可以扮演其他角色的可能,比如成为一个作者,当我写下文章的时候已经是了&a…

今天,全网曝光这几个公众号

有人统计过,我们平均每天花在看内容上的时间是5-6小时与其每天被各种看过就忘的内容占据时间不如看点真正对你有价值的信息下面小编为你推荐几个高价值的公众号,这些公众号都是专注.NET技术它们提供的信息能真正提高你生活的质量当你迷茫的时候刷刷这些大…

.NET Core 小程序开发零基础系列(1)——开发者启用并牵手成功

最近几个月本人与团队一直与小程序打交道,对小程序的实战开发算比较熟悉,也因一些朋友经常问我各种小程序问题,无不能一一回答,想了很久,决定还是空余时间来写写文章吧,偶尔发现一个人安静的时候写文章特爽…

学习笔记之12个月提升计划

Java世界博大精深,有太多的东西要学。如果一头扎进去,很可能会淹没在Java技术的海洋里。于是,最近一直在思考列一个提纲,作为高级工程师到资深、再到架构之路的路标。 学习笔记一栏,即为本计划的博客记录。将自己的计划…

从“梁漱溟:思考问题有八层境界”所联想到的

最近一段时间以来写的文章比较少了,这固然是有一些客观原因,但确实有我不可说的一些自我反省和认识等主观因素。记得8月初有一次友人聚餐,席间有朋友聊到公众号的运营心得体会,其中有一条是:避免粉丝减少的黄金法则之一…

程序员过关斩将--cookie和session的关系其实很简单

喜欢就点关注吧!月高风下,下班路上....菜菜哥,告诉你一个秘密,但是不允许告诉任何人这么秘密,你有男票了?~不是,昨天我偷偷去面试了,结果挂了这不是好事吗,上天让公司留住你.....好吧…

.NET导出Excel的四种方法及评测

前言导出Excel是.NET的常见需求,开源社区、市场上,都提供了不少各式各样的Excel操作相关包。本文,我将使用NPOI、EPPlus、OpenXML、Aspose.Cells四个市面上常见的库,各完成一个导出Excel示例。然后对其代码风格和性能做一个横向比…

[2021.1.27多校省选模拟10]染色(min-max容斥/二项式反演)

[2021.1.27多校省选模拟10]染色 突然发现我对概率期望的理解不是很好。。。 部分分1:可以直接进行状压dp,然后按照题意模拟即可。 部分分2:首先可以发现这个问题是min_max容斥形式,然后对于min(T)的问题,我们将问题转…

[2021.1.27多校省选模拟10]跑步(线段树合并)

[2021.1.27多校省选模拟10]跑步 经典的树上启发式合并题目,维护对应子树的从当前点到子树内一个节点这个链待定,其他部分已经确定的方案数,这个东西按照对应点到根节点的路径点权和为下标存在一个权值线段树中,然后维护这个权值线…

ASP.NET Core 双因素验证2FA 实战经验分享

必读本文源码核心逻辑使用AspNetCore.Totp,为什么不使用AspNetCore.Totp而是使用源码封装后面将会说明。为了防止不提供原网址的转载,特在这里加上原文链接:双因素认证双因素身份认证就是通过你所知道再加上你所能拥有的这二个要素组合到一起…

结合“性能监视器” 排查、处理性能瓶颈导致应用吞吐率等指标上不去的问题...

双11备战前夕,总绕不过性能压测环节,TPS 一直上不去 / 不达标,除了代码上的问题外,服务器环境、配置、网络、磁盘、CPU 亦是导致性能瓶颈的重要一环,本文旨在分享最近项目性能压测过程中的排查经验,文中的表…

秒半价,限四天!Vostro极致轻薄全能本,助你全能全开!

在信息化时代,电脑就是你工作和创业的“合伙人”!每天比别人多处理几件任务、每天比别人快20分钟,每天比别人少重启和崩溃几次,日积月累获益多到算不过来!小编四处打探,有三款王者电脑重磅优惠,…

【活动】侬好上海,Microsoft Reactor来啦

在美国纽约、旧金山和雷德蒙德,在英国伦敦,在澳大利亚悉尼,在以色列特拉维夫,分别都有这样一处专为开发者打造的宝地,在这些地方:❖ 经常举办各种免费的技术讲座,与大家分享最新技术和产品❖ 频…