Commit 910c08d4 authored by inaam's avatar inaam

branches/zip rb://226

log_sys->written_to_all_lsn does not accurately represent the LSN
upto which write and flush has taken place. Under a race condition
it can fall behind log_sys->flushed_to_disk_lsn which is accurate.
Besides written_to_all_lsn is redundant as currently InnoDB supports
only one log group.

Approved by: Heikki
parent 7eadf3e7
...@@ -825,7 +825,17 @@ struct log_struct{ ...@@ -825,7 +825,17 @@ struct log_struct{
written to some log group; for this to written to some log group; for this to
be advanced, it is enough that the be advanced, it is enough that the
write i/o has been completed for all write i/o has been completed for all
log groups */ log groups.
Note that since InnoDB currently
has only one log group therefore
this value is redundant. Also it
is possible that this value
falls behind the
flushed_to_disk_lsn transiently.
It is appropriate to use either
flushed_to_disk_lsn or
write_lsn which are always
up-to-date and accurate. */
ib_uint64_t write_lsn; /*!< end lsn for the current running ib_uint64_t write_lsn; /*!< end lsn for the current running
write */ write */
ulint write_end_offset;/*!< the data in buffer has ulint write_end_offset;/*!< the data in buffer has
......
...@@ -2013,7 +2013,7 @@ log_checkpoint( ...@@ -2013,7 +2013,7 @@ log_checkpoint(
return(TRUE); return(TRUE);
} }
ut_ad(log_sys->written_to_all_lsn >= oldest_lsn); ut_ad(log_sys->flushed_to_disk_lsn >= oldest_lsn);
if (log_sys->n_pending_checkpoint_writes > 0) { if (log_sys->n_pending_checkpoint_writes > 0) {
/* A checkpoint write is running */ /* A checkpoint write is running */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment