bigfile/zodb: Don't write ZBlk to DB if it was not changed
For ZBlk1 we already compare ZData content about whether it was changed compared to data already stored to DB, and do not store it twice if data is the same. However ZBlk itself is always marked as changed, if corresponding memory page was dirtied. This results in transactions like Trans #33915309 tid=03b6944919befeee time=2016-04-17 22:01:06.034237 offset=140320105842 status=' ' user='...' description='...' # ... other parts, but no ZData here data #2 oid=000000000026fc4c size=79 class=wendelin.bigfile.file_zodb.ZBlk1 where ZBlk1 is committed the same without necessity. NOTE we cannot avoid committing ZBlk in all cases, because it is used to signal other DB clients that a ZBlk needs to be invalidated and this way associated fileh pages are invalidated too. This cannot work via ZData, because ZData don't have back-pointer to ZBlk1 or to corresponding zfile.
Showing
Please register or sign in to comment