SAN (共有エリア ネットワーク) 上に Lucene インデックスがあり、複数のマシンに分散された lucene の複数のインスタンスで使用されています。lucene のインスタンスであるインデックスを更新すると、ドキュメントの追加または更新が行われ、nativeFSLock が作成されます。これにより、他のユーザーが同時に書き込むことができなくなります。これは正常に機能します。
問題は、更新を含むバッチを lucene の任意のインスタンスに送信できるようにしたいということです。すべての更新を実行してからロックを解除したいと考えています。Lucene.net には addDocuments メソッドはなく、AddDocument のみです。そのため、すべてのドキュメントをループして、一度に 1 つずつ追加する必要があります。1 つのドキュメントが追加されるとすぐに、lucene はロックを解放し、次のファイルのために新しいロックを作成します。したがって、他の誰かが同時にドキュメントを更新または追加しようとすると、その短い時間内にロックを正常に取得することがあり、それが発生すると、バッチの一部のみが通過します (競合状態)。
ロックを取得し、バッチ全体が完了するまでロックを解除したくないのですが、何か提案はありますか?
よろしくお願いします