-
Type: Improvement
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Logging
-
Storage Engines
-
StorEng - Defined Pipeline
On detection of a checksum failure the corrupt block content is dumped to the log and available through the mongodb server log for analysis.
The current text format for the dump is hex for each individual byte, so the output is at a minimum 2x times (but in practice 3x due to spaces) the size of the corrupt block in the log.
We could reduce the logging size by using either Ascii85 or alternatively Base64 (uuencode) for the block dump. Both are straight forward to implement, and there may well be suitably licensed pre-existing open source implementations that can be used.
If Ascii85 is chosen, then the RFC-1924 variation is recommended as it uses a set of characters that is suitable for JSON. (Does not require escaping.)