batch job को throttle या रोककर तुरंत का नुकसान बंद करें, फिर दोनों workload को अलग करें ताकि वे आपस में होड़ ही न कर सकें। अगर job ज्यादातर read करती है तो उसे read replica पर भेजें, उसे सख्त सीमा वाला अपना connection pool दें, और काम को रुकावटों के साथ टुकड़ों में बांटें ताकि वह database पर कभी कब्जा न करे। लंबे समय के लिए interactive traffic के लिए capacity रिजर्व करें और यूजर को पता चलने से पहले connection pool भरने पर alert करें।
इंटरव्यूअर यह क्यों पूछते हैं
यह incident के भेस में resource isolation का सवाल है। इंटरव्यूअर पहले तुरंत राहत और फिर ढांचागत हल चाहता है, सिर्फ बड़ी connection limit नहीं। वे देखते हैं कि आप समझते हैं या नहीं कि अधिकतम connection बढ़ाने से अक्सर हालत बिगड़ती है, और यह भी कि आप तय कर सकते हैं या नहीं कि कौन सा workload कुर्बान होना चाहिए, क्योंकि बचाने लायक लगभग हमेशा interactive रास्ता होता है।
अपना जवाब कैसे स्ट्रक्चर करें
- पहले गड़बड़ करने वाली job को throttle या रोककर राहत दें।
- समझाएं कि सिर्फ connection limit बढ़ाना उल्टा क्यों पड़ता है।
- workload को ढांचागत रूप से अलग करें, replica और अलग pool।
- capacity का आरक्षण और भरने पर पहले से चेतावनी जोड़ें।
उदाहरण जवाब
पहले खून बहना रोकिए। batch job को रोकिए या throttle कीजिए, क्योंकि interactive रास्ता वही है जो ग्राहक महसूस करते हैं और batch एक घंटे बाद चल सकती है और किसी को फर्क नहीं पड़ेगा। लुभावना हल यह लगता है कि अधिकतम connection बढ़ा दो, और उससे आमतौर पर हालत बिगड़ती है, क्योंकि हर connection की memory और scheduling लागत होती है और आपके पास सिर्फ व्यस्त database के बजाय एक ऐसा database आ जाता है जो पिस रहा है। तो असली हल isolation है। अगर job ज्यादातर read करती है तो वह read replica पर चली जाती है, जिससे primary पर से load पूरी तरह हट जाता है। उसे अपने credentials और सख्त सीमा वाला अपना pool मिलता है, जिसका आकार ऐसा हो कि पूरी तरह भर जाने पर भी API के लिए खूब गुंजाइश बचे। और खुद job टुकड़ों में बंट जाती है, तो वह एक विशाल transaction जो lock पकड़े रखे और replication lag बढ़ा दे, उसकी जगह छोटे batch में एक छोटी रुकावट और statement timeout के साथ process करती है। फिर रोकथाम: pool utilization और लंबी चलने वाली query पर ऐसे थ्रेशोल्ड पर alert जो यूजर को दिखने से पहले बज जाए, ताकि हमें यह support ticket के बजाय monitoring से पता चले।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- अगर batch job को write भी करना हो, तो replica विकल्प नहीं बचता, तब क्या?
- दोनों connection pool का आकार आप कैसे तय करेंगे?
- database के आगे कोई connection pooler इसे कैसे बदल देता है?
क्लाउड इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें