2

我曾在OrientDB图形数据库的项目中工作过。我已经设法填充数据库并且在没有问题的情况下执行查询。但是在我需要使用OrientDB的分布式功能来运行查询之后,我带来了一个重要的(也许是微不足道的)疑问。分布式体系结构中的OrientDB与跨服务器的顶点复制一起使用?

我已经设法使用分布式模式也没有问题,使用3个不同的机器,但我想确保OrientDB真的将我的数据库存储在我已经使用的3台机器中。有什么方法可以检查吗?

当我在研究这个答案时,我得出OrientDB在整个​​机器上复制整个数据库的结论,这是否正确?使用分布式体系结构的目标是提高性能,但是如果OrientDB与复制一起工作,并且在特定机器上运行一个查询,那么查询将使用所有机器进行处理,或者只使用一台机器进行处理?

简而言之,我想知道OrientDB是否使用分布式模式,在机器上分布顶点和边,并使用所有机器处理查询?

我已阅读完整的文档:http://orientdb.com/docs/2.0/orientdb.wiki/Distributed-Architecture.html并找不到这个问题的明确解释。

在此先感谢!

+0

请参阅:http://orientdb.com/docs/last/Replication.html和http://orientdb.com/docs/last/Distributed-Sharding.html –

+0

嗨@OleksandrGubchenko感谢您的帮助。我已经看到了这些链接,但我无法真正了解OrientDB是否跨所有机器复制整个数据库,还是分发顶点和边? –

回答

1

OrientDB默认情况下会复制所有服务器上的整个数据库。你在找什么叫做"Sharding"。 OrientDB支持手动分片(将来会自动),这意味着您(应用程序)可以决定存储顶点/边的位置。

+0

非常感谢您的回答! –

+0

关于性能改进,如果我在分布式模式下运行查询而不进行分片,那么处理将在所有机器上完成?可能不正确? –

+1

没有分片意味着所有的服务器都有相同的数据,对吧?出于这个原因,由于性能原因,查询只在本地服务器上执行。您可以使用ROUND_ROBIN连接策略将您的客户端连接到N台服务器,因此无论如何您都将使用所有服务器。 – Lvca

相关问题