Uygulamalar için uyumluluk yazma öncesi günlük kaydı

Android 9, SQLiteDatabase bir veritabanının kendi verilerini kullanmasına olanak tanıyan journal_mode=WAL en fazla bir tane tutma davranışı korunur bağlantı sayısı.

Bir uygulamanın veritabanı için Uyumluluk WAL'i varsayılan olarak etkindir. uygulamada aşağıdakilerden biri vardır:

  1. SQLiteDatabase.enableWriteAheadLogging veya disableWriteAheadLogging
  2. Çağrı yaparak açıkça istenen günlük modu SQLiteDatabase.OpenParams.setJournalMode(String mode).

WAL günlüğü modunun etkinleştirilmesi, ve yazma miktarındaki azalmayı ölçer. Örneğin, bir ext4'te sayesinde WAL, yazma hızında 4 kat artış sağlayabilir.

Uyumluluk WAL'i varsayılan olarak etkindir ve ek bir bazı ipuçları vereceğim.

Uyumluluk WAL'sini devre dışı bırak

Uyumluluk WAL modunu devre dışı bırakmak için, db_compatibility_wal_supported yapılandırma kaynağı.

Örnek:

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

WAL'nin belirtildiği yapılandırmalarda Uyumluluk WAL'yi devre dışı bırakmak günlük modu, geleneksel geri alma özelliğine kıyasla bir performans avantajı sağlamaz günlük modlarında kullanılabilir. Örneğin, bir F2FS dosya sisteminde SQLite desteklese de ve DELETE günlüğü performansı WAL ile benzerse, WAL Yazma sayısını% 10'dan %15'e çıkarabilirsiniz.

Doğrulama

Uyumluluk WAL modunu doğrulamak için şu komutu çalıştırın: CTS testleri CtsDatabaseTestCases modülünden yararlanın. CTS testleri beklenen sonuç etkinleştiğini belirten bir uyarı alır.