并非所有用例都需要水平可扩展性。在这种情况下,OneShard部署提供了一个切实可行的解决方案,通过大量减少集群内部通信来显着提高性能。
启用OneShard创建的数据库仅限于单个DB-Server节点,但仍会同步复制以确保弹性。此配置允许在分片领导上运行具有ACID保证的事务。
对于大多数Graph用例和重连接查询,强烈建议使用此设置。
与分片集群不同,协调器在不同的DB-Server节点上分配对分片的访问,收集和处理部分结果,OneShard设置中的协调器将查询执行直接移动到相应的DB-Server以进行本地查询执行。协调器仅接收最终结果。这可以大大减少协调器的资源消耗和通信工作。
缩放图
对于大于单个DB-Server节点的图,您可以使用SmartGraphs功能有效地限制Coordinator和DB-Servers之间的网络跃点。
数据库创建
为了利用DB-Server节点上的本地执行,您可以创建一个数据库,通过将sharding选项设置为“single”值,默认情况下将集合限制为单个分片。复制因子为3可确保有两个副本用于弹性。
之后,在该数据库中创建集合时,您无需担心其他设置。它们将自动成为同一OneShard配置的一部分。
集群启动选项可用于限制新数据库使用OneShard。
多租户应用程序
要在多租户SaaS应用程序中分离来自不同客户端的数据,您可以使用专用数据库,并且仍然可以通过集群设置利用可用性和扩展优势。
虽然每个客户的数据都适合单个节点,但越来越多的租户增加了扩展集群的需求。OneShard可以将更多节点添加到集群中,同时仍允许查询在单个DB-Server上高效执行。
领导分片上的ACID事务
在ArangoDB中,您可以从可调整的事务保证中受益,您可以在需要时增加这些保证。为确保持久性,waitForSync请在查询级别激活以等待数据修改已写入磁盘。收集选项writeConcern:2确保事务只有在至少一个副本同步时才成功。RocksDB引擎支持大型文档操作的中间提交。为了防止单个查询出现这种情况,您可以相应地增加RocksDB intermediateCommitSize(默认512MB)intermediateCommitCount。在OneShard设置中使用StreamTransactions 和这些提到的选项,您可以获得领导分片上的多文档、多集合ACID事务。
全部0条评论
快来发表一下你的评论吧 !