periodically merges the pending write ahead logs back into the data files while the engine is idle. the timer never runs while a sql statement is being executed and never overlaps with itself.
IdleMergeScheduler
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| ToString | 1 | a one line diagnostic snapshot of the scheduler state |
| EnterBusy | 1 | mark the beginning of a sql statement: checkpoints are paused |
| Touch | 1 | reset the idle countdown |
| RaiseError | 1 | a checkpoint problem must never be silent: it is published through the IdleMergeScheduler.Info event and written to stderr when nobody listens, so that a stuck write ahead log is… |
| Start | 1 | |
| Stop | 1 | |
| ExitBusy | 1 | |
| Dispose | 1 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| BusyCount | 1 | the number of the statements which are currently running |
| IdleSeconds | 1 | seconds elapsed since the last sql statement |
| TickCount | 1 | the number of the timer callbacks which have been executed |
| IsRunning | 1 | true when the periodic timer has actually been armed |
| LastError | 1 | the last exception of the merge loop, kept for diagnostics |
| SkippedByBusy | 1 | how often the checkpoint was skipped because a statement was running |
| SkippedByMerging | 1 | how often the checkpoint was skipped because another one was running |
| SkippedByIdle | 1 | how often the engine was not idle long enough |
| ReachedMerge | 1 | how often TableSessionPool.MergeAll()) has actually been called |
| LastIdleSeen | 1 | the idle window which the last tick observed |
| TouchCount | 1 | how often the idle countdown has been reset |
| LastMergeTime | 1 |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| _ticks | 1 | the number of the timer callbacks which have been executed |
| _running | 1 | true when the periodic timer has actually been armed |
| _lastError | 1 | the last exception of the merge loop, kept for diagnostics |
| _skipBusy | 1 | diagnostic counters of the early return paths of IdleMergeScheduler.OnTick()) |
| _lastIdleSeen | 1 | the idle window which the last tick observed |
| _maxIdleSeen | 1 | the largest idle window which any tick has observed |
| _touchCount | 1 | how often the idle countdown has been reset |
05 Events
| Name | Overloads | Summary |
|---|---|---|
| Info | 1 |
06 Members
a one line diagnostic snapshot of the scheduler state
mark the beginning of a sql statement: checkpoints are paused
reset the idle countdown
String)a checkpoint problem must never be silent: it is published through the IdleMergeScheduler.Info event and written to stderr when nobody listens, so that a stuck write ahead log is always visible in the server log.
the number of the statements which are currently running
seconds elapsed since the last sql statement
the number of the timer callbacks which have been executed
true when the periodic timer has actually been armed
the last exception of the merge loop, kept for diagnostics
how often the checkpoint was skipped because a statement was running
how often the checkpoint was skipped because another one was running
how often the engine was not idle long enough
how often TableSessionPool.MergeAll() has actually been called
the idle window which the last tick observed
how often the idle countdown has been reset
the number of the timer callbacks which have been executed
true when the periodic timer has actually been armed
the last exception of the merge loop, kept for diagnostics
diagnostic counters of the early return paths of IdleMergeScheduler.OnTick()
the idle window which the last tick observed
the largest idle window which any tick has observed
how often the idle countdown has been reset