HDF5は、別個のpythonプロセスによって同時に確実に読み書きできますか?


9

このプロジェクトのデータセット全体が含まれる単一のHDF5ファイルにライブデータを経時的に記録するスクリプトを書いています。私はPython 3.6を使用clickしていて、データの収集に使用するコマンドラインツールを作成することにしました。

私の懸念は、データ収集スクリプトがHDF5ファイルに書き込んでいて、まだ作成されていないMLアプリケーションが同じファイルからデータを読み取ろうとするとどうなるかです。

私はHDF5パラレルI / Oに関するHDFグループのドキュメントを調べましたが、それではあまりわかりませんでした。

回答:


10

HDF5パラレルI / Oはこの問題を解決しません。そのテクノロジーは、衝突回避のためではなく、主にパフォーマンスを目的としています。

知っているしたいですSWMR(シングルライター/マルチ読者は)

データ取得およびコンピュータモデリングシステムでは、データの書き込み中に、データを分析して視覚化する必要があることがよくあります。たとえば、アプリケーションが実行の途中でいくつかの基本的なパラメーターの変更、センサーの調整、または実行全体の廃棄を示唆する結果を生成することは珍しいことではありません。

ユーザーがこのようなシステムをチェックできるようにするために、SWMR(発音スイマー)と呼ばれる同時読み取り/書き込みファイルアクセスパターンを開発しています。SWMRは、単一のライター/複数のリーダーの略です。SWMR機能を使用すると、ライタープロセスがファイルにデータを追加し、複数のリーダープロセスがファイルからデータを読み取ることができます。

SWMRは2016-03-30にリリースされたHDF5バージョン 1.10.0に最初に含まれました

HDF5ファイルへの同時アクセス-シングルライター/マルチリーダー(SWMR)

シングルライター/マルチリーダーまたはSWMR機能により、ユーザーはデータの書き込み中に同時にデータを読み取ることができます。プロセス間の通信とファイルロックは必要ありません。プロセスは、POSIX準拠の共通ファイルシステムを共有している限り、同じプラットフォームまたは異なるプラットフォームで実行できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.