Improved commit check to access written compressor blocks only
Details
| Detail name | Value |
|---|---|
| Changelog Number | 7510 |
| Type | Improvement |
| Status | Resolved |
| Fix Versions | Exasol 6.1.2 |
| Resolution Date | 2019-02-20 |
Background
The initial phase of every commit is the so called block check. This check ensures the internal consistency of all written objects and their corresponding data blocks. If it detects any inconsistencies, the commit is aborted and the eventual database corruption avoided.
The commit check is typically very fast because written data blocks do reside in DBRAM.
Problem
When upgrading from Exasol 6.0 to 6.1 certain parts of column objects are converted to a new database format on first startup. The conversion is finished with a regular commit checking for inconsistencies.
There was a performance problem therein that this block check accessed more data blocks than needed (compressor blocks) which even had to be read from storage first (cold data). As the complete database might have been touched by the upgrade process, this commit could take hours.
Workaround
The commit check can be disabled using the following database parameter: -checkBlocksOnCommit=0