如何在ArangoDB中设置集群和分片?

2024-05-04

我想在arangoDB中使用分片。我已经制作了协调器,DBServers,如文档2.8.5中所述。但仍然有人可以详细解释它,以及我如何能够在分片之后和之前检查查询的性能。


可以测试您的应用程序对于本地集群,所有实例都在一台机器上运行吗 https://docs.arangodb.com/Installing/Cluster.html- 如果我没理解错的话,你已经这么做了?

ArangoDB 集群由协调器节点和数据库服务器节点组成。协调器在磁盘上没有自己的用户特定的本地集合。它们的作用是处理客户端的 I/O,解析、优化查询和用户数据并将其分发到数据库服务器节点。 Foxx 服务也将在协调器上运行。 DBServer 是此设置中的存储节点,它们保存用户数据。

要比较集群模式和非集群模式之间的性能,您可以在集群实例和非集群实例上导入数据集,然后比较查询结果时间。由于集群设置可以比单服务器情况有更多的网络通信(即,如果您进行连接),因此性能可能会有所不同。上一个物理分布式集群您可以获得更高的吞吐量 https://mesosphere.com/blog/2015/11/30/arangodb-benchmark-dcos/,因为最终集群节点是自己的机器,并且有自己的 IO 路径,最终位于单独的物理硬盘上。

在集群情况下你创建指定分片数量的集合 https://docs.arangodb.com/Collections/DatabaseMethods.html#create使用numberOfShards范围;这shardKeys参数可以控制文档在分片上的分布。您应该选择该键,以便文档在各个分片之间良好分布(即不会仅在一个分片上不平衡)。这numberOfShards可以是任意值,并且不必与数据库服务器节点的数量相对应 - 它甚至可以更大,以便将来在将集群扩展到更多节点时可以更轻松地将分片从一个数据库服务器移动到新的数据库服务器以适应更高的负载。

当您在开发 AQL 查询时考虑到集群使用时,必须使用解释命令 https://docs.arangodb.com/Aql/Optimizer.html检查查询如何在集群中分布,以及过滤器可以部署在哪里:

db._create("sharded", {numberOfShards: 2})
db._explain("FOR x IN sharded RETURN x")
Query string:
 FOR x IN sharded RETURN x

Execution plan:
 Id   NodeType                  Est.   Comment
  1   SingletonNode                1   * ROOT
  2   EnumerateCollectionNode      1     - FOR x IN sharded /* full collection scan */
  6   RemoteNode                   1       - REMOTE
  7   GatherNode                   1       - GATHER
  3   ReturnNode                   1       - RETURN x

Indexes used:
 none

Optimization rules applied:
 Id   RuleName
  1   scatter-in-cluster
  2   remove-unnecessary-remote-scatter

在这个简单的查询中RETURN & GATHER-节点在协调器上;向上的节点包括REMOTE-node 部署到数据库服务器。

一般情况下较少REMOTE / SCATTER -> GATHER对意味着更少的集群通信。越近FILTER节点可以部署到*CollectionNodes减少通过以下方式发送的文件数量REMOTE- 节点越多,性能越好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在ArangoDB中设置集群和分片? 的相关文章

  • sharding+druid 读写分离

    ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈 它由Sharding JDBC Sharding Proxy和Sharding Sidecar 计划中 这3款相互独立的产品组成 他们均提供标准化的数据分片 分
  • Mongodb使用

    一 注意事项 1 mongodb的32位版本仅支持存储2gb的数据 包括索引等所有数据 而64位则无限制 2 Mongodb使用内存映射数据 存储需要消耗大量的RAM 至少需要满足足够存储所有索引和热数据的物理内存 否则会大大影响性能 3
  • 数据库分片和分区资源

    我正在使用遇到可扩展性问题的数据库模式 该架构中的一个表已增长到大约 1000 万行 我正在探索分片和分区选项 以允许该架构扩展到更大的数据集 例如 10 亿到 1000 亿行 我们的应用程序还必须可部署到多种数据库产品上 包括但不限于 O
  • cassandra 分片和复制

    我是 Cassandra 的新手 不过本文解释分片和复制 我陷入了一个困境 我的本地计算机上配置了一个包含 6 个 Cassandra 节点的集群 我创建一个新的键空间 TestKeySpace 复制因子为 6 并在键空间 employee
  • MySQL 分片方法?

    对 MySQL 表进行分片的最佳方法是什么 我能想到的方法是 应用程序级别分片 MySQL代理层的分片 用于分片的中央查找服务器 您知道该领域有哪些有趣的项目或工具吗 对 MySQL 表进行分片的最佳方法是不要这样做 除非完全不可避免 当您
  • 在 ArangoDB 中使用相同边定义的多个图

    我正在评估 ArangoDB 并尝试创建多个可能包含相同节点集合和相同边集合的图 即使每个图可能包含不同的物理文档和边 然而 当尝试创建一个使用已在另一个图中使用的边集合的图时 我得到 1921 边缘集合已在边缘定义中使用 error 当图
  • 如何在 arangodb 的 AQL 中引用/转义字段名称?

    我找不到在哪里引用其中包含空格的字段名称 例如在执行时 FILTER s key a Supplier Id 上面的 sql 样式引用不起作用 数组访问也不起作用 正确的方法是什么 现在明白了 我被 SQL 咬住了 忘记了相等比较是用 在
  • 当人们谈论使用“分片”扩展网站时,他们是什么意思?

    我曾多次听到关于解决大型网站的扩展问题的 分片 技术 这种 碎片 技术是什么 为什么它这么好 卡尔 塞金有一个好博客 http codebetter com blogs karlseguin archive 2008 06 30 scale
  • 如何解决 Arango 查询承诺错误? [复制]

    这个问题已经存在了 我一直在尝试使用肥皂消息从 Arangodb 获取查询结果到我的前端服务 Angular 4 我能够获得查询结果 但在 console log 中打印出来 但是我如何在这个功能 Service 下获取它 这样我就可以输入
  • moveChunk 未能在数据传输中参与 TO-shard:无法接受新块,因为

    我有一个运行 2 6 5 的 MongoDb 生产集群 我最近将其从两个分片迁移到了三个分片 我已经作为两个分片运行了大约一年 每个分片都是一个 3 服务器副本集 我有一个集合分片 分片集合约为 240G 使用新分片后 我现在在每个分片上均
  • ElasticSearch:未分配的分片,如何修复?

    我有一个有4个节点的ES集群 number of replicas 1 search01 master false data false search02 master true data true search03 master fals
  • ArangoDB 分面搜索性能

    我们正在评估 ArangoDB 在构面计算空间中的性能 还有许多其他产品能够通过特殊的 API 或查询语言执行相同的操作 马克逻辑方面 ElasticSearch 聚合 Solr 分面等 我们知道 Arango 中没有特殊的 API 来显式
  • 分片数据库的 ID 生成(Azure 联合数据库)

    我一直在寻找一些有关 Azure 联合数据库 id 生成 联合 主键 最佳实践的文章或指南 但没有发现任何引人注目的内容 联合表不支持标识列 因此在我看来唯一实用的 id 类型是 GUID 因为尝试集中创建和使用 BigInt 会在应用程序
  • 如何将 AQL 的所有结果合并到具有自定义属性的单个文档中

    我有一个 AQL 查询遍历图 它始终应从一组唯一的集合中返回固定数量的文档 因此每个集合只会发生一次并且仅包含一个文档 我希望将它们全部合并到反映文档集合名称的属性下的单个文档中 查询很简单 FOR v IN ANY vertex key
  • 如何在ArangoDB中存储图像?

    我想将图像作为图像文件存储在 ArangoDb 中 我想知道是否有相同的 API 或 Java API 提前感谢您 在 ArangoDB 中存储二进制数据是一项长期存在的功能请求 https github com arangodb aran
  • 无法启动mongos

    我正在尝试设置简单的分片 在没有任何副本集的单个主机上 但是我无法继续下去 因为当我尝试启动 mongos 时会发生这种情况 C gt mongos configdb localhost 27010 port 27011 I get Bad
  • 在 Solr 6.6 中配置 shardsWhitelist

    需要帮助在 Solr 6 6 中配置 shardsWhitelist 我在 Solr xml 中有以下行
  • ArangoDB 和用户定义的函数或存储过程

    ArangoDB 文档 Foxx 部分 说 由于 Foxx 直接在 ArangoDB 内部运行 因此您可以将处理请求所需的所有数据库查询和逻辑捆绑在一个位置 除了使用 Foxx 框架 之外 还有其他 更原生 的方法来实现与 ArangoDB
  • 转储数据库并以新名称重新导入

    如果我需要使用 MySQL 将数据库 foo 的内容复制到第二个数据库 bar 中 我通常会这样做 mysqldump u root foo gt foo sql mysql u root e CREATE DATABASE bar mys
  • 检索 arangodb 中没有链接边的顶点

    检索相关edge collection中没有边的所有顶点的最佳方法是什么 我尝试使用以下代码 但自 arangodb 2 8 以来 它变得非常慢 在以前的版本中并不是很快 但比现在快了大约 10 倍 对于大约 1000 个边和大约 3000

随机推荐

  • 无法读取文件内容

    我正在尝试读取文件的内容 releaseNotesPath System DefaultWorkingDirectory ccp develop ccp ccp ReleaseNotes ReleaseNotes latestRelease
  • 无法解析类型 android.support.v4.app.Fragment。它是从所需的 .class 文件间接引用的,Facebook [重复]

    这个问题在这里已经有答案了 我想在 Facebook 中发布照片和文本 为此我使用了来自 Facebook 参考站点的以下代码 https developers facebook com docs android link to your
  • 如何将 java.util.Optional 与 REST API 一起使用?

    我有一堂课看起来像 public class ActiveDirectorySetup implements Serializable private ActiveDirectoryDataSource activeDirectoryDat
  • Bash:从给定时间减去 10 分钟

    在 bash 脚本中 如果我有一个代表时间的数字 格式为 hhmmss 或 hmmss 那么减去 10 分钟的最佳方法是什么 即 90000 gt 85000 这有点棘手 日期可以进行一般操作 即您可以执行以下操作 date date 10
  • 我试图使这段代码递归,但由于某种原因它不起作用[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我试图使这
  • 如何调用模块中子程序内部的函数?

    我有一个包含子例程的模块 该子例程又包含一个函数 我说use themodule在我的主程序中 我可以call thesubroutine 但是如何访问子例程中包含的函数呢 代码如下所示 module useful integer para
  • Jquery UI:日期选择器。如何通过 $_GET 在日期选择器中设置日期

    我找不到如何设置 GET 变量来手动设置日期选择器中的日期 http jqueryui com demos datepicker http jqueryui com demos datepicker 例子 那可能吗 Thanks 在此使用
  • 具有服务器端挂钩的托管 Git 解决方案?

    已经有一个类似的 版本控制托管解决方案 带有预提交挂钩 关于SO的问题 然而 提出这个问题的用户只需要客户端钩子 我正在寻找一个允许您配置的 Git 主机服务器端 hooks 我寻找这个的原因是为了防止开发人员能够在特定分支上 push f
  • UISlider 可捕捉到固定的步数(如 iOS 7 设置应用中的文本大小)

    我正在尝试创建一个UISlider让您可以从一组数字中进行选择 每个滑块位置应等距 并且滑块应卡入每个位置 而不是在它们之间平滑滑动 这是滑块的行为Settings gt General gt Text Size 这是在 iOS 7 中引入
  • 指针 (*argv[]) 的指针的指针算术?

    我知道foo bar 等于 foo bar 但是什么是 foo bar 等于 例如访问 argv 2 我对这一点的理解有些困惑 我认为可能是这样的 foo bar 但我不确定 如果这是一个简单的答案 我深表歉意 a b 相当于 a b 由于
  • 如何为 Blazor MapFallbackToFile() 生成正确的错误

    我有一个项目想要用作 Web API 和 Blazor wasm UI 该 API 也可以从其他项目访问 因此我希望该 API 向消费者提供有用的错误详细信息 我现在通过使用该网站来实现这两个目的MapFallbackToFile 方法 但
  • “ng build”将脚本移动到子文件夹

    ng build将文件导出到 dist 文件夹 如下所示 index html main bundle js styles bundle js 我希望脚本位于子文件夹中 index html scripts main bundle js s
  • 取消的分支与常规分支有何不同?

    特别是对于 SPARC Assembly 取消的分支与常规分支有何不同 我一直认为 当我需要填充分支指令的 nop 延迟槽时 需要取消分支指令 但是 我认为我在这一部分上是不正确的 因为您可以在不取消分支的情况下填充 nop 如果不采用分支
  • 使用Redis从有限范围内生成唯一ID

    我有一些数据库项目 除了主键之外 还需要项目所属组的唯一索引 我们来调用属性nbr 以及将项目分组在一起并定义唯一范围的属性nbr 我们会打电话group This nbr必须在 1 N 范围内 并且may从外部源导入项目时进行设置 由于所
  • SQL 错误:字符串或二进制数据将被截断

    我正在一个名为 Telligent 的社区平台上进行集成 我正在使用名为 BlogML 的第 3 方插件将博客文章从 XML 文件 BlogML 格式 导入到我的本地 Telligent 站点中 Telligent 平台在其 SDK 中附带
  • 类型错误:无法读取未定义的属性“_id”

    我在将文档保存到名为的集合的简单发布请求中收到错误 TypeError 无法读取未定义的属性 id books 我的有效负载如下所示 name practical view author DN location room 50 而我只是在做
  • iPhone 拒绝了发布请求 未说明

    iPhone 拒绝了发布请求 内部启动错误 进程启动失败 未指定 这个错误让我抓狂 我似乎无法解决它 我从发现的所有地方都做了以下操作 刷新证书 注销并进入开发者苹果帐户 下载手动证书 删除 Apple 全球证书 重新启动 Mac 和 iP
  • 使用 MVVM 绑定 Xamarin.Forms 中的属性

    我在使用 Xamarin Forms 和 MVVM 制作游戏时遇到问题 游戏中有一艘由用户控制的潜艇 并且有水雷掉落 因此用户必须避开这些水雷 这些地雷是在运行时使用 2 个计时器生成的 因此我用 XAML 中的 CollectionVie
  • 是否值得购买 Mahout in Action 以跟上 Mahout 的速度,或者还有其他更好的来源吗?

    我目前是一个非常随意的用户阿帕奇马胡特 http mahout apache org 我正在考虑购买这本书象夫在行动 http www manning com owen 不幸的是 我很难理解这本书的价值 并且认为它是一本曼宁早期访问计划 h
  • 如何在ArangoDB中设置集群和分片?

    我想在arangoDB中使用分片 我已经制作了协调器 DBServers 如文档2 8 5中所述 但仍然有人可以详细解释它 以及我如何能够在分片之后和之前检查查询的性能 可以测试您的应用程序对于本地集群 所有实例都在一台机器上运行吗 htt