Запись версии после конфликта - PullRequest
0 голосов
/ 13 июня 2018

Я использую Orientdb 2.2.35.Я вставляю в него некоторые документы до возникновения конфликта.Когда я проверяю версию записи, она не менялась во время вставки (после конфликта).В моем примере вы можете увидеть версию # 18: 0 после того, как я вставлю ребро (create edge mye from #18:0 to #19:0)

Ошибка:

com.orientechnologies.orient.core.exception.OConcurrentModificationException: Невозможно ОБНОВИТЬ запись # 18: 0, поскольку версия не самая последняя.Возможно, вы обновляете старую запись или она была изменена другим пользователем (db = v2 your = v1)

orientdb {db=TestDB}> select * from #18:0

+----+-----+------+----+------------------------------------------------------------------------+
|#   |@RID |@CLASS|id  |out_MyE                                                                 |
+----+-----+------+----+------------------------------------------------------------------------+
|0   |#18:0|MyV   |1   |[#22:0,#22:1,#22:2,#22:3,#22:4,#22:5,#22:6,#22:7,#22:8,#22:9(size=5000)]|
+----+-----+------+----+------------------------------------------------------------------------+

1 item(s) found. Query executed in 0.002 sec(s).
orientdb {db=TestDB}> load record #18:0

DOCUMENT @class:MyV @rid:#18:0 @version:2
+----+-------+------------------------------------------------------------------------+
|#   |NAME   |VALUE                                                                   |
+----+-------+------------------------------------------------------------------------+
|0   |id     |1                                                                       |
|1   |out_MyE|[#22:0,#22:1,#22:2,#22:3,#22:4,#22:5,#22:6,#22:7,#22:8,#22:9(size=5000)]|
+----+-------+------------------------------------------------------------------------+

OK
orientdb {db=TestDB}> create edge mye from #18:0 to #19:0

+----+--------+------+-----+-----+
|#   |@RID    |@CLASS|out  |in   |
+----+--------+------+-----+-----+
|0   |#22:5250|MyE   |#18:0|#19:0|
+----+--------+------+-----+-----+
Created '1' edges in 0.017000 sec(s).

orientdb {db=TestDB}> select * from #18:0

+----+-----+------+----+------------------------------------------------------------------------+
|#   |@RID |@CLASS|id  |out_MyE                                                                 |
+----+-----+------+----+------------------------------------------------------------------------+
|0   |#18:0|MyV   |1   |[#22:0,#22:1,#22:2,#22:3,#22:4,#22:5,#22:6,#22:7,#22:8,#22:9(size=5001)]|
+----+-----+------+----+------------------------------------------------------------------------+

1 item(s) found. Query executed in 0.001 sec(s).
orientdb {db=TestDB}> load record #18:0

DOCUMENT @class:MyV @rid:#18:0 @version:2
+----+-------+------------------------------------------------------------------------+
|#   |NAME   |VALUE                                                                   |
+----+-------+------------------------------------------------------------------------+
|0   |id     |1                                                                       |
|1   |out_MyE|[#22:0,#22:1,#22:2,#22:3,#22:4,#22:5,#22:6,#22:7,#22:8,#22:9(size=5001)]|
+----+-------+------------------------------------------------------------------------+

OK

1 Ответ

0 голосов
/ 13 июня 2018

Это распространенная проблема, вызванная неправильным подходом к параллелизму или транзакциям.Вам нужно будет устранить причину и либо написать отказоустойчивый код, либо изменить уровень согласованности графиков

OrientDB |Устранение неполадок OConcurrentModificationException

...