如何解决如何在不破坏数据的情况下更新其他程序正在读取的数据文件? Linux / Python
我一直在制作一个Python程序,该程序实时将数据累积到.h5
文件中,以便其他程序员可以随时读取该文件。
我想确保文件被更新而不会损坏,以防其他程序员在添加数据时读取文件。
为避免这种情况,我想出了一种解决方案,用于复制($cp
)原始文件(foo.h5
)并创建temp_foo.h5
,然后将数据附加到temp_foo.h5
,用$mv
覆盖(foo.h5
)temp_foo.h5
。
为清楚起见,它类似于:
$ cp ./foo.h5 ./temp_foo.h5
# Here,I update temp_foo.h5 file. Then:
$ mv ./temp_foo.h5 ./foo.h5
但是,这种策略似乎效率很低,我担心的是几件事。
-
如果程序员在应付(
./foo.h5
)时正在阅读原始的$cp
,该怎么办? AFAIK,$mv
是原子的,而$cp
不是原子的。在读取Python脚本时复制文件会导致数据损坏吗? -
我提出的这种策略过于庞大。还有其他防腐败最佳实践来应对这种情况吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。