Bisakah HDF5 ditulis dan dibaca secara bersamaan dari proses python yang terpisah?

9

Saya sedang menulis skrip untuk merekam data langsung dari waktu ke waktu menjadi satu file HDF5 yang mencakup seluruh dataset saya untuk proyek ini. Saya bekerja dengan Python 3.6 dan memutuskan untuk membuat alat baris perintah menggunakan clickuntuk mengumpulkan data.

Kekhawatiran saya adalah apa yang akan terjadi jika skrip pengumpulan data menulis ke file HDF5 dan aplikasi ML yang belum-coba mencoba membaca data dari file yang sama?

Saya melihat dokumentasi Grup HDF tentang HDF5 paralel I / O , tetapi itu tidak benar-benar menjelaskan bagi saya.

basse
sumber

Jawaban:

10

HDF5 paralel I / O tidak akan menyelesaikan masalah ini. Teknologi itu terutama ditujukan untuk kinerja, bukan untuk menghindari tabrakan.

Apa yang Anda inginkan dikenal sebagai SWMR (penulis tunggal / banyak pembaca) :

Akuisisi data dan sistem pemodelan komputer sering perlu menganalisis dan memvisualisasikan data saat sedang ditulis. Bukan hal yang aneh, misalnya, bagi aplikasi untuk menghasilkan hasil di tengah proses yang menyarankan beberapa parameter dasar diubah, sensor disesuaikan, atau proses dihapuskan seluruhnya.

Untuk memungkinkan pengguna memeriksa sistem tersebut, kami telah mengembangkan pola akses file baca / tulis bersamaan yang kami sebut SWMR (diucapkan perenang). SWMR adalah kependekan dari penulis tunggal / banyak pembaca. Fungsionalitas SWMR memungkinkan proses penulis untuk menambahkan data ke file sementara beberapa proses pembaca membaca dari file.

SWMR pertama kali dimasukkan dalam HDF5 versi 1.10.0 dirilis pada 2016-03-30

Akses Serentak ke File HDF5 - Pembaca Tunggal / Pembaca Multisel (SWMR)

Fitur Single Writer / Multiple Reader atau SWMR memungkinkan pengguna untuk membaca data secara bersamaan saat menulisnya. Komunikasi antara proses dan penguncian file tidak diperlukan. Proses dapat berjalan pada platform yang sama atau berbeda selama mereka berbagi sistem file umum yang sesuai dengan POSIX.

Stephen Rauch
sumber