... [Renfer Serge]
Since this weekend crash, I restarted zope this morning, the instance was running for 7 hours and the Data.fs had not changed its size, whereas the Data.fs.tmp had grown to 147Mb (many persons importing backup, I guess)
[Paul Winkler]
The only situation I know of when Data.fs.tmp gets used is during packing. But I've been a user of DirectoryStorage for over a year so I could well be forgetting something.
FYI, Data.fs.tmp is almost constantly in use by FileStorage. Committing a transaction is a complex process, with many steps. For safety, Data.fs isn't changed directly until we're positive that all changes can be made successfully. The pickles for all the new objects are written to Data.fs.tmp first. If that all succeeds, then Data.fs.tmp is appended to Data.fs in one gulp. So it's expected that a transaction changing a great many (and/or large) objects can end up growing Data.fs.tmp to an arbitrarily large size, and Data.fs won't change size for the duration. If the transaction commit ends up failing (for whatever reason), then Data.fs won't be touched at all.