NoSQL分布式数据库的独家见解- Adam Fowler-程序员宅基地

技术标签: python  ldap  数据库  

我查看了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

转载于:https://my.oschina.net/u/3491128/blog/1498848

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33933118/article/details/92389653

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法