ऐप्स के लिए अनुकूलता राइट-फ़ॉरवर्ड लॉगिंग

एंड्रॉइड 9 SQLiteDatabase का एक विशेष मोड पेश करता है जिसे कंपैटिबिलिटी राइट-फॉरवर्ड लॉगिंग (WAL) कहा जाता है जो डेटाबेस को प्रति डेटाबेस अधिकतम एक कनेक्शन रखने के व्यवहार को संरक्षित करते हुए journal_mode=WAL उपयोग करने की अनुमति देता है।

किसी ऐप के डेटाबेस के लिए अनुकूलता वाल डिफ़ॉल्ट रूप से सक्षम है जब तक कि ऐप में इनमें से कोई भी न हो:

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

वाल जर्नल मोड को सक्षम करने से प्रदर्शन में महत्वपूर्ण सुधार हो सकता है और लिखने की मात्रा में कमी आ सकती है। उदाहरण के लिए, ext4 फ़ाइल सिस्टम पर, WAL लिखने की गति में 4x सुधार ला सकता है।

संगतता वाल डिफ़ॉल्ट रूप से सक्षम है और इसके लिए किसी अतिरिक्त कार्यान्वयन की आवश्यकता नहीं है।

संगतता वाल अक्षम करें

संगतता वाल मोड को अक्षम करने के लिए, db_compatibility_wal_supported कॉन्फिग संसाधन को ओवरले करें।

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

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

आप उन कॉन्फ़िगरेशन के लिए संगतता वाल को अक्षम करना चाह सकते हैं जहां वाल जर्नल मोड पारंपरिक रोलबैक जर्नल मोड पर प्रदर्शन लाभ प्रदान नहीं करता है। उदाहरण के लिए, F2FS फ़ाइल सिस्टम पर, हालांकि SQLite एटॉमिक राइट्स का समर्थन करता है और DELETE जर्नल का प्रदर्शन WAL के समान है, WAL राइट्स की मात्रा को 10% से 15% तक बढ़ा सकता है।

मान्यकरण

संगतता वाल मोड को सत्यापित करने के लिए, CtsDatabaseTestCases मॉड्यूल से CTS परीक्षण चलाएँ। संगतता वाल सक्षम होने पर सीटीएस परीक्षण अपेक्षित व्यवहार को सत्यापित करेंगे।