caches the open table sessions. a row data file is exclusively locked by the store engine, so one table may only be opened once per process; every write statement reuses the session of the previous statement. sessions are created lazily through a factory delegate, so the pool stays format agnostic.
TableSessionPool
01 Syntax
02 Methods
| Name | Overloads | Summary |
|---|---|---|
| GetOrOpen | 1 | get the session of a table, open it through the factory on the first access |
| OpenSessionKeys | 1 | snapshot of the open sessions together with their cache keys |
| Close | 1 | close one session and release its exclusive lock. |
| MergeAll | 1 | merge the pending write ahead log of every open session. |
| MergeOverloaded | 1 | merge the tables whose pending operation count exceeds the threshold |
| RaiseError | 1 | a checkpoint problem must never be silent: it is published through the TableSessionPool.Info event and written to stderr when nobody listens, so that a stuck write ahead log is a… |
| TryGet | 1 | |
| OpenSessions | 1 | |
| CloseDatabase | 1 | |
| DisposeAll | 1 | |
| Dispose | 1 |
03 Properties
| Name | Overloads | Summary |
|---|---|---|
| LastMergeErrors | 1 | how many tables failed to merge during the last checkpoint |
| LastMergePostponed | 1 | how many tables postponed their merge during the last checkpoint |
| Options | 1 |
04 Fields
| Name | Overloads | Summary |
|---|---|---|
| _lastMergeErrors | 1 | the outcome of the last checkpoint, used by the scheduler |
05 Events
| Name | Overloads | Summary |
|---|---|---|
| Info | 2 | raised when a session reports a diagnostic message |
06 Members
String, String, Func(Of ITableSession))get the session of a table, open it through the factory on the first access
snapshot of the open sessions together with their cache keys
String, String)close one session and release its exclusive lock. the caller is responsible for deleting the files afterwards.
Boolean)merge the pending write ahead log of every open session. returns the number of merged tables. a table which could not be merged right now (a read enumeration is still active) is postponed, so that the caller is able to retry it on the next checkpoint instead of treating it as done.
Int32)merge the tables whose pending operation count exceeds the threshold
String)a checkpoint problem must never be silent: it is published through the TableSessionPool.Info event and written to stderr when nobody listens, so that a stuck write ahead log is always visible in the server log.
how many tables failed to merge during the last checkpoint
how many tables postponed their merge during the last checkpoint
the outcome of the last checkpoint, used by the scheduler
raised when a session reports a diagnostic message
String, String)String)