অ্যাপের জন্য কম্প্যাটিবিলিটি রাইট-অহেড লগিং

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

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

  1. কল করে রাইট-অহেড লগিংয়ে অপ্ট-ইন বা অপ্ট-আউট করা SQLiteDatabase.enableWriteAheadLogging অথবা disableWriteAheadLogging
  2. SQLiteDatabase.OpenParams.setJournalMode(String mode)-এ কল করে জার্নাল মোডের জন্য স্পষ্টভাবে অনুরোধ করা হয়েছে 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 পরীক্ষা প্রত্যাশিত আচরণ যাচাই করবে।