कुछ भी खरीदने से पहले पता कीजिए कि CPU जल किस चीज पर रही है। अगर मुट्ठी भर queries का ही दबदबा है, तो उन पर index लगाइए या उन्हें दोबारा लिखिए। अगर सच में read की मात्रा ज्यादा है, तो replicas जोड़िए और read only ट्रैफिक वहां भेजिए, फिर सबसे गरम नतीजे छोटे time to live के साथ cache कीजिए। N plus one pattern हटाना और page size पर सीमा लगाना अक्सर हार्डवेयर से ज्यादा फायदा देता है। वक्त खरीदने के लिए इंस्टेंस बड़ा कर लीजिए, फिर query pattern ठीक से सुधारिए।
इंटरव्यूअर यह क्यों पूछते हैं
इंटरव्यूअर देखना चाहते हैं कि आप खर्च करने से पहले प्रोफाइल करते हैं या नहीं। जिस workload पर एक बिना index वाली query हावी है, वहां replicas जोड़ना पैसा बर्बाद करता है और समस्या छिपा देता है। वे यह भी जांच रहे हैं कि आप जानते हैं replication asynchronous है, तो reads हटाने से ऐसा पुरानापन आता है जिसके लिए डिजाइन करना पड़ता है, और caching की correctness में कीमत होती है। अच्छे जवाब फिक्स को लागत, जोखिम और लगने वाले वक्त के क्रम में रखते हैं।
अपना जवाब कैसे स्ट्रक्चर करें
- कुछ भी बदलने से पहले नापिए कि कौन सी queries हावी हैं।
- पहले query और index की दिक्कतें ठीक कीजिए, वे सबसे सस्ती हैं।
- सच में ज्यादा मात्रा के लिए replicas या caching जोड़िए।
- replication lag और उसे संभालने का तरीका साफ बताइए।
उदाहरण जवाब
कुछ भी जोड़ने से पहले मैं जानना चाहता हूं कि CPU कर क्या रही है, तो मैं pg_stat_statements या उसके बराबर की जगह से कुल समय के हिसाब से top queries निकालता हूं। मेरे तजुर्बे में थोड़ी सी queries ही ज्यादातर नुकसान करती हैं, और अक्सर उनमें से एक ORM से आया N plus one होता है जो कस्टमर के बढ़ने के साथ और बिगड़ गया। replicas चलाने के मुकाबले उसे ठीक करना मुफ्त है। अगर प्रोफाइल सच में कहता है कि read की मात्रा ही एक जैसी ज्यादा है, तो replicas समझ में आते हैं और मैं read only endpoints वहां भेज देता हूं। पेच replication lag का है, तो जो चीज write के तुरंत बाद पढ़ती है वह primary पर जाती है, वरना यूजर अपना ही अपडेट गायब होते देखेगा। उसके बाद मैं सबसे गरम कुछ endpoints को छोटे time to live के साथ cache करता हूं। साथ साथ मैं इंस्टेंस को vertically बड़ा कर दूंगा, क्योंकि वह पंद्रह मिनट का बदलाव है जो बाकी काम ठीक से करने के लिए मोहलत दे देता है। मैं टीम से साफ कह देता हूं कि बड़ा करना एक घड़ी है, फिक्स नहीं।
जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।
देखें यह कैसे काम करता हैफॉलो-अप सवाल जिनकी उम्मीद रखें
- एप्लिकेशन कोड में आप reads और writes को कैसे बांटेंगे?
- जो यूजर लिखने के तुरंत बाद पढ़ता है उसे आप कैसे संभालेंगे?
- किस मोड़ पर आप इसके बजाय sharding करेंगे?
सॉफ्टवेयर इंजीनियर के और सवाल
आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।
मेरे सवाल प्रेडिक्ट करें