Change record status: 
Project: 
Introduced in branch: 
8.2.x
Introduced in version: 
8.2
Description: 

SQLite will enable Write-Ahead Log journal by default. We are now enabling WAL by default because we have raised the minimum supported version of SQLite to 3.7.11 (was 3.6.8). Support for WAL on SQLite is available from version 3.7.0.

Some advantages of Write-Ahead Logging (WAL) are:

  • WAL is significantly faster in most scenarios.
  • WAL provides more concurrency as readers do not block writers and a writer does not block readers. Reading and writing can proceed concurrently.
  • Disk I/O operations tends to be more sequential using WAL.
  • WAL uses many fewer fsync() operations and is thus less vulnerable to problems on systems where the fsync() system call is broken.

The Write-Ahead Logging has some disadvantages, with the main one being that all processes using a database must be on the same host computer. WAL does not work over a network filesystem.

Howto disable WAL: In the file /sites/default/settings.php add the following setting to your $databases configuration array:

$databases['default']['default'] = array(
  'init_commands' => array(
    'wal' => 'PRAGMA journal_mode=DELETE',
  ),
);
Impacts: 
Site builders, administrators, editors
Module developers