অ্যাপগুলির জন্য সামঞ্জস্যপূর্ণ লেখা-আগামী লগিং

অ্যান্ড্রয়েড ৯ SQLiteDatabase- এর একটি বিশেষ মোড চালু করেছে, যার নাম কম্প্যাটিবিলিটি রাইট-অহেড লগিং (WAL)। এটি একটি ডাটাবেসকে journal_mode=WAL ব্যবহার করার সুযোগ দেয় এবং একই সাথে প্রতি ডাটাবেসে সর্বোচ্চ একটি সংযোগ রাখার নীতিটিও বজায় রাখে।

কোনো অ্যাপের ডাটাবেসের জন্য কম্প্যাটিবিলিটি WAL ডিফল্টরূপে সক্রিয় থাকে, যদি না অ্যাপটিতে নিম্নলিখিতগুলির মধ্যে কোনো একটি থাকে:

  1. SQLiteDatabase.enableWriteAheadLogging অথবা disableWriteAheadLogging কল করার মাধ্যমে রাইট-অহেড লগিং চালু বা বন্ধ করা হয়েছে।
  2. SQLiteDatabase.OpenParams.setJournalMode(String mode) কল করে জার্নাল মোডের জন্য স্পষ্টভাবে অনুরোধ করা হয়েছে।

WAL জার্নাল মোড চালু করলে পারফরম্যান্সে উল্লেখযোগ্য উন্নতি হতে পারে এবং রাইটের পরিমাণ কমে যেতে পারে। উদাহরণস্বরূপ, ext4 ফাইল সিস্টেমে WAL রাইট স্পিড ৪ গুণ পর্যন্ত বাড়াতে পারে।

কম্প্যাটিবিলিটি WAL ডিফল্টরূপে সক্রিয় থাকে এবং এর জন্য কোনো অতিরিক্ত বাস্তবায়নের প্রয়োজন হয় না।

সামঞ্জস্যতা নিষ্ক্রিয় করুন WAL

কম্প্যাটিবিলিটি WAL মোড নিষ্ক্রিয় করতে, db_compatibility_wal_supported কনফিগ রিসোর্সটি ওভারলে করুন।

উদাহরণস্বরূপ:

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

যেসব কনফিগারেশনে WAL জার্নাল মোড প্রচলিত রোলব্যাক জার্নাল মোডগুলোর তুলনায় কোনো পারফরম্যান্সগত সুবিধা দেয় না, সেখানে আপনি কম্প্যাটিবিলিটি WAL নিষ্ক্রিয় করতে চাইতে পারেন। উদাহরণস্বরূপ, একটি F2FS ফাইল সিস্টেমে, যদিও SQLite অ্যাটমিক রাইট সমর্থন করে এবং এর DELETE জার্নালের পারফরম্যান্স WAL-এর মতোই, তবুও WAL রাইটের পরিমাণ ১০% থেকে ১৫% পর্যন্ত বাড়িয়ে দিতে পারে।

বৈধতা

কম্প্যাটিবিলিটি WAL মোড যাচাই করার জন্য, CtsDatabaseTestCases মডিউল থেকে CTS টেস্টগুলো চালান। কম্প্যাটিবিলিটি WAL সক্রিয় করা হলে CTS টেস্টগুলো প্রত্যাশিত আচরণ যাচাই করবে।