Chrome-এ আরও দক্ষ IndexedDB স্টোরেজ

Chrome-এ একটি নতুন অপ্টিমাইজেশান কীভাবে IndexedDB ডেটা ডিস্কে সংরক্ষণ করা হয় তা উন্নত করে৷ এই বর্ধিতকরণটি ক্রোমের স্টোরেজ সিস্টেমের মধ্যে কীভাবে বড় মানগুলি পরিচালনা করা হয় তার উপর ফোকাস করে, বিশেষত ডিস্কে সঞ্চিত নির্দিষ্ট ফাইলগুলিতে কম্প্রেশন প্রবর্তনের মাধ্যমে। নিবন্ধটি এই আপডেটের মূল পয়েন্টগুলিকে সংক্ষিপ্ত করে।

129 সংস্করণের আগে Chrome এর স্টোরেজ মেকানিজম

Chrome ডিস্কে IndexedDB ডেটা সঞ্চয় করতে LevelDB ব্যবহার করে। লেভেলডিবি একটি দ্রুত কী-মানের স্টোরেজ লাইব্রেরি, কিন্তু যখন পৃথক মান একটি ডাটাবেস পৃষ্ঠার আকার অতিক্রম করে তখন এটি সংগ্রাম করে। এটি মোকাবেলা করার জন্য, 2017 সাল থেকে , Chrome ডাটাবেস ফাইলের পাশাপাশি ডিস্কে প্লেইন ফাইল হিসাবে একটি একক পৃষ্ঠার চেয়ে বড় মান সংরক্ষণ করেছে।

সংস্করণ 129 থেকে স্টোরেজ

বড় মান কম্প্রেশন

লেভেলডিবি ডাটাবেসের মধ্যে সরাসরি সংরক্ষিত বিষয়বস্তুগুলির বিপরীতে, যা ডিস্কে লেখার আগে সংকুচিত হয় এবং পড়ার পরে ডিকম্প্রেস করা হয়, প্লেইন ফাইল হিসাবে সংরক্ষিত বড় ফাইলগুলিকে সংকুচিত করা হয়নি। নতুন আপডেটের সাথে, ক্রোম এখন স্ন্যাপি রিয়েল-টাইম কম্প্রেশন লাইব্রেরি ব্যবহার করে এই বড় ফাইলগুলিকে সংকুচিত করবে, যার ফলে উল্লেখযোগ্য স্থান সঞ্চয় হবে৷ এটি বিশেষত স্ট্রাকচার্ড ডেটার জন্য কার্যকর, যেমন জাভাস্ক্রিপ্ট মানের বড় অ্যারে, XML বা JSON। এটি এমন মিডিয়া ফাইলগুলির জন্য কার্যকর নয় যেগুলি বড় কিন্তু ইতিমধ্যেই সংকুচিত, বা কম সাধারণ, যদি সাইটটি ইতিমধ্যেই নিজস্ব জিপিং এবং আনজিপ করে থাকে।

স্টোরেজ দক্ষতার উপর প্রভাব

যদি কম্প্রেশন ফাইলের আকারকে LevelDB পৃষ্ঠার আকারের নিচে কমিয়ে দেয়, তাহলে ডেটা আবার LevelDB-এ সরানো হয়। এই পরিবর্তনটি কেবল স্থানই সাশ্রয় করে না বরং ডিস্কের I/O ক্রিয়াকলাপকেও হ্রাস করে, সামগ্রিক কর্মক্ষমতা উন্নত করে।

চটকদার কম্প্রেশন অ্যালগরিদম

Chrome টিম কম্প্রেশনের জন্য Snappy বেছে নিয়েছে কারণ এটি সর্বোচ্চ কম্প্রেশনের পরিবর্তে গতির জন্য অপ্টিমাইজ করে। এটি যথেষ্ট দ্রুত যে এটি কম্প্রেশন বা ডিকম্প্রেশনের সময় কোন পরিমাপযোগ্য কর্মক্ষমতা পেনাল্টি প্রবর্তন করে না।

কর্মক্ষমতা উন্নতি

কম্প্রেশন এবং ডিকম্প্রেশন রেন্ডারার প্রক্রিয়ার মধ্যে পরিচালিত হয়, Chrome এর মাল্টিপ্রসেস আর্কিটেকচারের অংশ। এটি ব্রাউজার প্রক্রিয়ায় প্রেরিত বার্তাগুলির আকারকে হ্রাস করে, যার ফলে আরও কর্মক্ষমতা উন্নতি হয়। সিন্থেটিক বেঞ্চমার্কগুলি দেখিয়েছে যে এই আপডেটটি IPC (আন্তঃ-প্রক্রিয়া যোগাযোগ) এবং ডিস্ক I/O হ্রাসের কারণে কিছু ক্রিয়াকলাপকে আগের তুলনায় দুই থেকে তিনগুণ দ্রুত করতে পারে। অনুশীলনে, ক্রোম টিমের পরিমাপে, 1 এমবি স্ট্রাকচার্ড ডেটা পেলোড প্রায় এক চতুর্থাংশ সময়ের মধ্যে ডিস্ক থেকে পৃষ্ঠায় বিতরণ করা হয় (ডিভাইস হার্ডওয়্যার এবং সিস্টেম কার্যকলাপের উপর ভিত্তি করে উচ্চ পরিবর্তনশীলতার সাথে)।

বিকাশকারী এবং ব্যবহারকারীর প্রভাব

এই পরিবর্তনগুলি বিকাশকারী এবং ব্যবহারকারী উভয়ের জন্যই সম্পূর্ণ স্বচ্ছ৷ যাইহোক, ব্যবহারকারীরা পারফরম্যান্সে উন্নতি এবং স্টোরেজ ব্যবহার হ্রাস লক্ষ্য করতে পারে।

  • স্থান সঞ্চয়: এই আপডেটের পরে সংরক্ষিত নতুন ডেটাতে কম্প্রেশন প্রয়োগ করা হয়। navigator.storage.estimate() এর মতো ওয়েব API ব্যবহার করে বা অ্যাপ্লিকেশন প্যানেলের অধীনে Chrome DevTools-এর স্টোরেজ বিভাগে স্থান সঞ্চয় পরোক্ষভাবে পর্যবেক্ষণ করা যেতে পারে।
  • বৈশিষ্ট্যটি পরীক্ষা করা: বিকাশকারীরা ফ্ল্যাগ: --enable-features="IndexedDBCompressValuesWithSnappy" সহ বৈশিষ্ট্যটি সক্ষম করে Chrome এর প্রাক-রিলিজ সংস্করণে (প্রাক-129) এই আচরণটি পরীক্ষা করতে পারে।

এই আপডেটটি বৃহৎ IndexedDB মানগুলি পরিচালনা করার ক্ষেত্রে Chrome-এর দক্ষতা বাড়ায়, কর্মক্ষমতার সাথে আপোস না করে স্থান এবং সময় উভয়ই সাশ্রয় করে, ব্রাউজারে ডেটা কীভাবে সংরক্ষণ এবং অ্যাক্সেস করা হয় তার একটি উল্লেখযোগ্য উন্নতি চিহ্নিত করে৷ এই পরিবর্তনগুলি বোঝার মাধ্যমে, বিকাশকারীরা একটি মসৃণ এবং আরও দক্ষ ব্যবহারকারীর অভিজ্ঞতা নিশ্চিত করে, Chrome-এর কর্মক্ষমতা এবং স্টোরেজ প্রক্রিয়াগুলিকে অপ্টিমাইজ করার চলমান প্রচেষ্টা থেকে লাভ করতে পারে৷

স্বীকৃতি

এই নথিটি Evan Stade এবং Rachel Andrew দ্বারা পর্যালোচনা করা হয়েছে।