2016-09-13 7 views
1

私はpyorientのバイナリシリアライザ(development branch内)でorientdb community edition 2.2.9を使用しています。分散内のOrientDBがConcurrentModificationExceptionを取得し続ける

私はAWS上で3つのノードを実行しています。

私は書き込み/読み取りのマスターとして1つのノードを使用しており、読み取りと複製のための他のノードは使用していません。

私は次のようにノードを構成しています

<properties> 
    <entry value="2147483647" name="ridBag.embeddedToSbtreeBonsaiThreshold"/> 
    <entry value="-1" name="index.embeddedToSbtreeBonsaiThreshold"/> 
</properties> 

ドキュメントのMVCC例は本当に私を助けていないので、私はJavaを使用していませんよ。

私はまた、トランザクションを使用していないと私は次のパラメータを使用してサーバーを起動します。

java -Dcache.level1.enabled=false -Ddb.mvcc=false 

私はあなたが任意のより多くのように、私はMVCCの設定は無用であることを前提としていMVCCを無効にすることはできませんドキュメントを読み込みます。

タスクをキューに入れるためにrabbitmqとセロリを使用します。通常モードでorientDBを実行しているときに、 "ConcurrentModificationException"というエラーが発生した場合、セロリはそのタスクを再試行し、通常成功します。 モードを実行すると、頂点のバージョンが決して一致しないように見えるため、そのタスクは失敗し続けます。

私は何をしても構いませんが、私は "ConcurrentModificationException"を得ています。

mvccがまだ有効になっていることがconfigでわかります。

ドキュメンテーションが示唆したすべてを試したと思っていましたが、分散モードで動作することのニュアンスはすべてドキュメント上に散らばっています。それは私がこの問題を回避するにはどうすればよい:(

何かを欠場するので、簡単です?1に「writeQuorum」を設定

+1

あなたの他の質問に対する答えは、[OrientDBはレコードを無期限にロックしています](http://stackoverflow.com/a/39503578/6290625)にも役立ちます。 –

答えて

0

が私のために、この問題を修正しました。また、「非同期」も作成した問題として、「実行モード」を実行している。

ここで

.... 
<handler class="com.orientechnologies.orient.server.hazelcast.OHazelcastPlugin"> 
    <parameters> 
     .... 
     <parameter value="com.orientechnologies.orient.server.distributed.conflict.ODefaultReplicationConflictResolver" name="conflict.resolver.impl"/> 
     .... 
    </parameters> 
</handler> 
... 

物事が私のために働いて得たデフォルト・分散DB-config.jsonをさ

012:

また、またこの問題に貢献したかもしれない私の設定から次取り除きます。

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

私はそれが誰かを助けてくれることを願っています。

関連する問題