1
arangodb 2.6.2を使用しています。挿入操作/更新操作は、arangodbでの読み取り操作をロックします
2集合AとB
FOR a in A INSERT {'x':1} in B
上記AQLが実行されている、私の次のクエリブロックがあるとしましょう:私は、読み取りのロックを回避することができますどのように
FOR b in B return b
は、別のスレッドで変更しています。
arangodb 2.6.2を使用しています。挿入操作/更新操作は、arangodbでの読み取り操作をロックします
2集合AとB
FOR a in A INSERT {'x':1} in B
上記AQLが実行されている、私の次のクエリブロックがあるとしましょう:私は、読み取りのロックを回避することができますどのように
FOR b in B return b
は、別のスレッドで変更しています。
ロックなしの書き込みは、現時点では残念ながら不可能です。
私たちは3年前にArangoを構築し始めたので、最初にコレクションロックを使用するよう設計しました。
この決定はいくつかのことを簡単にしましたが、特にあなたの例のように長い実行クエリでは痛いです。
しかし、いくつかのマイルストーンに達するとこれを変更する予定です。 3.0が最も重要だったので、今ロックするものをターゲットにします。
私たちは今年の後半にこのために開発を終えることを願っています。
書き込み中に読み込みロックされますか? –
概念的には、ロックには読み取りロックと書き込みロックの2種類があります。コレクションが書き込み用にロックされている場合は、コレクションを別のクエリでロックすることはできません。内部的には、カウンターがあり、カウンターが各リーダーによって1ずつ増加し、読み取りが完了すると1ずつ減少します。書き込みロックは、このカウンタが0の場合にのみ取得でき、誰もそれ以上読み取りを行っていません。それにもかかわらず、同時読み取りが可能です。 – CoDEmanX