Android 9 memperkenalkan mode khusus
SQLiteDatabase
yang disebut {i>Compatibility write-ahead logging<i} (WAL) yang memungkinkan {i>database<i}
journal_mode=WAL
sekaligus mempertahankan perilaku maksimum satu
koneksi per database.
WAL Kompatibilitas diaktifkan untuk database aplikasi secara default kecuali jika aplikasi memiliki:
- Mengaktifkan atau menonaktifkan write-ahead logging dengan memanggil
SQLiteDatabase.enableWriteAheadLogging
ataudisableWriteAheadLogging
- Mode jurnal yang diminta secara eksplisit dengan memanggil
SQLiteDatabase.OpenParams.setJournalMode(String mode)
Mengaktifkan mode jurnal WAL dapat menghasilkan peningkatan yang signifikan dalam performa dan pengurangan jumlah operasi tulis. Misalnya, di ext4 sistem file, WAL dapat meningkatkan kecepatan tulis 4x lipat.
WAL Kompatibilitas diaktifkan secara default dan tidak memerlukan terlepas dari implementasi layanan.
Nonaktifkan WAL Kompatibilitas
Untuk menonaktifkan mode WAL Kompatibilitas, tempatkan
db_compatibility_wal_supported
resource konfigurasi.
Contoh:
<bool name="db_compatibility_wal_supported">false</bool>
Anda mungkin ingin menonaktifkan Compatibility WAL untuk konfigurasi tempat WAL mode jurnal tidak memberikan keunggulan performa dibandingkan rollback mode jurnal. Misalnya, pada sistem file F2FS, meskipun SQLite mendukung penulisan atomik dan kinerja jurnal DELETE mirip dengan WAL, WAL dapat meningkatkan jumlah operasi tulis sebesar 10% hingga 15%.
Validasi
Untuk memvalidasi mode WAL Kompatibilitas, jalankan Uji CTS dari modul CtsDatabaseTestCases. Tes CTS akan memverifikasi pengalaman perilaku standar saat WAL Kompatibilitas diaktifkan.