文档章节

NoSQL分布式数据库的独家见解- Adam Fowler

GermanWifi
 GermanWifi
发布于 2017/08/01 16:17
字数 1567
阅读 63
收藏 3

我查看了ArangoDB混合文档和图形存储的最新测试版...

ArangoDB是一个混合或多模型的NoSQL文档和图形存储。这为项目开发提供了很大的灵活性和力量。自从他们开始以来,我一直在关注ArangoDB,如今已有3年多,所以现在我们来一起看看有什么有趣的更新:

 

有什么更新?

最大的变化是使用Facebook的RocksDB键值存储作为存储引擎(我将在以后的文章中分别回顾RocksDB)。这是一个巨大的变化,需要在应用程序中进行负载测试,因为一致性和锁定功能与以前的mmfiles方法不同。
此外,MongoDB客户在将WiredTiger引入存储引擎时发现,人们将始终想要测试和重新测试新的存储层,以寻找意外的回归和性能问题。
但是这确实是一个积极的更新,允许文档级锁定,并可以防止写入阻塞读取,反之亦然。这将大大提高在高写入和读取负载下的性能。

Pregel图形处理模型的支持将是开发人员的福音。想像这样一个有效的Map / Reduce版本,用于跨整个群集数据传播的图形算法。有趣的是,您可以选择单节点或集群执行。某些图形算法需要在单个机器上运行所有数据,所以使图形爱好者拥有自由选择的快乐!


企业版也受益于LDAP安全支持,闲时加密。这是许多敏感型企业客户,如银行和政府的福音。

Satellite Collections(仅限企业版)是一个很好的新功能,您可以指导引擎使用副本进行处理,从而无需网络跳转来在另一个节点上查找密钥收集数据。这可能听起来不怎么样,但是我可以通过在NoSQL数据库上运行分布式处理算法来告诉你,这将有助于在很大程度上调整大型文档处理算法。

 

我喜欢ArangoDB 什么?

分布式图形存储中的一个大问题是在群集中的多个服务器上图形算法的高效处理。为了使用商业服务器而不是昂贵的大功率服务器,您需要将数据传播出去。当然,对于遵循节点之间的路径的图算法,当您遍历该图时,会引入滞后。

我很高兴看到ArangoDB在这个关键问题上花了大量的时间。如果他们可以在这个版本中用Pregel解决这个问题,那么他们将会超越其他几个竞争对手。

例如,最近添加的SmartGraphs功能(仅限企业版)。这基于已知属性管理图上的节点的分片。考虑一个社交图 - 大多数人在同一个国家有连接(除非你是我,并且写IT!) - 所以根据用户的国家划分一个图表是很好的,通过应用此属性,可以最大限度地减少大多数查询的网络跳数。

结合上面提到的SatelliteCollections(仅限企业版),您可以调整数据存储,以确保快速图形查询,即使图形被分片 - 使用我的国际,喷气式设置,twitter连接来处理像我这样的棘手情况。在与ArangoDB交谈后,他们认为这些功能的组合对于特定的IoT用例将非常有用。如果您发现该组合有用,请为此文章添加评论 - 我很乐意听到不同的声音!

当我第一次写关于ArangoDB在NoSQL 2016的状态,我评估它还不完全符合ACID。这是由于滞后的最终一致的副本。由于其他主服务器上的碎片被标记为“追随者”,因此已经解决了这一点。对主要和主要追随者的更新是同步的,允许数据的高可用性,同时确保符合ACID


这是数据场景关键任务的重中之重,当数据库告诉您保存数据时,您需要确保数据安全地位于光盘上。我只能再次强调,我认为符合ACID对于具有关键任务应用程序需求的企业客户至关重要。

我也喜欢ArangoDB的免费版本使用真正的开源许可证 -  Apache 2.0许可证。与其他供应商使用的AGPL v3不同,该许可证并不限制想要使用该软件的组织,也可以将其定制为生产商业应用程序。

我认为这可能源于我个人对多模型文档和图形库的热爱,ArangoDB的工程团队真的做的很好。而且跟我交谈的每个人似乎都很友善。即使是他们的President也亲自花了时间帮我收集关于这篇文章的信息!

ArangoDB的工程团队也及时考虑到客户的问题和用途,并根据此添加产品新功能,新功能都是参考现实用例而来。


做的不好的方面?


ArangoDB作为键值存储用例与 Redis相比似乎还受局限。

话虽如此,但这是一个很小的困扰,大多数人会使用ArangoDB的文档和图形库功能以及AQL查询语言,因为它们为大多数用例提供了丰富的功能。

 

使用场景有哪些?

牛津大学似乎使用ArangoDB来减少医院出勤和医疗费用,并提高测试结果。其开发了一项手机应用程序,通过在ArangoDB 中存储数据的Node.js应用程序,使用手指式血压计将患者的信息发回NHS信托。这当然意味着你可以有效地跟踪病人,并智慧地决定何时要求他们进入医院,减少NHS的负担。这是一个很好的小例子,但很容易复制到其他问题领域。

更多场景用例

Find ArangoDB on Github

© 著作权归作者所有

共有 人打赏支持
GermanWifi
粉丝 131
博文 16
码字总数 14016
作品 0
德国
程序员
Martin Fowler对于nosql的看法

The rise of NoSQL databases marks the end of the era of relational database dominance NoSQL数据库的崛起标志这个关系型数据库统治时代的终结。 But NoSQL databases will not become ......

PaperHY
2014/03/18
0
0
NoSQL运动:数据库架构抉择

导读:Mike Loukides是O'Reilly传媒的内容战略副总裁,他对编程语言和UNIX系统管理非常感兴趣,著作有System Performance Tuning和Unix Power Tools。本文中,Mike Loukides提出了自己对NoS...

banny30
2012/02/26
0
0
SequoiaDB CTO:企业级NoSQL的发展之路

几年前,经历过NoSQL数据库革命的人也许还记得,web 2.0效应曾引发大批互联网企业竞相上线NoSQL,甚至有一部分企业彻底抛弃传统关系型数据库,将数据全部迁移至NoSQL。NoSQL以其易扩展、高 ...

SequoiaDB2013
2013/09/15
0
0
Redis(一)——NoSQL入门和概述

Redis(一)——NoSQL入门和概述 什么是NoSQL NoSQL=Not Only SQL,意为“不仅仅是SQL”,即非关系型数据库。 NoSQL特点 易扩展 大数据量,高性能 多样灵活的数据模型 Redis核心 KV:键值对 Ca...

ZGYSYY
07/28
0
0
NoSQL开篇——为什么要使用NoSQL

http://nosql-database.org/ NoSQL在2010年风生水起,大大小小的Web站点在追求高性能高可靠性方面,不由自主都选择了NoSQL技术作为优先考虑的方面。今年伊始,InfoQ中文站有幸邀请到凤凰网的...

mickelfeng
2013/02/04
0
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

[MicroPython]STM32F407开发板驱动OLED液晶屏

1.实验目的 1.学习在PC机系统中扩展简单I/O 接口的方法。 2.进一步学习编制数据输出程序的设计方法。 3.学习 F407 Micropython开发板控制OLED显示字符。 2.所需元器件 F407 Micropython开发板...

bodasisiter
29分钟前
0
0
php require和include 相对路径一个有趣的坑

以前总是被教育,不要使用相对路径,这样性能比较差,但是相对路径的问题不仅仅是性能哦,看下面这里例子 这是项目结构 .├── main.php├── t│ ├── t1.php│ └── t2.php└─...

anoty
29分钟前
15
0
x64技术之SSDT_Hook

测试环境: 虚拟机: Windows 7 64bit 过PG工具 驱动加载工具 PCHunter64 系统自带的计算器和任务管理器等 实现思路: 实际思路与win32的思路一样.都是替换SSDT表里边的函数地址.不过微软被搞怕...

simpower
30分钟前
0
0
TreeMap源码分析,看了都说好

一、简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现。TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey、get、put 和 remove 操作,效率很...

Java小铺
41分钟前
0
0
协变、逆变

概念 假设 A、B表示类型 ≤ 表示继承关系 f<⋅>表示类型转换 若A ≤ B,则 A是B的子类,B是A的超类 协变、逆变 什么是型变?型变(type variance)允许对类型进行子类型转换。 为了下面讲解先...

obaniu
47分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部