Is there a best practice around configuration for a cluster of two nodes?
Should it be three nodes minimum? The cluster nodes are all in the same
Azure region with latency of < 0.2ms on average. This occurred four times
today already. Here is my default-distributed-db-config.json file:
{
"autoDeploy": true,
"hotAlignment": false,
"executionMode": "synchronous",
"resyncEvery": 15,
"readQuorum": 1,
"writeQuorum": 2,
"failureAvailableNodesLessQuorum": false,
"readYourWrites": true,
"clusters": {
"internal": {
},
"index": {
},
"*": {
"servers" : [ "<NEW_NODE>" ]
}
}
}
Any assistance is appreciated. Thank you.
Amir.
On Wednesday, April 29, 2015 at 8:36:30 AM UTC-5, Amir Khawaja wrote:
>
> Hi Everyone,
>
> I have a 2-node cluster running OrientDB 2.0.8 Community Edition. The
> following error appeared in the log early this morning and the database
> stopped responding to requests. Any thoughts? Is this a bug?
>
> 2015-04-29 12:24:20:606 WARNING [orientdb01] detected 1 node(s) in timeout
> or in conflict and quorum (2) has not been reached, rolling back changes
> for request (id=860294 from=orientdb01 task=tx userName=)
> [ODistributedResponseManager]
> 2015-04-29 12:24:20:606 WARNING [orientdb01] Quorum 2 not reached for
> request (id=860294 from=orientdb01 task=tx userName=). Timeout=8ms Servers
> in timeout/conflict are:
> - orientdb02: [#36:95960 v.5090]
> Received: {orientdb01=[#36:95980 v.4302], orientdb02=[#36:95960 v.5090]}
> [ODistributedResponseManager]
> 2015-04-29 12:24:20:606 WARNING [orientdb01] sending undo message for
> request (id=860294 from=orientdb01 task=tx userName=) to server orientdb01
> [ODistributedResponseManager]
> 2015-04-29 12:24:20:610 WARNING [orientdb01] sending undo message for
> request (id=860294 from=orientdb01 task=tx userName=) to server orientdb02
> [ODistributedResponseManager]Sent run-time exception to the client /
> 10.0.0.17:35030:
> com.orientechnologies.orient.server.distributed.ODistributedException:
> Error on executing distributed request (id=860294 from=orientdb01 task=tx
> userName=) against database 'vis.[visitor]' to nodes [orientdb01,
> orientdb02]
> com.orientechnologies.orient.server.distributed.ODistributedException:
> Error on executing distributed request (id=860294 from=orientdb01 task=tx
> userName=) against database 'vis.[visitor]' to nodes [orientdb01,
> orientdb02]
> at
> com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.send2Nodes(OHazelcastDistributedDatabase.java:194)
> at
> com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin.sendRequest(OHazelcastPlugin.java:365)
> at
> com.orientechnologies.orient.server.distributed.ODistributedStorage.commit(ODistributedStorage.java:902)
> at
> com.orientechnologies.orient.core.tx.OTransactionOptimistic.doCommit(OTransactionOptimistic.java:483)
> at
> com.orientechnologies.orient.core.tx.OTransactionOptimistic.commit(OTransactionOptimistic.java:147)
> at
> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2406)
> at
> com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx.commit(ODatabaseDocumentTx.java:2376)
> at
> com.orientechnologies.orient.core.command.script.OCommandExecutorScript.executeSQLScript(OCommandExecutorScript.java:245)
> at
> com.orientechnologies.orient.core.command.script.OCommandExecutorScript.executeSQL(OCommandExecutorScript.java:146)
> at
> com.orientechnologies.orient.core.command.script.OCommandExecutorScript.executeInContext(OCommandExecutorScript.java:91)
> at
> com.orientechnologies.orient.core.command.script.OCommandExecutorScript.execute(OCommandExecutorScript.java:81)
> at
> com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.executeCommand(OAbstractPaginatedStorage.java:1189)
> at
> com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.command(OAbstractPaginatedStorage.java:1178)
> at
> com.orientechnologies.orient.server.distributed.ODistributedStorage.command(ODistributedStorage.java:248)
> at
> com.orientechnologies.orient.core.command.OCommandRequestTextAbstract.execute(OCommandRequestTextAbstract.java:63)
> at
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.command(ONetworkProtocolBinary.java:1173)
> at
> com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.executeRequest(ONetworkProtocolBinary.java:380)
> at
> com.orientechnologies.orient.server.network.protocol.binary.OBinaryNetworkProtocolAbstract.execute(OBinaryNetworkProtocolAbstract.java:217)
> at
> com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:69)
> Caused by:
> com.orientechnologies.orient.server.distributed.ODistributedException:
> Quorum 2 not reached for request (id=860294 from=orientdb01 task=tx
> userName=). Timeout=8ms Servers in timeout/conflict are:
> - orientdb02: [#36:95960 v.5090]
> Received: {orientdb01=[#36:95980 v.4302], orientdb02=[#36:95960 v.5090]}
> at
> com.orientechnologies.orient.server.distributed.ODistributedResponseManager.manageConflicts(ODistributedResponseManager.java:576)
> at
> com.orientechnologies.orient.server.distributed.ODistributedResponseManager.getFinalResponse(ODistributedResponseManager.java:340)
> at
> com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.waitForResponse(OHazelcastDistributedDatabase.java:364)
> at
> com.orientechnologies.orient.server.hazelcast.OHazelcastDistributedDatabase.send2Nodes(OHazelcastDistributedDatabase.java:191)
> ... 18 more
>
>
> Amir.
>
--
---
You received this message because you are subscribed to the Google Groups
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.