Version 11.3.0
Checksums

WiredTiger optionally checksums file reads and writes to detect storage failures. In read-only applications, or when configured compression or encryption provides sufficient checksum functionality, or when using backing storage systems where blocks require no validation, performance can be increased by turning off checksum support when calling the WT_SESSION::create method.

Checksums can be configured to be "off", "on", "uncompressed" or "unencrypted". The default is "on", in which case all block writes include a checksum subsequently verified when the block is read. The "off" setting does no checksums, intended for read-only applications or applications with storage systems that detect block corruption. The "uncompressed" setting only checksums blocks that are not compressed; the "unencrypted" setting only checksums blocks that are not encrypted. The "uncompressed" and "unencrypted" settings are intended for applications with compression or encryption engines that detect block corruption. Corruption detection is often the case for encryption engines (including the sodium engine included in WiredTiger). Corruption detection is often not the case for compression engines, specifically, applications configuring the lz4, snappy, zlib and zstd compression engines included in WiredTiger are encouraged to consider enabling separate checksum support for increased reliability. Of course, the failure profile of the underlying storage layer and the cost of an undetected file corruption are tradeoffs against the performance improvement of turning off checksums.

The default WiredTiger checksum configuration is "on".

error_check(session->create(
session, "table:mytable", "key_format=S,value_format=S,checksum=uncompressed"));
WT_SESSION::create
int create(WT_SESSION *session, const char *name, const char *config)
Create a table, column group, index or file.