Orkas Orkas
डाउनलोड GitHub
मुखपृष्ठ ब्लॉग आर्किटेक्चर
आर्किटेक्चर

व्यवहार में क्लाउड सिंक: Orkas अलग-अलग डिवाइसों के बीच डेटा कैसे सिंक करता है

Orkas एन्क्रिप्टेड स्थानांतरण, सामग्री संग्रहण, सर्वर के नियंत्रण वाले कमिट, खाता लॉक, सिंक नियम, मॉडल की मदद से टकराव सुलझाने, हटाने की पुष्टि और रीसायकल बिन के साथ उपयोगकर्ता का डेटा अलग-अलग डिवाइसों के बीच कैसे सिंक करता है।

उपयोगकर्ता डेटा का क्लाउड सिंक केवल अपलोड और डाउनलोड नहीं है। उसे स्थानांतरण के दौरान निजी सामग्री की रक्षा करनी होती है, भंडारण सस्ता रखना होता है, कई उपकरणों से होने वाले लेखन को क्रमबद्ध करना होता है, डेटा के अलग-अलग रूप समझने होते हैं, खतरनाक विलोपन से पहले पुष्टि माँगनी होती है, और निर्णय गलत निकलने पर लौटने का रास्ता बचाए रखना होता है।

Orkas क्लाउड सिंक को पृष्ठभूमि की सुविधा के बजाय उत्पाद की एक सीमा मानता है। बातचीत, एजेंट, कौशल, कार्य की स्थिति, ज्ञान फ़ाइलें और सेटिंग्स — सबको उपकरणों के बीच जाना होता है, जबकि ज़िम्मेदारी की कड़ी स्पष्ट बनी रहे: उपकरण सामग्री तैयार करता है, ऑब्जेक्ट स्टोरेज बाइट रखता है, और सर्वर प्रामाणिक अनुक्रमणिका का स्वामी होता है।

नीचे दिया गया ढाँचा वही है जिससे हम इस प्रणाली को समझते हैं: एन्क्रिप्टेड सामग्री का प्रवाह, सामग्री-आधारित पते वाला भंडारण, खाता-स्तरीय सिंक लॉक, सर्वर के नियंत्रण वाला कमिट, निश्चित सिंक नियम, मॉडल-सहायता से टकराव संभालना, हटाने की पुष्टि, रीसायकल बिन और पुनर्प्राप्ति चिह्न।

क्लाउड सिंक एक नज़र में
उपकरण का डेटाउपयोगकर्ता के स्वामित्व वाले डेटा को जाँचता है और उसकी तुलना अंतिम साफ़ आधार-स्थिति से करता है।
सुरक्षा परतहर सिंक दौर के आशय को एन्क्रिप्ट, हैश, सत्यापित और हस्ताक्षरित करती है।
क्लाउड स्टोरेजसामग्री ऑब्जेक्ट और क्या मौजूद होना चाहिए उसकी संक्षिप्त अनुक्रमणिका रखता है।
पुनर्प्राप्ति परतविलोपन चिह्न, टकराव संग्रह, हटाने की पुष्टि के संकेत और रीसायकल बिन प्रविष्टियाँ रखती है।
यह प्रणाली डेटा प्रवाह के चारों ओर जाँचों के समूह के रूप में बनी है, फ़ाइलों की अंधी प्रतिलिपि के रूप में नहीं।
संक्षिप्त विवरण स्थानीय-प्रथम, फिर भी आपकी दूसरी मशीन पर सिंक वैकल्पिक है; डिफ़ॉल्ट रूप से कार्यक्षेत्र आपकी मशीन पर रहता है। इस सीमा के बारे में और जानें स्थानीय-प्रथम AI एजेंट पृष्ठ पर।
Orkas डाउनलोड करें — मुफ़्त

सिंक का अनुबंध

हर सिंक दौर उत्पाद से जुड़े चार सवालों के जवाब देता है: कौन-सी सामग्री स्थानांतरित हो सकती है, उसकी रक्षा कैसे होगी, नई क्लाउड अनुक्रमणिका प्रकाशित करने की अनुमति किसे है, और सिंक का निर्णय गलत होने पर उपयोगकर्ता वापस कैसे पा सकता है?

हर दौर का अनुबंध
दायराकेवल उपयोगकर्ता डेटा पर विचार किया जाता है।
एन्क्रिप्ट करेंउपकरण से निकलने से पहले पेलोड सुरक्षित किए जाते हैं।
संग्रहित करेंऑब्जेक्ट के पते सामग्री की पहचान से तय होते हैं।
लॉक करेंएक समय में खाते का एक ही सिंक दौर प्रकाशित करता है।
कमिट करेंसर्वर अगली अनुक्रमणिका सत्यापित करके लिखता है।
पुनर्प्राप्त करेंविलोपन और टकराव में वापसी का रास्ता बचा रहता है।
सिंक भरोसेमंद है क्योंकि हर चरण की ज़िम्मेदारी सीमित है।

एन्क्रिप्टेड सामग्री का रास्ता

भंडारण तक पहुँचने से पहले उपयोगकर्ता डेटा उपकरण पर तैयार होता है। सिंक इंजन संभावित सामग्री के समूह को मानकीकृत करता है, सामग्री की पहचान निकालता है, पेलोड एन्क्रिप्ट करता है, अल्पकालिक क्रेडेंशियल से अपलोड करता है, और डाउनलोड किए गए बाइट उपकरण पर वापस लिखने से पहले सत्यापित करता है।

उपयोगकर्ता डेटा से सुरक्षित क्लाउड ऑब्जेक्ट तक
चुनेंउपयोगकर्ता द्वारा बनाया गया डेटा चुनें।
हैश करेंसामग्री की पहचान और आकार का मेटाडेटा निकालें।
एन्क्रिप्ट करेंअपलोड से पहले पेलोड सुरक्षित करें।
अपलोड करेंअस्थायी क्रेडेंशियल के साथ ऑब्जेक्ट के बाइट भेजें।
सत्यापित करेंडेटा लाते समय हैश और अपेक्षित मेटाडेटा जाँचें।
लागू करेंउपकरण पर केवल सत्यापित सामग्री लिखें।
ऑब्जेक्ट स्टोरेज को एन्क्रिप्टेड पेलोड दिखते हैं; सिंक इंजन लाए गए डेटा पर भरोसा करने से पहले सामग्री की पहचान सत्यापित करता है।

भंडारण और अनुक्रमणिका

Orkas संग्रहित बाइट और क्लाउड अनुक्रमणिका को अलग रखता है। सामग्री ऑब्जेक्ट एन्क्रिप्टेड डेटा रखते हैं। अनुक्रमणिका दर्ज करती है कि कौन-सी तार्किक डेटा मदें मौजूद होनी चाहिए, उनकी सामग्री पहचान, संस्करण काउंटर, संग्रहित आकार, क्लाउड संशोधन और विलोपन-चिह्न की स्थिति क्या है। उपकरण अंतिम सफल दौर की आधार-स्थिति भी रखता है, ताकि वह पुरानी स्थिति और नए संपादनों में अंतर कर सके।

तीन रिकॉर्ड, तीन काम
उपकरण की आधार-स्थितिअंतिम पूर्ण सिंक की उपकरण पर रखी स्मृति।
क्लाउड अनुक्रमणिकावर्तमान मदों, संस्करणों और विलोपन चिह्नों की सर्वर के नियंत्रण वाली सूची।
सामग्री ऑब्जेक्टसामग्री की पहचान से पते पाने वाले एन्क्रिप्टेड बाइट।
इन्हें अलग क्यों रखें? भारी डेटा ऑब्जेक्ट स्टोरेज में रह सकता है, जबकि छोटी अनुक्रमणिका सिंक निर्णयों का एकमात्र स्रोत बनी रहती है।
अनुक्रमणिका उपकरणों को बताती है कि क्या मौजूद होना चाहिए; सामग्री ऑब्जेक्ट बाइट उपलब्ध कराते हैं।

सिंक का एक दौर

एक दौर कम खर्च से शुरू होता है और वास्तविक काम होने पर ही सख्त होता है। Orkas पहले देखता है कि कुछ बदला है या नहीं, फिर खाते का सिंक लॉक लेता है, लॉक रहते हुए बदलावों की दोबारा गणना करता है, सामग्री स्थानांतरित करता है, सर्वर से अनुक्रमणिका के ऑपरेशन कमिट करने को कहता है, और अंत में उपकरण की आधार-स्थिति अपडेट करता है।

एक दौर का जीवनचक्र
प्रारंभिक जाँचस्कैन करें और नवीनतम क्लाउड अनुक्रमणिका का मेटाडेटा लाएँ।
सिंक लॉकखाते की सिंक प्रक्रिया इस उपकरण के लिए आरक्षित करें।
दोबारा जाँचेंलॉक मिलने के बाद बदलावों की दोबारा गणना करें।
स्थानांतरणअपलोड, डाउनलोड, विलय करें या विलोपन तैयार करें।
कमिट करेंसर्वर क्लाउड संशोधन, कोटा और स्कीमा सत्यापित करता है।
आधार-स्थितिसफलता के बाद नई साफ़ स्थिति दर्ज करें।
दूसरी अंतर-जाँच महत्वपूर्ण है: काम शुरू होने तक प्रारंभिक जाँच में दिखी स्थिति पुरानी पड़ चुकी हो सकती है।

सिंक लॉक और कमिट

सिंक लॉक और कमिट जाँच अलग-अलग समस्याएँ हल करते हैं। सिंक लॉक उपकरणों पर एक साथ होने वाले व्यर्थ काम को कम करता है। सर्वर का लॉक अनुक्रमणिका के लेखन को क्रमबद्ध करता है। अपेक्षित क्लाउड संशोधन की जाँच पुरानी पढ़ी हुई स्थिति को अगली प्रामाणिक स्थिति बनने से रोकती है। कोटा और स्कीमा जाँच भी इसी सर्वर-नियंत्रित कमिट प्रक्रिया में चलती हैं।

कमिट की जाँच-सीमा
उपकरण पूछता हैक्या खाते की सिंक प्रक्रिया उपलब्ध है?
लॉक मिलादौर को सक्रियता संकेत भेजने की एक छोटी अवधि मिलती है।
ऑब्जेक्ट तैयारसामग्री के बाइट पहले ही अपलोड किए या लाए जा चुके हैं।
सर्वर लॉकहर खाते के लिए अनुक्रमणिका का लेखन क्रमबद्ध होता है।
संस्करण जाँचक्लाउड संशोधन बदल गया हो तो अस्वीकार करें।
प्रकाशित करेंअगली अनुक्रमणिका लिखें और उपयोग अपडेट करें।
उपकरण बाइट स्थानांतरित करते हैं; सर्वर प्रामाणिक स्थिति प्रकाशित करता है।

टकराव से पहले नियम

सिंक के अधिकांश निर्णय टकराव नहीं होते। उपकरण आधार-स्थिति, अपने वर्तमान डेटा और क्लाउड अनुक्रमणिका की तुलना करता है। केवल क्लाउड बदला हो तो डेटा लाएँ। केवल उपकरण बदला हो तो डेटा भेजें। दोनों बदले हों तो सामग्री के प्रकार के अनुसार रास्ता चुनें। कुछ गायब हो गया हो तो डेटा तुरंत हटाने के बजाय विलोपन-सुरक्षा प्रक्रिया अपनाएँ।

निर्णय इंजन
आधार-स्थितिइस उपकरण ने अंतिम बार जिसकी पुष्टि की थी।
उपकरण का वर्तमान डेटाइस उपकरण के पास अभी क्या है।
वर्तमान क्लाउडसर्वर की अनुक्रमणिका क्या घोषित करती है।
कार्रवाईलाएँ, भेजें, विलय करें, विलोपन चिह्न लगाएँ, पुष्टि करें या बहाल करें।
आधार-स्थिति एक सरल नियम संभव बनाती है: जो पक्ष नहीं बदले, उन्हें विलय की ज़रूरत नहीं।

टकराव संभालना

जब दोनों पक्ष वास्तव में बदलते हैं, तो Orkas हर चीज़ पर अंतिम लिखने वाले को विजेता नहीं मानता। अंत में रिकॉर्ड जोड़ने वाले लॉग छूटे रिकॉर्ड जोड़कर मिल सकते हैं। सूचियाँ रिकॉर्ड की स्थिर पहचान के आधार पर मिल सकती हैं। संरचित JSON संस्करण काउंटर और समय-मुद्राओं का उपयोग कर सकता है। Markdown और बाइनरी फ़ाइलों में सावधानी बरती जाती है: अगर प्रणाली यह साबित नहीं कर सकती कि विलय बिना हानि के होगा, तो वह न चुने गए संस्करण की पूरी प्रति रखती है।

पाठ या संरचित सामग्री के अस्पष्ट टकरावों में उत्पाद संबंधित संस्करणों को मॉडल की सहायता से संभालने के लिए एक साथ दे सकता है। मॉडल टकराव समझा सकता है, मिले हुए संस्करण का मसौदा बना सकता है, या उपयोगकर्ता को चुनने में मदद कर सकता है। यह अकेला सुरक्षा उपाय नहीं है: निश्चित नियमों वाला सत्यापन, मूल प्रतियों का संग्रह और उपयोगकर्ता को दिखाई देने वाली पुनर्प्राप्ति प्रक्रिया का हिस्सा बने रहते हैं।

टकराव समाधान की प्रक्रिया
वर्गीकृत करेंफ़ाइल का रूप और उपलब्ध संस्करण मेटाडेटा पहचानें।
नियम-आधारित विलयसुरक्षित होने पर निश्चित नियमों से विलय करें।
मॉडल की सहायतापाठ के अस्पष्ट टकराव समझाएँ या मसौदा बनाएँ।
संग्रहित करेंसुरक्षा अनिश्चित हो तो मूल प्रतियाँ रखें।
सत्यापित करेंस्कीमा, पहचान और अपेक्षित रूप जाँचें।
प्रकाशित करेंकेवल स्वीकृत परिणाम कमिट करें।
मॉडल की सहायता समाधान की गुणवत्ता सुधारती है, जबकि निश्चित नियमों वाली जाँचें उसे सीमाओं में रखती हैं।

हटाने की पुष्टि

विलोपन को स्थिति के बदलाव के रूप में देखा जाता है। दूरस्थ विलोपन एक विलोपन चिह्न बनता है। उपकरण पर किया गया विलोपन एक संभावित ऑपरेशन बनता है। Orkas हाल के लेखन जाँचता है, बड़े पैमाने पर विलोपन पर नज़र रखता है, और गायब होने वाले उपयोगकर्ता डेटा की मात्रा जोखिमभरी लगे तो पुष्टि के लिए दौर रोक देता है।

हटाने की पुष्टि का रास्ता
विलोपन दिखाकोई डेटा मद गायब है या उस पर विलोपन चिह्न है।
हाल का लेखनजाँचें कि उसे दोबारा बनाया या संपादित किया गया था या नहीं।
सामूहिक विलोपन की जाँचअसामान्य रूप से बड़े विलोपन समूह पहचानें।
पुष्टि माँगेंजोखिम अधिक हो तो पुष्टि माँगें।
पुष्टि करेंस्वीकृति के बाद विलोपन चिह्न कमिट करें।
रद्द करेंगलती से हटाया गया हो तो क्लाउड की प्रतियाँ वापस लाएँ।
जोखिमभरा विलोपन रोका जा सकता है; उसके स्थायी क्लाउड स्थिति बनने से पहले उपयोगकर्ता को विकल्प मिलता है।

रीसायकल बिन और पुनर्प्राप्ति

वैध विलोपन से उपकरण की प्रति हटने से पहले Orkas उसे सिंक रीसायकल बिन में ले जाता है। टकराव में न चुने गए संस्करण समीक्षा के लिए संग्रहित किए जाते हैं। कमिट विफल होने पर लंबित अपलोड बने रहते हैं, ताकि अगला दौर उन्हीं बाइट का दोबारा उपयोग कर सके। अगर उपयोगकर्ता जानबूझकर क्लाउड डेटा साफ़ करता है, तो दूसरे उपकरण सफ़ाई चिह्न देखकर पुरानी सामग्री दोबारा अपलोड करना रोक देते हैं।

पुनर्प्राप्ति के साधन
रीसायकल बिनउपकरण से हटाई गई प्रतियाँ वापस पाई जा सकती हैं।
टकराव संग्रहविलय अनिश्चित होने पर न चुने गए संस्करण रखे जाते हैं।
लंबित अपलोडकमिट विफल होने के बाद सफल ऑब्जेक्ट अपलोड दोबारा इस्तेमाल किए जा सकते हैं।
सफ़ाई चिह्नजिन खातों का क्लाउड डेटा साफ़ किया गया है, उनमें पुराना डेटा चुपचाप वापस नहीं भरता।
सिंक पुनर्प्राप्ति कोई एक सुविधा नहीं है; यह विफलता के बिंदुओं पर रखे गए कई छोटे बचाव रास्ते हैं।

इससे हमें क्या मिलता है

परिणाम एक ऐसी सिंक प्रणाली है जिसकी सीमाएँ स्पष्ट हैं। उपकरण सामग्री तैयार और सत्यापित करते हैं। ऑब्जेक्ट स्टोरेज एन्क्रिप्टेड बाइट रखता है। सर्वर अनुक्रमणिका प्रकाशित करता है। खाते का सिंक लॉक और सर्वर लॉक दौरों को व्यवस्थित रखते हैं। नियम आम मामलों को संभालते हैं। मॉडल की सहायता अस्पष्ट टकरावों में मदद करती है। हटाने की पुष्टि और रीसायकल बिन उपयोगकर्ताओं को सबसे महँगी गलतियों से बचाते हैं।

क्लाउड सिंक के लिए Orkas को यही मानक चाहिए: कोई जादू नहीं, कोई अंधी प्रतिलिपि नहीं, बल्कि एक सावधानीपूर्ण तंत्र जो उपयोगकर्ता डेटा को उपकरणों के बीच ले जाए और फिर भी उसमें एकरूपता महसूस हो।