बैकएंड डेवलपर इंटरव्यू सवाल

लोड पड़ने पर आपका API timeouts लौटाने लगता है, पर डेटाबेस का CPU कम है और queries तेज़ दिख रही हैं। आप कहां देखेंगे?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

यह मेल connection pool के खत्म होने या ऐसी ही किसी concurrency सीमा की तरफ इशारा करता है, डेटाबेस के धीमे होने की तरफ नहीं। pool wait time और active बनाम idle connections देखें: requests connection के लिए कतार में हैं जबकि हर पकड़ने वाला उसे बहुत देर तक रोके है, अक्सर किसी ट्रांजैक्शन के अंदर धीमी external call की वजह से, किसी छूटे हुए timeout की वजह से, या ऐसे leaked connection की वजह से जो कभी लौटाया ही नहीं गया। पहले पकड़ने का समय ठीक करें, फिर pool का आकार सोच समझकर तय करें।

इंटरव्यूअर यह क्यों पूछते हैं

यह एक असली जैसी घटना है जहां सबसे साफ दिखने वाला metric स्वस्थ लगता है, इसलिए यह जांचता है कि आप पूरे request path पर सोचते हैं या नहीं। इंटरव्यूअर किसी संसाधन के लिए कतार लगने की बात, ट्रांजैक्शन के अंदर network calls का खतरा, और यह सुनना चाहते हैं कि बड़ा pool अक्सर गलत हल क्यों है। यह जानना कि pool का आकार instance की गिनती से नहीं बल्कि डेटाबेस की क्षमता से जुड़ा होना चाहिए, असली ऑपरेशनल अनुभव दिखाता है।

अपना जवाब कैसे स्ट्रक्चर करें

  • लक्षण को दोबारा ऐसे कहें: यह धीमी queries नहीं, किसी संसाधन का इंतज़ार है।
  • पुष्टि करने वाले metrics गिनाएं: pool wait time, active connections, saturation।
  • connection लंबे समय तक पकड़े रहने की आम वजहें बताएं।
  • समझाएं कि pool का आकार आप कैसे तय करते हैं और सिर्फ बढ़ा देने पर क्या होता है।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

तेज़ queries पर धीमी requests का मतलब है कि समय किसी चीज़ के इंतज़ार में जा रहा है, और शक की सुई pool पर ही जाती है। मैं pool wait time और connections कितनी देर पकड़े जाते हैं, यह देखूंगा, साथ ही डेटाबेस की तरफ active बनाम idle in transaction sessions की गिनती। ढेर सारे idle in transaction ही असली सुराग हैं: किसी ने ट्रांजैक्शन खोला और फिर ऐसा काम किया जो डेटाबेस का काम है ही नहीं। लगभग हमेशा वजह यही होती है, किसी payment provider को HTTP call या कोई धीमा serialization कदम ट्रांजैक्शन के अंदर बैठा है, तो हर request पांच मिलीसेकंड की जगह एक सेकंड तक connection पकड़े रहती है और pool ट्रैफ़िक के छोटे से हिस्से पर ही खाली हो जाता है। हल यह है कि critical section छोटा किया जाए: external call ट्रांजैक्शन से पहले या बाद में करो, statement और transaction timeouts लगाओ, और पक्का करो कि हर रास्ता error पर भी अपना connection लौटा दे। इसके बाद ही मैं आकार को छूऊंगा, वह भी संभलकर, क्योंकि हर instance उसे गुणा कर देता है। पकड़ने का समय ठीक किए बिना pool बढ़ा देना बस कतार को डेटाबेस पर सरका देता है और एक धीमे endpoint को पूरे सिस्टम का outage बना देता है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • दस एप्लिकेशन instances के लिए सही pool size आप कैसे तय करेंगे?
  • idle in transaction क्या बताता है, और आप इसे जल्दी कैसे पकड़ते हैं?
  • connection proxy कहां मदद करता है, और किसे हल नहीं करता?

बैकएंड डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं