ZODB モジュールを使用して構築した 3 つの Python オブジェクト データベースがあり、それらを 1 つにマージしたいと考えています。1 つではなく 3 つある理由は、各オブジェクトが 3 つの集団の 1 つに属し、コードがそのオブジェクトの分析を実行するとデータベースに追加されたためです。各オブジェクトの分析は、確実に並行して実行できます。私のコードは実行に数日かかるため、これが 1 週間に及ぶ作業にならないように、3 台のコンピューターでそれぞれ 3 つの母集団のいずれかからオブジェクトを処理し、完了すると 1 つの ZODB データベースを出力します。ZODB が競合を処理する方法が原因で、3 台のコンピューターで異なる母集団からのオブジェクトの分析を同じデータベースに追加することはできませんでした。基本的に、データベースを閉じるまでは内部からロックされています。
私の質問は次のとおりです。1) 複数の .fs データベース ファイルを単一のマスター データベースにマージするにはどうすればよいですか? 各データベースの構造はまったく同じです。つまり、辞書構造はそれぞれで同じです。例として、MyDB は最初の母集団の ZODB データベース構造を表す場合があります。
root.['MyDB']['ID123456']['property1']
... ['ID123456']['property2']
... ... ...
root.['MyDB']['ID123457']['property1']
... ['ID123457']['property2']
... ... ...
...
ここで、省略記号はより多くの同じものを表します。キー「property1」、「property2」などの名前は、データベース内の各「IDXXXXXX」キーですべて同じですが、値は確かに異なります。
2) 単一の ZODB 構造を生成しながら、このコードを並行して実行するにはどうすればよかったでしょうか?
説明が必要な場合はお知らせください。
ありがとう!