हर PoP तल (Plane) का एक सेल स्वयं का होता है
वोरोनोई टेसेलेशन
तल (plane) पर N बिंदु (PoPs: Points of Presence) रखें। क्षेत्र सीमाएँ इस प्रकार खींचें कि तल का हर बिंदु निकटतम PoP को आवंटित किया जाए। परिणाम एक वोरोनोई आरेख है: तल N सेल्स में विभाजित हो जाता है, हर PoP के लिए एक सेल, जिसमें उसके PoP के निकटतम सभी बिंदु होते हैं, किसी अन्य PoP की तुलना में।
CDN ज्यामिति: हर उपयोगकर्ता का अनुरोध निकटतम PoP को राउट होता है। हर PoP भौगोलिक तल का एक सेल सेवा करता है। सेल की सीमाएँ पड़ोसी PoPs के बीच की रेखाओं के लंब समद्विभाजक (perpendicular bisectors) होती हैं।
ज्यामितीय पठन:
- PoP जोड़ने से इसके पड़ोसी सेलों का आकार घट जाता है (और एक नया सेल बनता है)
- PoP हटाने पर उसका सेल पड़ोसियों के बीच पुनर्वितरित हो जाता है (पड़ोसियों पर क्षमता में अचानक वृद्धि)
- किसी सेल सीमा के पास स्थित उपयोगकर्ता लोड बैलेंसिंग बदलने पर PoPs के बीच स्विच हो सकता है
- किसी एक PoP की विफलता के दौरान, हर पड़ोसी का प्रभावी सेल आकार बढ़ जाता है
संचालनिक परिणाम: जब कोई PoP विफल होता है, तो उसका लोड गायब नहीं होता; वह पड़ोसी PoPs पर स्थानांतरित हो जाता है। यदि पड़ोसी PoPs केवल उनके सामान्य सेल के लिए ही आकारित किए गए हैं, तो यह अचानक बढ़ा हुआ लोड उन्हें भी विफल कर देगा (कैस्केडिंग PoP विफलता)। परिपक्व CDN प्रदाता प्रत्येक PoP को पड़ोसी विफलता के अचानक बढ़े लोड को ध्यान में रखकर आकारित करते हैं।
वह त्रिकोण असमानता जिससे आप धोखा नहीं दे सकते
भौतिकी तल निर्धारित करती है
प्रकाश निर्वात में ~300,000 किमी/सेकंड की गति से यात्रा करता है। फाइबर में, अपवर्तनांक के कारण, लगभग 200,000 किमी/सेकंड। इसका अर्थ है:
- ~1,000 किमी ऑप्टिकल फाइबर = ~5 ms एक-तरफा = ~10 ms राउंड-ट्रिप
- अमेरिका में तट से तट (~5,000 किमी) = ~50 ms RTT न्यूनतम
- अमेरिका से यूरोप (~8,000 किमी) = ~80 ms RTT न्यूनतम
- विपरीत ध्रुव (विश्व का आधा हिस्सा) = ~200 ms RTT न्यूनतम
यह एक निचला स्तर (floor) है। वास्तविक RTT हमेशा बड़ा होता है (राउटर हॉप्स, स्विचिंग, क्यूइंग, कंजेशन)। कोई भी एप्लिकेशन भौतिकी की अनुमति से तेज नहीं हो सकता।
त्रिकोण असमानता (Triangle Inequality)
तीन नोड A, B, C के लिए, त्रिकोण असमानता कहती है कि d(A,C) <= d(A,B) + d(B,C): एक प्रत्यक्ष पथ किसी अप्रत्यक्ष पथ से छोटा (या बराबर) होता है।
नेटवर्क पठन: यदि आपका सेवा A -> B -> C के रास्ते से रूटिंग करती है, बजाय A -> C के प्रत्यक्ष रास्ते के, तो लेटेंसी कम से कम दो लेग लेटेंसी का योग होगी। अक्सर B पर प्रोसेसिंग के कारण यह और भी अधिक होती है।
वास्तुकलात्मक पठन: हर अप्रत्यक्षता (प्रॉक्सी, लोड बैलेंसर, CDN हॉप) उपयोगकर्ता के अनुभूत विलंबता (perceived latency) में कम से कम एक राउंड-ट्रिप लेग जोड़ती है। CDN का लाभ इस तथ्य से आता है कि यह उपयोगकर्ता के लेग को छोटा बनाता है (PoP मूल स्रोत/origin से नearer होता है), भले ही कुल हॉप की संख्या बढ़ जाए।
मल्टी-रीजन गड्ढे (traps): एक सेवा जो क्षेत्र A से पढ़ती है लेकिन क्षेत्र B में लिखती है, हर लिखने (write) पर A-से-B की विलंबता का शिकार होती है। यदि A और B के बीच 100 ms का अंतर है, तो हर लिखने में न्यूनतम >= 100 ms लगते हैं। स्ट्रेच्ड डेटाबेस (stretched databases) हर बार इस न्यूनतम सीमा (floor) का भुगतान करते हैं।
फ्लोर का भुगतान करें
एक सेवा दो क्षेत्रों में चलती है: US-East (us-east-1) और EU-West (eu-west-1)। ये दोनों क्षेत्र लगभग 5,500 किमी दूर हैं। सेवा का प्राथमिक डेटाबेस US-East में है। EU उपयोगकर्ताओं के अनुरोध EU-West बैकएंड द्वारा संभाले जाते हैं, लेकिन हर लिखने (write) के लिए US-East प्राथमिक (primary) को कॉल करने की आवश्यकता होती है।
भौगोलिक क्षमता डिज़ाइन
संश्लेषण
अब आप Voronoi कोशिकाओं को PoP catchments के रूप में पढ़ सकते हैं, speed-of-light latency floors की गणना कर सकते हैं, और proxy tier पर queueing curve को लागू कर सकते हैं।
तीनों को लागू करें।
एक टीम एक सेवा के लिए CDN कवरेज की योजना बना रही है जिसके उपयोगकर्ता तीन महाद्वीपों पर स्थित हैं: उत्तरी अमेरिका (उपयोगकर्ताओं का 60%), यूरोप (30%), और एशिया (10%)। उनके पास 6 PoPs के लिए बजट है। प्रत्येक PoP एक स्थिर सेल को 70% उपयोगिता पर सर्व कर सकता है, बिना क्यूइंग वक्र की घुटी (knee) को पार किए।
कॉम्पैनियन कोर्स का समापन
कॉम्पैनियन कोर्स का समापन
आपने geometry-of- के सभी पाँच सह-पाठ (companion lessons) पूरे कर लिए हैं:
- प्रॉक्सी और मूल स्रोत (Proxies & Origins): निर्देशित ग्राफ़ (directed graphs), हॉप काउंट (hop count), फैन-इन / फैन-आउट (fan-in / fan-out), अप्रत्यक्षता (indirection)
- स्टेटलेस क्षैतिज स्केलिंग (Stateless Horizontal Scaling): लिली का नियम (Little's Law) के रूप में क्षेत्रफल, क्यूइंग वक्र (queueing curve) और उसकी घुटी (knee)
- इंग्रेस और एग्रेस अलगाव (Ingress & Egress Separation): द्विभागीय संरचना (bipartite structure), कट वर्टेक्स निष्कासन (cut vertex elimination), विभाजन सहनशीलता (partition tolerance)
- विफलता मोड और विस्फोट त्रिज्या (Failure Modes & Blast Radius): बीचवॉस केंद्रता (betweenness centrality), न्यूनतम-कट (min-cut), व्यास (diameter)
- अवलोकनीयता और क्षमता (Observability & Capacity) (यह पाठ): वोरोनोई PoP सेल, विलंबता त्रिकोण का तल (latency triangle floor), भौगोलिक क्षमता डिज़ाइन
मुख्य धागा (The throughline): वितरित प्रणालियों (distributed systems) में ज्यामितीय संरचना होती है। हर आर्किटेक्चर एक ग्राफ़ है। हर विलंबता तल (latency floor) एक त्रिकोण असमानता (triangle inequality) है। हर क्षमता निर्णय एक वक्र और एक घुटी (knee) है। एक बार जब आप ज्यामिति को देख लेते हैं, तो संचालनात्मक निर्णय उसी से निकलते हैं।
पाँच मुख्य पाठों (cs_distsys_*) के साथ मिलकर, आपके पास वेब-स्केल वितरित प्रणाली (web-scale distributed system) का एक कार्यशील मानसिक मॉडल और उस पर विचार करने के लिए ग्राफ-सैद्धांतिक अनुशासन (graph-theoretic discipline) है।
बहुत बढ़िया।