Hacker News

कलह: प्रदर्शन अनुकूलन में एक केस अध्ययन

कलह: प्रदर्शन अनुकूलन में एक केस अध्ययन कलह का यह व्यापक विश्लेषण इसके मूल - मेवेज़ बिजनेस ओएस की विस्तृत जांच प्रदान करता है।

1 मिनट पढ़ा

Mewayz Team

Editorial Team

Hacker News

कलह: प्रदर्शन अनुकूलन में एक केस स्टडी

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

कौन से मुख्य तंत्र बड़े पैमाने पर डिसॉर्डर के प्रदर्शन को शक्ति प्रदान करते हैं?

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

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

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

डिस्कॉर्ड ने अपनी सबसे कुख्यात डेटाबेस बाधा को कैसे हल किया?

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

इंजीनियरिंग टीम की प्रतिक्रिया ScyllaDB में एक ऐतिहासिक माइग्रेशन थी, जो C++ में लिखा गया एक कैसंड्रा-संगत डेटाबेस है। अधिकांश मामलों में माइग्रेशन ने p99 पढ़ने की विलंबता को 40-125ms से घटाकर एकल-अंक मिलीसेकंड तक कम कर दिया। इससे भी महत्वपूर्ण बात यह है कि इसने क्लस्टर के प्रबंधन की परिचालन जटिलता को कम कर दिया, बुनियादी ढांचे की अग्निशमन के बजाय फीचर विकास पर ध्यान केंद्रित करने के लिए इंजीनियरिंग संसाधनों को मुक्त कर दिया।

💡 क्या आप जानते हैं?

Mewayz एक प्लेटफ़ॉर्म में 8+ बिजनेस टूल्स की जगह लेता है

सीआरएम · इनवॉइसिंग · एचआर · प्रोजेक्ट्स · बुकिंग · ईकॉमर्स · पीओएस · एनालिटिक्स। निःशुल्क सदैव योजना उपलब्ध।

निःशुल्क प्रारंभ करें →

"सर्वोत्तम प्रदर्शन अनुकूलन हमेशा तकनीकी रूप से सबसे परिष्कृत नहीं होता है - यह वह है जो उपयोगकर्ता के दर्द का कारण बनने वाली बाधाओं को सीधे संबोधित करते हुए जटिलता को कम करता है।" — डिस्कॉर्ड की डेटाबेस माइग्रेशन कहानी द्वारा मान्य एक सिद्धांत।

यह मामला किसी भी बढ़ते मंच के लिए एक महत्वपूर्ण सबक दिखाता है: विकास के एक चरण के लिए सही उपकरण अगले चरण के लिए गलत उपकरण बन सकता है। निरंतर बेंचमार्किंग और प्रवासन की इच्छा खराब योजना के संकेत नहीं हैं - वे इंजीनियरिंग परिपक्वता के संकेत हैं।

व्यवसाय कौन से वास्तविक-विश्व कार्यान्वयन पाठ लागू कर सकते हैं?

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

अनुकूलन से पहले प्रोफ़ाइल: डिस्कोर्ड ने अनुमान के बजाय माप के माध्यम से लगातार सटीक बाधाओं की पहचान की, गैर-महत्वपूर्ण पथों पर व्यर्थ प्रयास को रोका।

I/O-भारी कार्यभार के लिए समवर्ती-प्रथम भाषाएँ चुनें: संदेश रूटिंग के लिए Elixir पर जाने से थ्रेड-प्रति-कनेक्शन मॉडल की तुलना में CPU ओवरहेड नाटकीय रूप से कम हो गया।

गणना से भंडारण को अलग करें: वास्तविक समय वितरण परत से संदेश भंडारण को अलग करके, डिस्कॉर्ड ने प्रत्येक परत को उसके विशिष्ट लोड पैटर्न के आधार पर स्वतंत्र रूप से स्केल करने में सक्षम बनाया।

बिग-बैंग पुनर्लेखन के बजाय वृद्धिशील प्रवासन को अपनाएं: क्रिटिकल सिस्टम

Ready to Simplify Your Operations?

Whether you need CRM, invoicing, HR, or all 207 modules — Mewayz has you covered. 138K+ businesses already made the switch.

Get Started Free →

Mewayz मुफ़्त आज़माएं

सीआरएम, इनवॉइसिंग, प्रोजेक्ट्स, एचआर और अधिक के लिए ऑल-इन-वन प्लेटफॉर्म। कोई क्रेडिट कार्ड आवश्यक नहीं।

आज ही अपने व्यवसाय का प्रबंधन अधिक स्मार्ट तरीके से शुरू करें।

30,000+ व्यवसायों से जुड़ें। सदैव मुफ़्त प्लान · क्रेडिट कार्ड की आवश्यकता नहीं।

क्या यह उपयोगी पाया गया? इसे शेयर करें।

क्या आप इसे व्यवहार में लाने के लिए तैयार हैं?

30,000+ व्यवसायों में शामिल हों जो मेवेज़ का उपयोग कर रहे हैं। सदैव निःशुल्क प्लान — कोई क्रेडिट कार्ड आवश्यक नहीं।

मुफ़्त ट्रायल शुरू करें →

कार्रवाई करने के लिए तैयार हैं?

आज ही अपना मुफ़्त Mewayz ट्रायल शुरू करें

ऑल-इन-वन व्यवसाय प्लेटफॉर्म। क्रेडिट कार्ड की आवश्यकता नहीं।

निःशुल्क प्रारंभ करें →

14-दिन का निःशुल्क ट्रायल · क्रेडिट कार्ड नहीं · कभी भी रद्द करें