Changes between Initial Version and Version 7 of Ticket #333


Ignore:
Timestamp:
07/03/18 00:10:25 (7 years ago)
Author:
Olly Betts
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #333

    • Property Keywords GoodFirstBug added
    • Property Component Backend-ChertBackend-Glass
    • Property Milestone1.4.x
  • Ticket #333 – Description

    initial v7  
    55 - displaying status information about a database to users.
    66
    7 To implement this, we'd need to store the modification time in the database somewhere, since we want to know the time of the last successful commit; this can't be derived by looking at the timestamp of the files, since it's possible that a commit nearly happened, but was cancelled or failed at the last minute (or, indeed, since we use fdatasync(), that a commit succeeded, but the timestamp information about the file modification never got written to disk due to a machine crash immediately after the commit).
     7To implement this, we'd need to store the modification time in the database somewhere, since we want to know the time of the last successful commit; this can't be derived by looking at the timestamp of the files, since it's possible that a commit nearly happened, but was cancelled or failed at the last minute (or, indeed, since we use fdatasync(), that a commit succeeded, but the timestamp information about the file modification never got written to disk due to a machine crash immediately after the commit).  ''[This is true for chert and older backends, but for glass a new `iamglass` file is written to a temporary name and then renamed to atomically perform the commit, so its timestamp should be reliable even in the face of these concerns]''
    88
    99This could be emulated by storing the current time in a metadata value each time that flush() is called, but this wouldn't cover modifications made by implicit flushes.  Currently, to implement this correctly on top of xapian, you'd need to use explicit transactions.