ऐप्लिकेशन के लिए, काम करने से जुड़ी जानकारी को पहले से रिकॉर्ड करना

Android 9 में, SQLiteDatabase का एक खास मोड पेश किया गया है. इसे कंपैटिबिलिटी राइट-अहेड लॉगिंग (डब्ल्यूएएल) कहा जाता है. इसकी मदद से, डेटाबेस journal_mode=WAL का इस्तेमाल कर सकता है. साथ ही, यह भी पक्का किया जा सकता है कि हर डेटाबेस के लिए ज़्यादा से ज़्यादा एक कनेक्शन हो.

किसी ऐप्लिकेशन के डेटाबेस के लिए, कंपैटिबिलिटी WAL डिफ़ॉल्ट रूप से चालू होता है. हालांकि, ऐसा तब नहीं होता, जब ऐप्लिकेशन में इनमें से कोई एक सुविधा मौजूद हो:

  1. SQLiteDatabase.enableWriteAheadLogging या disableWriteAheadLogging को कॉल करके, राइट-अहेड लॉगिंग के लिए ऑप्ट-इन या ऑप्ट-आउट किया गया हो
  2. SQLiteDatabase.OpenParams.setJournalMode(String mode) को कॉल करके, जर्नल मोड का अनुरोध किया गया

WAL जर्नल मोड चालू करने से, परफ़ॉर्मेंस में काफ़ी सुधार हो सकता है और लिखने की संख्या कम हो सकती है. उदाहरण के लिए, ext4 फ़ाइल सिस्टम पर WAL की वजह से, लिखने की स्पीड में चार गुना सुधार हो सकता है.

WAL की सुविधा डिफ़ॉल्ट रूप से चालू रहती है. इसे अलग से लागू करने की ज़रूरत नहीं होती.

देखें.

Compatibility WAL बंद करें

Compatibility WAL मोड को बंद करने के लिए, db_compatibility_wal_supported कॉन्फ़िगरेशन रिसॉर्स को ओवरले करें.

उदाहरण के लिए:

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

आपको उन कॉन्फ़िगरेशन के लिए, Compatibility WAL को बंद करना पड़ सकता है जहां WAL journal mode, रोलबैक के पारंपरिक journal mode की तुलना में बेहतर परफ़ॉर्मेंस नहीं देता है. उदाहरण के लिए, F2FS फ़ाइल सिस्टम पर, SQLite एटॉमिक राइटिंग की सुविधा देता है. साथ ही, DELETE जर्नल की परफ़ॉर्मेंस, WAL की तरह ही होती है. हालांकि, WAL से राइटिंग की संख्या में 10% से 15% तक की बढ़ोतरी हो सकती है.

Validation

कंपैटबिलिटी वाले WAL मोड की पुष्टि करने के लिए, CtsDatabaseTestCases मॉड्यूल से CTS टेस्ट चलाएं. CTS टेस्ट से यह पुष्टि की जाएगी कि Compatibility WAL चालू होने पर, उम्मीद के मुताबिक काम कर रहा है या नहीं.