স্টোরেজের সবসময় একই শত্রু ছিল: মিথ্যা বলা ডিস্ক, অসম্পূর্ণ লেখা, এবং একটি আপডেটের মাঝখানে ক্র্যাশ। ZFS কয়েকটি মূল ধারণা দিয়ে এগুলোর মোকাবিলা করে, আর Uberblok নামের এই ইন্টারঅ্যাক্টিভ জাদুঘরটি, যা একজন অভিজ্ঞ স্টোরেজ প্রকৌশলী তৈরি করেছেন, সেই ধারণাগুলো একটি একটি করে কক্ষে দেখায়। এগুলো সরাসরি সেই কোড থেকে নেওয়া হয়েছে যা এগুলো বাস্তবায়ন করে। প্রতিটি অ্যানিমেশন Open ZFS zfs-2.4.4-এর কোড লাইনের সঙ্গে মিলে যায়, যা কমিট 71a9f9578616-এ স্থির করা, এবং প্রতিটি কোড অংশ সোর্সে ফিরে যাওয়ার লিংক দেয়। লেখক ZFS-কে এই ক্ষেত্রের সবচেয়ে চমকপ্রদ প্রকৌশল কৃতিত্ব মনে করেন। তিনি প্রকল্পটি এর প্রতি শ্রদ্ধা জানাতে এবং এর অভ্যন্তরীণ কার্যপ্রণালী আরও ভালোভাবে বোঝার জন্য তৈরি করেছেন, এবং কোড ভালো জানেন এমন পাঠকদের সংশোধনের জন্য স্বাগত জানান।
জাদুঘরটি শুরু হয় হলে, যেখানে আছে uberblock, একটি ছোট রেকর্ড যা পুরো পুলের মূল নির্দেশ করে। এতে আছে একটি ট্রানজেকশন গ্রুপ নম্বর ub_txg এবং একটি ব্লক পয়েন্টার ub_rootbp, যার মাধ্যমে অন্য সব ব্লকে পৌঁছানো যায়। প্রতিটি ডিস্কে চারটি লেবেল থাকে, প্রতিটিতে 128 KiB-র uberblock রিং। নতুন uberblock আগেরটিকে কখনো ওভাররাইট করে না; বরং এটি N mod স্লটের সংখ্যা অনুযায়ী স্লট দখল করে। ইমপোর্টের সময় ZFS প্রতিটি স্লট পড়ে এবং সর্বোচ্চ txg-সহ বৈধ uberblock রাখে।
পরবর্তী কক্ষগুলোতে প্রকল্পের ইতিহাস, ট্রি, এবং কপি-অন-রাইট, চেকসাম ও স্ব-নিরাময় কীভাবে fsck ছাড়াই পুলকে সুসংগত রাখে, ট্রানজেকশন গ্রুপের open, quiescing ও syncing অবস্থার মধ্য দিয়ে যাওয়া, এবং মিরর, raidz, draid, লগ, ক্যাশ ও স্পেশাল ডিভাইসসহ vdev শ্রেণিবিন্যাস দেখানো হয়েছে। জাদুঘরটি RAID-Z, স্ন্যাপশট, ARC, metaslab, ZIL ও send/receive-ও ব্যাখ্যা করে, সবই অ্যানিমেটেড চিত্রসহ।
প্রকল্পটি uberblok.storagebits.workers.dev-এ পাওয়া যায় এবং এর সোর্স কোড GitHub-এ algotitanhq/uberblok-এ রয়েছে।
উৎস: Hacker News · সারাংশ: HeadlinesBriefing