Venti
ভেন্টি একটি নেটওয়ার্ক স্টোরেজ সিস্টেম যা স্থায়ীভাবে ডেটা ব্লক সংরক্ষণ করে। তথ্যের একটি 160-বিট এসএইচএ-1 হ্যাশ (যাকে ভেন্টি দ্বারা স্কোর বলা হয়) তথ্যের ঠিকানা হিসাবে কাজ করে। এটি একবার লেখার নীতি প্রয়োগ করে কারণ একই ঠিকানায় অন্য কোনও ডেটা ব্লক পাওয়া যায় নাঃ একই ডেটার একাধিক লেখার ঠিকানা অভিন্ন, তাই ডুপ্লিকেট ডেটা সহজেই চিহ্নিত করা যায় এবং ডেটা ব্লকটি কেবল একবার সংরক্ষণ করা হয়। ডেটা ব্লকগুলি সরানো যায় না, যা এটিকে স্থায়ী বা ব্যাকআপ সংরক্ষণের জন্য আদর্শ করে তোলে। ভেন্টি সাধারণত স্থায়ী স্ন্যাপশট সহ একটি ফাইল সিস্টেম সরবরাহ করতে জীবাশ্মের সাথে ব্যবহৃত হয়। বেল ল্যাবে শন কুইনলান এবং শন ডরওয়ার্ড হিস্ট্রি ভেন্টির নকশা এবং বাস্তবায়ন করেছিলেন। এটি 2002 সালে প্ল্যান 9 বিতরণে উপস্থিত হয়েছিল। রাস কক্স দ্বারা উন্নয়ন অব্যাহত রয়েছে যিনি বেশিরভাগ সার্ভারকে পুনরায় প্রয়োগ করেছেন, ভেন্টিতে সংরক্ষণের জন্য ডেটা স্ট্রাকচার (ফাইল, ডিরেক্টরি এবং মেটা-ডেটা) তৈরি করার জন্য একটি লাইব্রেরি লিখেছেন এবং অপ্টিমাইজেশানগুলি প্রয়োগ করেছেন। ভেন্টি প্ল্যান 9 ডিস্ট্রিবিউশন এবং ইউজার স্পেস থেকে প্ল্যান 9-এর অংশ হিসাবে অনেক ইউনিক্স-সদৃশ অপারেটিং সিস্টেমের জন্য উপলব্ধ। ভেন্টি অ্যাক্সেসের জন্য সহবর্তী মডিউল সহ ইনফার্নো অংশ হিসাবে অন্তর্ভুক্ত করা হয়েছে। আপনার নিজস্ব ভেন্টি সার্ভার তৈরি করার জন্য গো প্রোগ্রামের একটি সেট রয়েছে। বিভিন্ন ধরনের ব্যাকএন্ড স্টোরেজ ব্যবহার করার উদাহরণ অন্তর্ভুক্ত করা হয়েছে। ভেন্টি হল একটি ইউজার স্পেস ডেমন। ক্লায়েন্টরা টিসিপির মাধ্যমে ভেন্টির সাথে সংযোগ স্থাপন করে এবং একটি সাধারণ আরপিসি-প্রোটোকল ব্যবহার করে যোগাযোগ করে। প্রটোকলের সবচেয়ে গুরুত্বপূর্ণ বার্তাগুলি নীচে তালিকাভুক্ত করা হয়েছে। মনে রাখবেন যে প্রদত্ত ঠিকানায় কোনও ঠিকানা মুছে ফেলার বা তথ্য সংশোধন করার কোনও বার্তা নেই। রিড (স্কোর, টাইপ), স্কোর এবং টাইপ রাইট (ডেটা, টাইপ) দ্বারা চিহ্নিত ডেটা প্রদান করে, SHA-1 হ্যাশিং ডেটা দ্বারা গণনা করা ঠিকানায় ডেটা সঞ্চয় করে, টাইপের সাথে মিলিত হয়। ভেন্টি দ্বারা সংরক্ষিত ডেটা ব্লকের দৈর্ঘ্য অবশ্যই 512 বাইটের বেশি এবং 56 কিলোবাইটের চেয়ে ছোট হতে হবে। সুতরাং, যদি কোনও ভেন্টি ব্যবহারকারী/ক্লায়েন্ট বৃহত্তর ডেটা ব্লক সংরক্ষণ করতে চান, তবে তাকে একটি ডেটাস্ট্রাকচার তৈরি করতে হবে (যা ভেন্টিতে সংরক্ষণ করা যেতে পারে)। উদাহরণস্বরূপ, ফসিল বড় ফাইল সংরক্ষণ করতে হ্যাশ ট্রি ব্যবহার করে। ভেন্টি নিজেই একটি ডেটা ব্লকের বিষয়বস্তু নিয়ে উদ্বিগ্ন নয়; তবে এটি একটি ডেটা ব্লকের ধরন সংরক্ষণ করে। ভেন্টির নকশার নিম্নলিখিত পরিণতি রয়েছেঃ যেহেতু লেখাগুলি স্থায়ী, তাই ফাইল সিস্টেমটি কেবল সংযুক্ত-(যা ডেটা-ধ্বংসকারী বাগের কম সম্ভাবনা সহ একটি সহজ বাস্তবায়নের অনুমতি দেয়); কোনও ফাইল সিস্টেম খণ্ডিত হয় না। ক্লায়েন্টরা সার্ভারের সঠিকতা যাচাই করতে পারেঃ ফেরত দেওয়া তথ্যের স্কোর অনুরোধ করা ঠিকানার মতোই হওয়া উচিত। যেহেতু এসএইচএ-1 একটি ক্রিপ্টোগ্রাফিকভাবে সুরক্ষিত হ্যাশ, তাই তথ্য তৈরি করা গণনামূলকভাবে অসম্ভব। ডেটা ওভাররাইট করা যায় না। যদি একটি ঠিকানা ইতিমধ্যেই উপস্থিত থাকে, তাহলে তথ্য ইতিমধ্যেই উপস্থিত রয়েছে। ব্যবহারকারীর প্রমাণীকরণের খুব কম প্রয়োজন রয়েছেঃ তথ্য মুছে ফেলা যায় না এবং স্কোর জানা থাকলেই তা পড়া যায়। একমাত্র সম্ভাব্য সমস্যা হল একজন ব্যবহারকারী ডিস্কগুলি পূরণ করছে। ডিস্কের কাঠামোকে জটিল না করেই তথ্য সংকুচিত করা যেতে পারে। ডেটা ব্লকগুলি হার্ড ড্রাইভে সংরক্ষণ করা হয়। উপলব্ধ স্টোরেজ তৈরি করা ডিস্কগুলিকে, সাধারণত একটি রেইড, ডেটা লগ বলা হয়। এই ডেটা লগটি অ্যারেনা নামে ছোট ছোট টুকরোতে বিভক্ত করা হয়, যা আকারের হয় যাতে এগুলি সিডি/ডিভিডি বা চৌম্বকীয় টেপের মতো অন্যান্য মাধ্যমে লেখা যায়। সূচকের জন্য হার্ড ড্রাইভের আরেকটি সেট ব্যবহার করা হয়, যা ডেটা লগের ঠিকানাগুলিতে স্কোরগুলি ম্যাপ করে। সূচকের জন্য ব্যবহৃত তথ্য কাঠামো হল নির্দিষ্ট আকারের বালতি সহ একটি হ্যাশ টেবিল। ভেন্টি এলোমেলোভাবে বিতরণ করার জন্য স্কোরের উপর নির্ভর করে যাতে বালতিগুলি পূরণ না হয়। যেহেতু প্রতিটি অনুসন্ধানের জন্য একটি ডিস্কের সময় খোঁজার খরচ হয়, তাই একটি সূচকে সাধারণত কম অ্যাক্সেসের সময় সহ একাধিক হার্ড ড্রাইভ থাকে। ব্যবহার ভেন্টি সার্ভার ক্লায়েন্টদের দ্বারা বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে। প্ল্যান 9 অপারেটিং সিস্টেম ফাইল সিস্টেমের দৈনিক সংরক্ষণাগার স্ন্যাপশটগুলির জন্য ভেন্টি ব্যবহার করে। প্রধান ফাইল সিস্টেমের এই অনুলিপিগুলি তারিখ অনুসারে সাজানো সম্পূর্ণ অনুলিপিগুলির ফাইলট্রি হিসাবে স্থাপন করা যেতে পারে। 'ভ্যাক্স' এবং 'আনভ্যাক' ইউটিলিটি প্রোগ্রামগুলি ভেন্টি সার্ভার থেকে পৃথক ফাইলের আকারে বা ডিরেক্টরি এবং এর বিষয়বস্তু হিসাবে ডেটা সংরক্ষণ এবং পুনরুদ্ধারের জন্য ব্যবহার করা যেতে পারে। 'ভ্যাক্স' সমস্ত দূরবর্তী সঞ্চিত ডেটা সম্পূর্ণ পুনরুদ্ধার না করে ভ্যাক্স স্কোরের সাথে সম্পর্কিত ডেটা ব্রাউজ করার অনুমতি দেয়। 'rdarena' এবং 'rrarena' ব্যবহার করে ভেন্টি সার্ভারের মধ্যে ডেটা এবং সূচক স্কোর ডুপ্লিকেট করা যেতে পারে। বেল ল্যাবস থেকে প্ল্যান 9, ইউজার স্পেস থেকে প্ল্যান 9, ইনফার্নো এবং ভেন্টি প্রোটোকল প্রয়োগকারী অন্য যে কোনও ক্লায়েন্টকে তথ্য সংরক্ষণ এবং পুনরুদ্ধারের জন্য বিনিময়যোগ্যভাবে ব্যবহার করা যেতে পারে। হ্যাশ সংঘর্ষ তথ্য তত্ত্বের একটি মৌলিক নীতি হল পায়রা ছিদ্র নীতি, যা বলে যে যদি সেট এ-তে সেট বি-এর চেয়ে বেশি মান থাকে, তবে যে কোনও ফাংশনের জন্য যা এ থেকে বি-কে ম্যাপ করে সেখানে বি-এর সদস্য থাকবে যারা সেট এ-এর একাধিক সদস্যের সাথে যুক্ত। ভেন্টির ক্ষেত্রে, সম্ভাব্য এসএইচএ-1 হ্যাশের সেট স্পষ্টতই ফাইল সিস্টেমে সংরক্ষণ করা যেতে পারে এমন সমস্ত সম্ভাব্য ব্লকের সেটের চেয়ে ছোট, এবং এইভাবে একটি হ্যাশ সংঘর্ষ সম্ভব। 160-বিট হ্যাশে দুর্ঘটনাজনিত হ্যাশ সংঘর্ষের ঝুঁকি খুব কম, এমনকি তথ্যের এক্সাবাইটের ক্ষেত্রেও। ঐতিহাসিকভাবে, যাইহোক, অনেক হ্যাশ ফাংশন ক্রিপ্টোগ্রাফিক এবং গণনামূলক অগ্রগতি উভয়ের কারণে দূষিত হ্যাশ সংঘর্ষের জন্য ক্রমবর্ধমান ঝুঁকিপূর্ণ হয়ে ওঠে। ভেন্টি হ্যাশ সংঘর্ষের সমস্যাটির সমাধান করে না; এই সময়ের হিসাবে, এসএইচএ-1-এ সংঘর্ষ খুঁজে পাওয়া এখনও গণনামূলকভাবে অসম্ভব, তবে ভেন্টির জন্য ভবিষ্যতের কোনও সময়ে অন্য কোনও হ্যাশ ফাংশনে স্যুইচ করা প্রয়োজন হতে পারে। 2017 সালের 23শে ফেব্রুয়ারি, গুগল এসএইচএটার্ড আক্রমণের কথা ঘোষণা করে, যেখানে তারা মোটামুটিভাবে 263.1 এসএইচএ-1 মূল্যায়নে একই এসএইচএ-1 হ্যাশ সহ দুটি ভিন্ন পিডিএফ ফাইল তৈরি করে। আরও দেখুন জীবাশ্ম-স্ন্যাপশট ফাইল সিস্টেম যা স্থায়ী সংরক্ষণের জন্য ভেন্টি ব্যবহার করে ইউজার স্পেস রেফারেন্স এক্সটার্নাল লিঙ্ক থেকে প্ল্যান 9 ভেন্টিঃ আর্কাইভাল স্টোরেজের জন্য একটি নতুন পদ্ধতি, ভেন্টির বর্ণনাকারী কাগজ। নতুন ভেন্টি ম্যানুয়াল পৃষ্ঠা (সংক্ষিপ্ত বিবরণ), সাধারণ বিবরণ এবং সঞ্চয় বিন্যাস সহ বিভাগ 7 ভেন্টি ম্যানুয়াল পৃষ্ঠা। নতুন ভেন্টি ম্যানুয়াল পৃষ্ঠা (সার্ভার), বিভাগ 8 ভেন্টি সার্ভার ম্যানুয়াল পৃষ্ঠা। নতুন ভেন্টি ম্যানুয়াল পৃষ্ঠা (সরঞ্জাম), বিভাগ 1 ভেন্টি ইউটিলিটি ম্যানুয়াল পৃষ্ঠা। ক্লায়েন্ট এবং সার্ভার বাস্তবায়নের জন্য কোড করুন। ইনফার্নো-র জন্য লিম্বো-তে ভেন্টি মডিউল, গুগল সামার অফ কোডের জন্য দয়া করে প্রাণবন্ত করা হয়েছে। বেল ল্যাবস থেকে প্ল্যান 9