Loading…
Loading…
एक लोकल साउथ अफ़्रीकी डेवलपर को पता चलता है कि उसके डैशबोर्ड को पंद्रह साधारण नंबर लोड करने में 7.6 सेकंड लगते हैं क्योंकि लोकल टेस्टिंग प्रोडक्शन डेटा स्केल से चूक गई थी।
पंद्रह नंबर। चार स्टेट टाइल्स, तीन डोनट स्लाइस, छह बार, और चार हालिया इनवॉइस की एक लिस्ट। सैंडटन (Sandton) के रहने वाले डेवलपर खोलू डलामिनी (Kholo Dlamini) के लिए एक कड़वी सच्चाई का सामना करने के लिए इतना ही काफी था, जब लॉगिन के बाद उनके मुख्य क्लाइंट डैशबोर्ड को रेंडर होने में 7.6 सेकंड लगे। महीनों तक, जोहान्सबर्ग और केप टाउन में लोकल डेवलपमेंट मशीनों पर एप्लीकेशन काफी तेज़ और रिस्पॉन्सिव लग रही थी। चार टेस्ट इनवॉइस पर, एंडपॉइंट ने 111 मिलीसेकंड में रिस्पॉन्स दिया, जिससे एक छिपी हुई आर्किटेक्चरल कमी पूरी तरह छिप गई जो आखिरकार हर भुगतान करने वाले एंटरप्राइज यूजर को परेशान करती।

लोकल डेवलपमेंट एनवायरनमेंट एक विनम्र झूठ होते हैं। वे कभी भी लाइव प्रोडक्शन डेटाबेस की अराजक, भारी-भरकम वास्तविकता को दोहरा नहीं सकते, जिसका उपयोग सैकड़ों सक्रिय व्यवसाय रोज़ाना एक साथ ट्रांजेक्शन करने के लिए करते हैं। जब डेवलपर्स केवल कम मात्रा वाले सीड डेटा पर भरोसा करते हैं, तो परफॉरमेंस की अड़चनें पूरी तरह से अदृश्य रहती हैं, जब तक कि असली यूजर्स सिस्टम पर दबाव डालना शुरू नहीं करते। यह एक क्लासिक जाल है जो अनुभवी इंजीनियरों को भी चौंका देता है।
अधिकांश टीमें यह समझे बिना अपडेट पुश कर देती हैं कि दस पंक्तियों (rows) के साथ अच्छा परफॉर्म करने वाली क्वेरी दस हजार पंक्तियों के सामने बिखर जाएगी। खोलू ने यह सबक बहुत मुश्किल से सीखा जब डरबन और प्रिटोरिया से क्लाइंट की शिकायतें आनी शुरू हुईं। डैशबोर्ड जटिल नहीं था, फिर भी यह नब्बे के दशक के अंत के डायल-अप इंटरनेट की तरह रेंग रहा था।
"आपका लोकल एनवायरनमेंट एक सुरक्षित सैंडबॉक्स है, लेकिन प्रोडक्शन वह जगह है जहाँ वास्तविकता पलटवार करती है।"
जब क्वेरीज़ में उचित इंडेक्सिंग की कमी होती है या डेटा को कुशलता से एग्रीगेट करने में विफल रहती हैं, तो पंक्तियों की संख्या बढ़ने के साथ डेटाबेस का तनाव तेजी से बढ़ता है। एक बार जब ट्रांजेक्शन हिस्ट्री हजारों पंक्तियों के संचित व्यावसायिक डेटा को पार कर जाती है, तो एक मामूली क्वेरी फ़ेच एक बड़ा बॉटलनेक बन जाता है। एग्रीगेटेड आंकड़े फ़ेच करने के बजाय, बैकएंड हर एक क्लाइंट अनुरोध पर रॉ रिकॉर्ड्स के माध्यम से पुनरावृत्ति (iterate) कर रहा था।
यह आधुनिक सॉफ्टवेयर इंजीनियरिंग का सबसे बड़ा ब्लाइंड स्पॉट है। हम बेहतरीन सैंपल डेटा के साथ 'हैप्पी पाथ' के लिए निर्माण करते हैं जो वास्तविक एंटरप्राइज उपयोग पैटर्न से मेल नहीं खाता। साउथ अफ़्रीकी स्टार्टअप अक्सर दुबली-पतली (lean) इंजीनियरिंग टीमों के साथ काम करते हैं, जिसका मतलब है कि स्प्रिंट प्लानिंग के दौरान सक्रिय रूप से (proactively) के बजाय परफॉरमेंस ऑडिट प्रतिक्रियात्मक रूप से (reactively) होते हैं।
📌 मुख्य बिंदु: दस से कम रिकॉर्ड वाले मॉक डेटासेट के साथ टेस्टिंग करने से इस बात की गारंटी मिलती है कि आप परफॉरमेंस रिग्रेशन को सीधे प्रोडक्शन क्लाइंट्स तक पहुंचाएंगे।
इस समस्या को हल करने के लिए बिना इंडेक्स वाले टेबल स्कैन को हटाना पड़ा और भारी एग्रीगेशन लॉजिक को एक सिंगल कैश्ड अनुरोध में फिर से लिखना पड़ा। विदेशी कुंजियों (foreign keys) पर उचित इंडेक्स का उपयोग करने के लिए डेटाबेस क्वेरीज़ को रिफैक्टर किया गया, जिससे सर्वर प्रोसेसिंग ओवरहेड में भारी कमी आई। लोड होने का समय 7.6 सेकंड से गिरकर तेज गति से 240 मिलीसेकंड हो गया।
खोलू ने साउथ अफ्रीका भर के एंटरप्राइज क्लाइंट्स द्वारा उपयोग किए जाने वाले 15 मुख्य डैशबोर्ड मेट्रिक्स को प्रभावित करने वाले परफॉरमेंस बॉटलनेक की खोज की। इस भारी गति गिरावट का कारण उचित कैशिंग लेयर के बिना 5,000 से अधिक रॉ ट्रांजेक्शनल पंक्तियों पर निष्पादित होने वाले अनऑप्टिमाइज़्ड डेटाबेस लूप्स को पाया गया।
डेटा फ़ेच करने की रणनीति को फिर से लिखने से डेटाबेस सर्वर के लिए अनावश्यक राउंड-ट्रिप पूरी तरह से समाप्त हो गए। कोड के प्रोडक्शन एनवायरनमेंट तक पहुँचने से पहले इसी तरह की लेटेंसी स्पाइक्स को पकड़ने के लिए बाद में मॉनिटरिंग टूल को एकीकृत (integrate) किया गया।
सामने छिपे हुए सॉफ्टवेयर बग्स को डिप्लॉयमेंट का दिन आने से पहले पकड़ना हमेशा सबसे कठिन होता है। आपकी लोकल मशीन इस समय आपकी डेवलपमेंट टीम से कौन सी डेटाबेस लेटेंसी छिपा रही है?
अपनी सबसे खराब प्रोडक्शन परफॉरमेंस शॉक कहानियों को लोकल इंजीनियरिंग साथियों के साथ शेयर करें और अपने अगले बड़े रिलीज़ से पहले अपने डेटाबेस इंडेक्स का ऑडिट करें।
बैकएंड पहले से कैलकुलेट किए गए एग्रीगेट्स को फ़ेच करने के बजाय हजारों रॉ ट्रांजेक्शनल पंक्तियों में बिना इंडेक्स वाले डेटाबेस लूप चला रहा था।
इसे शेयर करें
यह लेख उपयोगी लगा? अपने दोस्तों के साथ शेयर करें।
Rate this article
Leave a comment
आपको यह लेख कैसा लगा?
संबंधित विषय
आपको यह भी पसंद आएगा
आपके लिए चुनी गई खबरें

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





Enjoy this article?
Get fresh stories delivered to your inbox every morning.