অ্যাপগুলির জন্য সামঞ্জস্যপূর্ণ ওয়াল (রাইট-এহেড লগিং)

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

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

  1. SQLiteDatabase.enableWriteAheadLogging বা disableWriteAheadLogging কল করে লিখতে-আগে লগিং-এর অপ্ট-ইন বা আউট
  2. SQLiteDatabase.OpenParams.setJournalMode(String mode) কল করে স্পষ্টভাবে অনুরোধ করা জার্নাল মোড

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

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

সামঞ্জস্যতা WAL অক্ষম করা হচ্ছে

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

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

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

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

বৈধতা

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