ArangoDB 3.5:流事务API、搜索性能大幅提升、最短路径功能
ArangoDB 3.5 发布了。ArangoDB 是一个分布式原生的多模型数据库,具有灵活的文档、图形和键值数据模型。使用方便的 SQL 查询语言或 JavaScript 扩展构建高性能应用程序。
此版本亮点包括:
- 期待已久的 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 路径功能提供查询两个给定顶点之间的所有最短路径的选项,根据路径长度或路径权重返回排序结果。
在上图的欧洲铁路的例子中,可以查询伦敦和格拉斯哥之间旅行的最短距离、最少停靠或最便宜的票价,具体取决于在边缘存储的信息。还可以想象一下将 k-shortest 路径功能运用到网络管理与威胁情报等方面。
新的 PRUNE 关键字是 AQL 图遍历查询中 FILTER 的替代方法,使用 PRUNE 允许用户减少遍历查询必须查找的文档数量。PRUNE 在图遍历中表现为停止条件,告诉遍历在满足给定条件时停止并返回完整结果路径。
数据遮掩(Data Masking):适用于 GDPR 和 CCPA 兼容的测试和开发
在生产环境中测试新版本或新功能是很有必要的,但是,将用户名称、生日、电子邮件地址或信用卡信息等敏感数据从高度安全的生产系统导出到安全性很低的测试和开发环境,通常是不可能的,或者会导致 GDPR/CCPA(欧盟《一般数据保护条例》/《加利福尼亚州消费者隐私保护法案》)合规性问题。
ArangoDB 中新的 Data Masking 功能允许定义要进行模糊处理的敏感数据,然后生成这些集合的“掩数据”,导出以用于测试或开发目的。
此外,快速一致的集群备份功能将在下个版本 3.5.1 中出现。
ArangoDB 3.5:流事务API、搜索性能大幅提升、最短路径功能的更多相关文章
- kafka系列九、kafka事务原理、事务API和使用场景
一.事务场景 最简单的需求是producer发的多条消息组成一个事务这些消息需要对consumer同时可见或者同时不可见 . producer可能会给多个topic,多个partition发消息,这些 ...
- jackson 流式API
http://www.cnblogs.com/lee0oo0/articles/2652528.html Jackson提供了三种可选的JSON处理方法 1.流式API com.fasterx ...
- 为什么从REST转向gRPC 需要流式传输搜索结果,也就是在有第一批结果时就开始传输
https://mp.weixin.qq.com/s/aEO3Y8SkObNgfQU3z8sH2w 我们为什么从REST转向gRPC 原创 Levin Fritz InfoQ 2019-06-23 作 ...
- ASP.NET Web API 提升性能的方法实践
ASP.NET Web API 是非常棒的技术.编写 Web API 十分容易,以致于很多开发者没有在应用程序结构设计上花时间来获得很好的执行性能. 在本文中,我将介绍8项提高 ASP.NET Web ...
- API Gateway性能比较:NGINX vs. ZUUL vs.Cloud Gateway vs. Linkerd[译]
2018-03-04 15:07 联发科的反思 前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay elik 博士写的一篇文章(链接在 ...
- 分布式事务(二)Java事务API(JTA)规范
一.引子 既然出现了分布式场景(DTP模型), 大java也及时制定出一套规范来给各大应用服务器.数据库/mq等厂商使用,以方便管理互通--->JTA闪亮登场.JTA(Java Transact ...
- API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd(转)
前几天拜读了 OpsGenie 公司(一家致力于 Dev & Ops 的公司)的资深工程师 Turgay Çelik 博士写的一篇文章(链接在文末),文中介绍了他们最初也是采用 Nginx 作 ...
- API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd API 网关出现的原因
API网关性能比较:NGINX vs. ZUUL vs. Spring Cloud Gateway vs. Linkerd http://www.infoq.com/cn/articles/compa ...
- 微博达人硅谷之歌:Testin云測移动搜索性能測试非常是让人信服
微博达人硅谷之歌:Testin云測移动搜索性能測试非常是让人信服 2014/10/08 · Testin · 开发人员訪谈 2013年11月1日,谷歌运行董事长施密特(Eric Emerson Sch ...
随机推荐
- SG函数(斐波那契博弈) Fibonacci again and again
https://zhuanlan.zhihu.com/p/53948422 HDU - 1848 将这篇文章认真的看了一遍 ,虽然不是很懂 ,但是脑子里有了一个模型,链接里的图 (看的顺序 是 0,1 ...
- Java基础语法(11)-面向对象之关键字
title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...
- 密钥对格式转换:JKS到PEM
此处脚本用途:Tomcat的JKS转换成Nginx的PEM格式. #!/bin/bash export JKS=$1 export PASS=$2 NAME=$(basename "$JKS ...
- 使用 nodejs 对文件进行批量重命名
0. 前言 从B站下载了一点视频,硕鼠自动将标题添加到了每个文件名的前面,导致文件名过长,不方面查看文件的具体内容. 虽然只有二十几个文件,但是手动删除前缀还是个不小的工作量,还有可能删除错误.考虑到 ...
- 快,学会 shell
本文分成入门篇和基础篇.基础篇包括变量.字符串处理.数学运算三部分.基础篇包括流控制.函数和函数库三部分.主要是基于例子进行讲解,其中有 4 个复杂一点的脚本,看懂了也就入门了. 我们先来聊一聊 sh ...
- markdown怎么上传图片
将图片转为base64格式 , 在线转换地址link 语法格式 // 方式1  // 方式2 ![picture][img] [img]:base64密钥
- ELK 是什么?
ELK 是什么? 2018年07月04月 09:37:46 ...
- 基于redis的订单号生成方案
目前,比较火的nosql数据库,如MongoDB,Redis,Riak都提供了类似incr原子行操作. 下面是PHP版的一种实现方式: <?php /** * 基于Redis的全局订单号id * ...
- Hadoop(一)基本简介
是一个由Apache基金会所开发的分布式系统基础架构. 广义上来说,是一个Hadoop生态圈(由一堆框架.软件组成) 版本介绍 分为社区版和商业版 1.x,2.x,-是并行发展的 1.x : 由一个分 ...
- Kafka,RocketMQ,RabbitMQ部署与使用体验
前言 近期在研究各种消息队列方案,为了有一个直观的使用体验,我把Kafka,RocketMQ,RabbitMQ各自部署了一遍,并使用了最基本的生产与消费消息功能.在部署过程中也遇到一些问题,特此记录. ...