Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Compatibilidad WAL (registro de escritura anticipada) para aplicaciones

Android 9 introduce un modo especial de SQLiteDatabase llama Compatibilidad WAL (registro de escritura anticipada) que permite a una base de datos para su uso journal_mode=WAL preservando al mismo tiempo el comportamiento de mantener un máximo de una conexión por cada base de datos.

Compatibilidad WAL está habilitado para la base de datos de una aplicación de forma predeterminada a menos que la aplicación tenga:

  1. No participar en el dentro o fuera del registro de escritura anticipada llamando SQLiteDatabase.enableWriteAheadLogging o disableWriteAheadLogging
  2. Explícitamente solicitada modo de revista llamando SQLiteDatabase.OpenParams.setJournalMode(String mode)

Habilitar el modo de diario WAL puede conducir a una mejora significativa en el rendimiento y una reducción en la cantidad de escrituras. Por ejemplo, en un sistema de archivos ext4, WAL puede llevar a una mejora de 4 veces en la velocidad de escritura.

Compatibilidad WAL está habilitado de forma predeterminada y no requiere ninguna implementación adicional.

Desactivación de compatibilidad WAL

Para desactivar el modo de compatibilidad WAL, superponer la db_compatibility_wal_supported recursos config.

Por ejemplo:

<bool name="db_compatibility_wal_supported">false</bool>

Es posible que desee deshabilitar la compatibilidad con WAL para configuraciones en las que el modo de diario WAL no proporciona una ventaja de rendimiento sobre los modos de diario de reversión tradicionales. Por ejemplo, en un sistema de archivos F2FS, aunque SQLite admite escrituras atómicas y el rendimiento del diario DELETE es similar a WAL, WAL puede aumentar la cantidad de escrituras entre un 10% y un 15%.

Validación

Para validar el modo de compatibilidad WAL, ejecutar pruebas CTS desde el módulo CtsDatabaseTestCases. Las pruebas CTS verificarán el comportamiento esperado cuando la compatibilidad WAL esté habilitada.