Venti
वेंटी एक नेटवर्क भंडारण प्रणाली है जो डेटा ब्लॉक को स्थायी रूप से संग्रहीत करती है। डेटा का एक 160-बिट एसएचए-1 हैश (जिसे वेंटी द्वारा स्कोर कहा जाता है) डेटा के पते के रूप में कार्य करता है। यह एक बार लिखने की नीति को लागू करता है क्योंकि कोई अन्य डेटा ब्लॉक एक ही पते के साथ नहीं पाया जा सकता हैः एक ही डेटा के कई लेखन के पते समान होते हैं, इसलिए डुप्लिकेट डेटा को आसानी से पहचाना जाता है और डेटा ब्लॉक को केवल एक बार संग्रहीत किया जाता है। डेटा ब्लॉक को हटाया नहीं जा सकता है, जिससे यह स्थायी या बैकअप भंडारण के लिए आदर्श बन जाता है। वेंटी का उपयोग आमतौर पर स्थायी स्नैपशॉट के साथ एक फ़ाइल सिस्टम प्रदान करने के लिए जीवाश्म के साथ किया जाता है। हिस्ट्री वेंटी को बेल लैब्स में शॉन क्विनलान और शॉन डोरवर्ड द्वारा डिजाइन और कार्यान्वित किया गया था। यह 2002 में योजना 9 वितरण में दिखाई दिया। रस कॉक्स द्वारा विकास जारी रखा गया है जिन्होंने अधिकांश सर्वर को फिर से लागू किया है, वेंटी में संग्रहीत करने के लिए डेटा संरचना (फाइलें, निर्देशिकाएं और मेटा-डेटा) बनाने के लिए एक पुस्तकालय लिखा है और अनुकूलन को लागू किया है। वेंटी प्लान 9 वितरण और यूजर स्पेस से प्लान 9 के हिस्से के रूप में कई यूनिक्स जैसे ऑपरेटिंग सिस्टम दोनों के लिए उपलब्ध है। वेंटी को पहुँच के लिए मॉड्यूल के साथ इन्फर्नो के हिस्से के रूप में शामिल किया गया है। अपने स्वयं के वेंटी सर्वर बनाने के लिए कार्यक्रमों का एक गो सेट है। विभिन्न प्रकार के बैकएंड भंडारण का उपयोग करने वाले उदाहरण शामिल हैं। डिटेल्स वेंटी एक यूजर स्पेस डेमन है। ग्राहक टीसीपी पर वेंटी से जुड़ते हैं और एक साधारण आरपीसी-प्रोटोकॉल का उपयोग करके संवाद करते हैं। प्रोटोकॉल के सबसे महत्वपूर्ण संदेश नीचे सूचीबद्ध हैं। ध्यान दें कि दिए गए पते पर किसी पते को हटाने या डेटा को संशोधित करने के लिए कोई संदेश नहीं है। रीड (स्कोर, टाइप), स्कोर और टाइप राइट (डेटा, टाइप) द्वारा पहचाने गए डेटा को लौटाता है, SHA-1 हैशिंग डेटा द्वारा गणना किए गए पते पर डेटा संग्रहीत करता है, प्रकार के साथ संयुक्त होता है। वेंटी द्वारा संग्रहीत डेटा ब्लॉक लंबाई में 512 बाइट्स से अधिक और 56 किलोबाइट से छोटा होना चाहिए। इसलिए, यदि कोई वेंटी उपयोगकर्ता/ग्राहक बड़े डेटा ब्लॉकों को संग्रहीत करना चाहता है, तो उसे एक डेटास्ट्रक्चर बनाना होगा (जिसे वेंटी में संग्रहीत किया जा सकता है)। उदाहरण के लिए, जीवाश्म बड़ी फ़ाइलों को संग्रहीत करने के लिए हैश ट्री का उपयोग करता है। वेंटी स्वयं डेटा ब्लॉक की सामग्री से संबंधित नहीं है; हालाँकि यह डेटा ब्लॉक के प्रकार को संग्रहीत करता है। वेंटी के डिजाइन के निम्नलिखित परिणाम होते हैंः चूंकि लेखन स्थायी होते हैं, इसलिए फ़ाइल सिस्टम केवल जोड़ता है (जो डेटा-नष्ट करने वाले दोषों की कम संभावना के साथ एक सरल कार्यान्वयन की अनुमति देता है); कोई फ़ाइल सिस्टम विखंडन नहीं होता है। ग्राहक सर्वर की शुद्धता को सत्यापित कर सकते हैंः लौटाए गए डेटा का स्कोर अनुरोध किए गए पते के समान होना चाहिए। चूँकि एस. एच. ए.-1 एक क्रिप्टोग्राफिक रूप से सुरक्षित हैश है, इसलिए डेटा को गढ़ना कम्प्यूटेशनल रूप से अक्षम है। डेटा को अधिलेखित नहीं किया जा सकता है। यदि कोई पता पहले से मौजूद है, तो डेटा पहले से ही मौजूद है। उपयोगकर्ता प्रमाणीकरण की बहुत कम आवश्यकता हैः डेटा को हटाया नहीं जा सकता है, और स्कोर ज्ञात होने पर ही पढ़ा जा सकता है। एकमात्र संभावित समस्या डिस्क को भरने वाला उपयोगकर्ता है। डिस्क संरचना को जटिल बनाए बिना डेटा को संपीड़ित किया जा सकता है। डेटा ब्लॉक हार्ड ड्राइव पर संग्रहीत किए जाते हैं। उपलब्ध भंडारण बनाने वाली डिस्क, आमतौर पर एक रेड, को डेटा लॉग कहा जाता है। इस डेटा लॉग को छोटे टुकड़ों में विभाजित किया जाता है जिन्हें एरेना कहा जाता है, जो आकार में होते हैं ताकि उन्हें अन्य मीडिया जैसे सीडी/डीवीडी या चुंबकीय टेप पर लिखा जा सके। सूचकांक के लिए हार्ड ड्राइव के एक अन्य सेट का उपयोग किया जाता है, जो डेटा लॉग में पते के लिए स्कोर को मैप करता है। सूचकांक के लिए उपयोग की जाने वाली डेटा संरचना निश्चित आकार की बाल्टियों के साथ एक हैश टेबल है। वेंटी यादृच्छिक रूप से वितरित किए जाने वाले अंकों पर निर्भर करता है ताकि बाल्टियाँ न भरें। चूँकि प्रत्येक खोज में एक डिस्क सीक टाइम खर्च होता है, एक सूचकांक में आमतौर पर कम पहुंच समय के साथ कई हार्ड ड्राइव होते हैं। उपयोग ग्राहक वेंटी सर्वर का उपयोग कई तरीकों से कर सकते हैं। प्लान 9 ऑपरेटिंग सिस्टम फाइल सिस्टम के दैनिक अभिलेखीय स्नैपशॉट के लिए वेंटी का उपयोग करता है। मुख्य फाइलसिस्टम की इन प्रतियों को तिथि के अनुसार व्यवस्थित पूर्ण प्रतियों के फाइलट्री के रूप में स्थापित किया जा सकता है। उपयोगिता कार्यक्रम 'वेक' और 'अनवैक' का उपयोग वेंटी सर्वर से व्यक्तिगत फ़ाइलों के रूप में या निर्देशिका और इसकी सामग्री के रूप में डेटा को संग्रहीत करने और पुनर्प्राप्त करने के लिए किया जा सकता है। 'वीएसीएफएस' सभी दूरस्थ रूप से संग्रहीत डेटा की पूर्ण पुनर्प्राप्ति के बिना वैक स्कोर से जुड़े डेटा को ब्राउज़ करने की अनुमति देता है। डेटा और सूचकांक स्कोर को 'rdarena' और 'rrarena' का उपयोग करके वेंटी सर्वरों के बीच दोहराया जा सकता है। बेल लैब्स से प्लान 9, यूजर स्पेस से प्लान 9, इन्फर्नो और वेंटी प्रोटोकॉल को लागू करने वाले किसी भी अन्य ग्राहक का उपयोग डेटा को संग्रहीत करने और पुनर्प्राप्त करने के लिए किया जा सकता है। हैश टकराव सूचना सिद्धांत का एक मूल सिद्धांत कबूतर छेद सिद्धांत है, जिसमें कहा गया है कि यदि सेट ए में सेट बी की तुलना में अधिक मान होते हैं, तो किसी भी फ़ंक्शन के लिए जो ए से बी को मैप करता है, बी के सदस्य होंगे जो सेट ए के एक से अधिक सदस्यों के साथ जुड़े होंगे। वेंटी के मामले में, संभावित एसएचए-1 हैश का सेट स्पष्ट रूप से सभी संभावित ब्लॉकों के सेट से छोटा है जिन्हें फ़ाइल सिस्टम में संग्रहीत किया जा सकता है, और इस प्रकार एक हैश टकराव संभव है। 160-बिट हैश में आकस्मिक हैश टक्कर का जोखिम बहुत कम है, यहां तक कि डेटा के एक्साबाइट के लिए भी। ऐतिहासिक रूप से, हालांकि, कई हैश कार्य क्रिप्टोग्राफिक और कम्प्यूटेशनल प्रगति दोनों के कारण दुर्भावनापूर्ण हैश टकराव के प्रति तेजी से संवेदनशील हो जाते हैं। वेंटी हैश टकराव के मुद्दे को संबोधित नहीं करता है; इस समय तक, एसएचए-1 में टकराव का पता लगाना अभी भी कम्प्यूटेशनल रूप से असंभव है, लेकिन वेंटी के लिए भविष्य में किसी बिंदु पर एक अलग हैश फ़ंक्शन पर स्विच करना आवश्यक हो सकता है। 23 फरवरी 2017 को, गूगल ने एसएचएटेड हमले की घोषणा की, जिसमें उन्होंने लगभग 263.1 एसएचए-1 मूल्यांकन में एक ही एसएचए-1 हैश के साथ दो अलग-अलग पीडीएफ फाइलें बनाई। जीवाश्म-स्नैपशॉट फाइल सिस्टम भी देखें जो स्थायी भंडारण के लिए वेंटी का उपयोग करता है उपयोगकर्ता अंतरिक्ष संदर्भों से योजना 9 बाहरी लिंक वेंटीः अभिलेखीय भंडारण के लिए एक नया दृष्टिकोण, वेंटी का वर्णन करने वाला कागज। न्यू वेंटी मैनुअल पेज (अवलोकन), सेक्शन 7 वेंटी मैनुअल पेज जिसमें सामान्य विवरण और भंडारण प्रारूप शामिल है। नया वेंटी मैनुअल पेज (सर्वर), सेक्शन 8 वेंटी सर्वर मैनुअल पेज। न्यू वेंटी मैनुअल पेज (टूल्स), सेक्शन 1 वेंटी यूटिलिटीज मैनुअल पेज। क्लाइंट और सर्वर को लागू करने के लिए कोड पर जाएँ। इन्फर्नो के लिए लिम्बो में वेंटी मॉड्यूल, कृपया गूगल समर ऑफ कोड की बदौलत जीवन में लाया गया। बेल लैब्स से योजना 9