Lines Matching full:recovery
194 tdb_off_t recovery_start; /* offset of transaction recovery region */
1237 - keep the transaction recovery information in the same file as the
1238 database, using a special 'transaction recovery' record pointed at
1273 into a linearised buffer in the transaction recovery area, then
1274 marking the transaction recovery area with a magic value to
1275 indicate a valid recovery record. In total 4 fsync/msync calls are
1279 - check for a valid recovery record on open of the tdb, while the
1281 recovery area if needed, then continue with the open as
1282 usual. This allows for smooth crash recovery with no administrator
1286 still available, but no transaction recovery area is used and no
1767 work out how much space the linearised recovery data will consume
1786 allocate the recovery area, or use an existing recovery area if it is
1799 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to read recovery head\n"));
1807 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to read recovery record\n"));
1820 /* we need to free up the old recovery area, then allocate a
1827 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to free previous recovery area\n"));
1832 /* the tdb_free() call might have increased the recovery size */
1843 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to create recovery area\n"));
1851 again in the transaction commit, which would destroy the recovery area */
1854 /* write the recovery header offset and sync - we can sync without a race here
1855 as the magic ptr in the recovery record has not been set */
1859 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_recovery_allocate: failed to write recovery head\n"));
1868 setup the recovery data that will be used on a crash during commit
1883 check that the recovery area has enough space
1905 /* build the recovery data into a single blob to allow us to do a single
1923 /* the recovery area contains the old data, not the
1939 /* write the recovery data to the recovery area */
1941 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: failed to write recovery data\n"));
1947 /* as we don't have ordered writes, we have to sync the recovery
1948 data before we update the magic to indicate that the recovery
1963 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_setup_recovery: failed to write recovery magic\n"));
1968 /* ensure the recovery magic marker is on disk */
2037 /* write the recovery data to the end of the file */
2039 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: failed to setup recovery data\n"));
2070 run the crash recovery code */
2091 /* remove the recovery marker */
2093 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_commit: failed to remove recovery magic\n"));
2097 /* ensure the recovery marker has been removed on disk */
2139 /* find the recovery area */
2141 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery head\n"));
2147 /* we have never allocated a recovery record */
2151 /* read the recovery record */
2154 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery record\n"));
2160 /* there is no valid recovery data */
2174 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to allocate recovery data\n"));
2179 /* read the full recovery data */
2182 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to read recovery data\n"));
2209 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to sync recovery\n"));
2214 /* if the recovery area is after the recovered eof then remove it */
2217 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to remove recovery head\n"));
2223 /* remove the recovery magic */
2226 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to remove recovery magic\n"));
2234 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to reduce to recovery size\n"));
2242 TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_transaction_recover: failed to sync2 recovery\n"));
3962 /* if needed, run recovery */