如何在不破坏数据的情况下更新其他程序正在读取的数据文件? Linux / Python

问题描述

我一直在制作一个Python程序,该程序实时将数据累积到.h5文件中,以便其他程序员可以随时读取该文件

我想确保文件被更新而不会损坏,以防其他程序员在添加数据时读取文件

为避免这种情况,我想出了一种解决方案,用于复制($cp)原始文件foo.h5)并创建temp_foo.h5,然后将数据附加到temp_foo.h5,用$mv覆盖(foo.h5temp_foo.h5

为清楚起见,它类似于:

$ cp ./foo.h5 ./temp_foo.h5

# Here,I update temp_foo.h5 file. Then: 

$ mv ./temp_foo.h5 ./foo.h5

但是,这种策略似乎效率很低,我担心的是几件事。

  1. 如果程序员在应付(./foo.h5)时正在阅读原始的$cp,该怎么办? AFAIK,$mv是原子的,而$cp不是原子的。在读取Python脚本时复制文件会导致数据损坏吗?

  2. 我提出的这种策略过于庞大。还有其他防腐败最佳实践来应对这种情况吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)