[Python-Dev] best place for an atomic file API
"Martin v. Löwis"
martin at v.loewis.de
Thu Feb 16 10:08:30 CET 2012
> (MvL complained in the tracker issue about a lack of concrete use
> cases, but I think fixing race conditions when overwriting bytecode
> files in importlib and the existing distutils/packaging use cases
> cover that)
I certainly agree that there are applications of "atomic replace", and
that the os module should expose the relevant platform APIs where
available.
I'm not so sure that "atomic writes" is a useful concept. I haven't seen
a proposed implementation, yet, but I'm doubtful that truly ACID
writes are possible unless the operating system supports transactions
(which only Windows 7 does). Even if you are ignoring Isolation,
Atomic already is a challenge: if you first write to a tempfile, then
rename it, you may end up with a state tempfile (e.g. if the process
is killed), and no rollback operation.
So "atomic write" to me promises something that it likely can't
deliver. OTOH, I still think that the promise isn't actually asked
for in practice (not even when overwriting bytecode files)
Regards,
Martin
More information about the Python-Dev
mailing list