Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Errors when adding edges using multithread #6963

Closed
wq1101 opened this issue Dec 3, 2016 · 3 comments
Closed

Errors when adding edges using multithread #6963

wq1101 opened this issue Dec 3, 2016 · 3 comments
Assignees
Milestone

Comments

@wq1101
Copy link

wq1101 commented Dec 3, 2016

OrientDB Version, operating system, or hardware.

  • v2.2.13 SNAPSHOT

Operating System

  • [*] Linux

Expected behavior and actual behavior

The same record (rid) had different versions on individual nodes as below:
**orientdb** {db=test_w}> connect remote:t1s1/test_w root 123456

Disconnecting from the database [test_w]...OK
Connecting to database [remote:t1s1/test_w] with user 'root'...OK

CONFIGURED SERVERS
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
|#   |Name    |Status|Connections|StartedOn          |Binary            |HTTP              |UsedMemory       |FreeMemory     |MaxMemory|
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
|0   |govnet02|ONLINE|7          |2016-12-02 17:45:36|192.168.3.202:2424|192.168.3.202:2480|501.40MB (12.51%)|3.43GB (87.49%)|3.92GB   |
|1   |govnet03|ONLINE|5          |2016-12-02 17:46:35|192.168.3.203:2424|192.168.3.203:2480|477.22MB (11.97%)|3.43GB (88.03%)|3.89GB   |
|2   |govnet01|ONLINE|6          |2016-12-02 17:45:17|192.168.3.201:2424|192.168.3.201:2480|1.05GB (27.00%)  |2.84GB (73.00%)|3.89GB   |
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
**orientdb** {db=test_w}> select *, @version from #116:428      

+----+--------+--------------+-----------+----+---------------+-------+
|#   |@RID    |@CLASS        |in_tb_edge1|uid |uname          |version|
+----+--------+--------------+-----------+----+---------------+-------+
|0   |#116:428|tb_multithread|[]         |990 |pool-1-thread-1|33     |
+----+--------+--------------+-----------+----+---------------+-------+

1 item(s) found. Query executed in 0.002 sec(s).

**orientdb** {db=test_w}> connect remote:t1s2/test_w root 123456

Disconnecting from the database [test_w]...OK
Connecting to database [remote:t1s2/test_w] with user 'root'...OK

CONFIGURED SERVERS
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
|#   |Name    |Status|Connections|StartedOn          |Binary            |HTTP              |UsedMemory       |FreeMemory     |MaxMemory|
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
|0   |govnet02|ONLINE|7          |2016-12-02 17:45:36|192.168.3.202:2424|192.168.3.202:2480|513.02MB (12.80%)|3.41GB (87.20%)|3.92GB   |
|1   |govnet03|ONLINE|5          |2016-12-02 17:46:35|192.168.3.203:2424|192.168.3.203:2480|480.41MB (12.05%)|3.42GB (87.95%)|3.89GB   |
|2   |govnet01|ONLINE|6          |2016-12-02 17:45:17|192.168.3.201:2424|192.168.3.201:2480|1.06GB (27.12%)  |2.84GB (72.88%)|3.89GB   |
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
**orientdb** {db=test_w}> select *, @version from #116:428      

+----+--------+--------------+-----------+----+---------------+-------+
|#   |@RID    |@CLASS        |in_tb_edge1|uid |uname          |version|
+----+--------+--------------+-----------+----+---------------+-------+
|0   |#116:428|tb_multithread|[]         |990 |pool-1-thread-1|33     |
+----+--------+--------------+-----------+----+---------------+-------+

1 item(s) found. Query executed in 0.003 sec(s).

 **orientdb** {db=test_w}> connect remote:t1s3/test_w root 123456

Disconnecting from the database [test_w]...OK
Connecting to database [remote:t1s3/test_w] with user 'root'...OK

CONFIGURED SERVERS
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
|#   |Name    |Status|Connections|StartedOn          |Binary            |HTTP              |UsedMemory       |FreeMemory     |MaxMemory|
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
|0   |govnet02|ONLINE|8          |2016-12-02 17:45:36|192.168.3.202:2424|192.168.3.202:2480|522.10MB (13.02%)|3.41GB (86.98%)|3.92GB   |
|1   |govnet03|ONLINE|5          |2016-12-02 17:46:35|192.168.3.203:2424|192.168.3.203:2480|490.20MB (12.29%)|3.42GB (87.71%)|3.89GB   |
|2   |govnet01|ONLINE|5          |2016-12-02 17:45:17|192.168.3.201:2424|192.168.3.201:2480|1.06GB (27.29%)  |2.83GB (72.71%)|3.89GB   |
+----+--------+------+-----------+-------------------+------------------+------------------+-----------------+---------------+---------+
**orientdb** {db=test_w}> select *, @version from #116:428      

+----+--------+--------------+-----------+----+---------------+-------+
|#   |@RID    |@CLASS        |in_tb_edge1|uid |uname          |version|
+----+--------+--------------+-----------+----+---------------+-------+
|0   |#116:428|tb_multithread|[]         |990 |pool-1-thread-1|13     |
+----+--------+--------------+-----------+----+---------------+-------+

1 item(s) found. Query executed in 0.004 sec(s).

orientdb.err on node govnet03

2016-12-03 11:30:32:380 WARNI [govnet03]->[govnet01] Sending undo message (tx-completed origReqId: 2.156164 type: fix (3 ops) [[fix_record_update(#122:102 v.1 realV.-2147483647), fix_record_update(#121:0 v.191 realV.-2147483457), fix_record_create(#90:642)]]) for request (id=2.156164 task=tx) to server govnet01 [ODistributedResponseManager]
2016-12-03 11:30:32:501 WARNI [govnet03]->[govnet01] Received response from undo message (tx-completed origReqId: 2.156164 type: fix (3 ops) [[fix_record_update(#122:102 v.1 realV.-2147483647), fix_record_update(#121:0 v.191 realV.-2147483457), fix_record_create(#90:642)]]) for request (id=2.156164 task=tx) to server govnet01: result [ODistributedResponseManager]
2016-12-03 11:30:38:867 INFO  [govnet03]<-[govnet02] Error on auto repairing record #89:638 on servers govnet02 (error=com.orientechnologies.orient.server.distributed.task.ODistributedRecordLockedException: Timeout (900ms) on acquiring lock on record #116:428. It is locked by request 1.150669
	DB name="test_w") [OConflictResolverDatabaseRepairer]
2016-12-03 11:30:47:409 WARNI [govnet03]->[govnet02] Sending undo message (tx-completed origReqId: 2.156215 type: fix (3 ops) [[fix_record_update(#106:129 v.1 realV.-2147483647), fix_record_update(#115:128 v.1 realV.-2147483647), fix_record_create(#89:643)]]) for request (id=2.156215 task=tx) to server govnet02 [ODistributedResponseManager]
2016-12-03 11:30:47:709 WARNI [govnet03]->[govnet02] Sending undo message (tx-completed origReqId: 2.156217 type: fix (3 ops) [[fix_record_update(#122:128 v.1 realV.-2147483647), fix_record_update(#121:0 v.191 realV.-2147483457), fix_record_create(#90:645)]]) for request (id=2.156217 task=tx) to server govnet02 [ODistributedResponseManager]
2016-12-03 11:30:48:011 WARNI [govnet03]->[govnet02] Received response from undo message (tx-completed origReqId: 2.156215 type: fix (3 ops) [[fix_record_update(#106:129 v.1 realV.-2147483647), fix_record_update(#115:128 v.1 realV.-2147483647), fix_record_create(#89:643)]]) for request (id=2.156215 task=tx) to server govnet02: result [ODistributedResponseManager]
2016-12-03 11:30:48:012 WARNI [govnet03]->[govnet02] Received response from undo message (tx-completed origReqId: 2.156217 type: fix (3 ops) [[fix_record_update(#122:128 v.1 realV.-2147483647), fix_record_update(#121:0 v.191 realV.-2147483457), fix_record_create(#90:645)]]) for request (id=2.156217 task=tx) to server govnet02: result [ODistributedResponseManager]
2016-12-03 11:30:49:614 INFO  [govnet03]->[[govnet02, govnet01, govnet03]] Auto repairing completed. Sent 2 fix messages for 17 records (reqId=2.156225) [OConflictResolverDatabaseRepairer]

Steps to reproduce the problem

config/default-distributed-db-config.json

{
  "autoDeploy": true,
  "readQuorum": 1,
  "writeQuorum": "all",
  "executionMode": "synchronous",
  "readYourWrites": false,
  "newNodeStrategy": "dynamic",
  "servers": {
    "*": "master"
  },
  "clusters": {
    "internal": {
    },
    "*": {
      "servers": ["<NEW_NODE>"]
    }
  }
}

databases/test_w/distributed-config.json

{"@type":"d","@version":0,"autoDeploy":true,"readQuorum":1,"writeQuorum":"all","executionMode":"synchronous","readYourWrites":false,"newNodeStrategy":"dynamic","servers":{"@type":"d","@version":0,"*":"master"},"clusters":{"@type":"d","@version":0,"internal":{"@type":"d","@version":0},"*":{"@type":"d","@version":0,"servers":["govnet02","govnet03","govnet01","<NEW_NODE>"]},"orole_0":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"orole_1":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"ofunction_0":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"ofunction_1":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"osequence_0":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"osequence_1":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"oschedule_0":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"oschedule_1":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_2":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_7":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_8":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_5":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_6":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_17":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_16":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_15":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"v_14":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_22":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_13":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_12":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_21":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_11":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_10":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"v_23":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"ouser_0":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"ouser_1":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_18":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_17":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_19":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_8":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_15":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_20":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_16":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_21":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_22":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_13":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_23":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_14":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"e_11":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_12":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_1":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"e_10":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_18":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_19":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_16":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_17":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_14":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_15":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_2":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_1":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_multithread_4":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_3":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_6":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_22":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_13":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_5":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_12":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_multithread_21":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_edge1_10":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_edge1_9":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_edge1_8":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_edge1":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_edge1_5":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_edge1_4":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_edge1_7":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_edge1_6":{"@type":"d","@version":0,"servers":["govnet03","govnet02","govnet01","<NEW_NODE>"]},"tb_vertex2":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_vertex2_4":{"@type":"d","@version":0,"servers":["govnet01","govnet02","govnet03","<NEW_NODE>"]},"tb_vertex2_3":{"@

bin/server.sh

ORIENTDB_SETTINGS="-Dstorage.diskCache.bufferSize=8192 -DridBag.embeddedToSbtreeBonsaiThreshold=2147483647"

java code

initiate OrientGraph & ExecutorService :
OGlobalConfiguration.RID_BAG_EMBEDDED_TO_SBTREEBONSAI_THRESHOLD.setValue(Integer.MAX_VALUE);
OGlobalConfiguration.SQL_GRAPH_CONSISTENCY_MODE.setValue("tx");
threadspool.submit(new GraphClientEdge(new OrientGraph(sconn, user, pwd)));

implement Runnable:
String bsql = "create edge tb_edge1 from " +
        "(select from tb_multithread where uid="+ (lseq) + ") to " +
        "(select from tb_multithread where uid="+ (lseq+lrandom) + ") set " +
        "tag ='" + Thread.currentThread().getName() + System.currentTimeMillis() +"' " +
        "retry 20 wait 1000\n";
getGraph.command(new OCommandSQL(bsql)).execute();
getGraph.commit();
@wq1101
Copy link
Author

wq1101 commented Dec 3, 2016

conflictstrategy: version

@lvca lvca self-assigned this Dec 5, 2016
@lvca
Copy link
Member

lvca commented Dec 27, 2016

Could you please try with 2.2.14? We fixed an issue with replication.

@lvca
Copy link
Member

lvca commented Jan 30, 2017

I'm closing this issue because of no response since a while. In case the issue is still valid, please reopen/comment this. Thanks.

@lvca lvca closed this as completed Jan 30, 2017
@lvca lvca added this to the 2.2.16 milestone Jan 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

2 participants