似乎我无法使用集群模式与OrientDB 2.1.9 GA一起正常工作。
以下是我设置3台服务器的方法: 1.在所有3个上安装OrientDB 2.在第一个(主)服务器上初始化我的数据库。这是一个SQL脚本,可以创建我的所有顶点和边类,索引等。 3.更新第一个(主)服务器上的分布式配置/ hazelcast.xml,并使用dserver.sh重新启动它 4.更新其他服务器上的分布式配置/ hazelcast.xml,并使用dserver.sh
重新启动它们服务器相互通信,我可以看到第一台服务器将数据库传输到另外两台服务器。
我可以在所有3个IP地址上访问OrientDB工作室,但查询运行速度非常慢,经过仔细检查后,我会看到shell输出中的错误。运行我的代码来创建新记录,我遇到了更多的错误。
以下是我在shell中看到的消息示例:
JsonUtils.safeEval(jsonString);
至于Java中引发的错误,这就是我得到的:
2016-01-26 13:58:12:445 WARNI [node1453810302941] timeout (9004ms) on waiting for synchronous responses from nodes=[node1453812260180, node1453810302941, node14
53812479735] responsesSoFar=[] request=id=85 from=node1453810302941 task=record_read(#11:0) [OHazelcastDistributedDatabase]
2016-01-26 13:58:12:445 WARNI [node1453810302941] no response received from local node about request id=85 from=node1453810302941 task=record_read(#11:0) [ODistributedResponseManager]
2016-01-26 13:58:12:446 WARNI [node1453810302941] detected 3 node(s) in timeout or in conflict and quorum (2) has not been reached, rolling back changes for request (id=85 from=node1453810302941 task=record_read(#11:0)) [ODistributedResponseManager]
2016-01-26 13:58:12:446 WARNI [node1453810302941] Quorum 2 not reached for request (id=85 from=node1453810302941 task=record_read(#11:0)). Elapsed=9018ms No server in conflict. Received: {node1453812260180=waiting-for-response, node1453810302941=waiting-for-response, node1453812479735=waiting-for-response} [ODistributedResponseManager]
作为旁注,在我的distributed-config.json中,readQuorum的当前值为“1”。对于3台服务器,我假设我需要将其设置为“2”以保证不读取陈旧值?