सॉफ्टवेयर इंजीनियर इंटरव्यू सवाल

बताइए कि ACID का मतलब क्या है और हर property असल में क्या गारंटी देती है।

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

छोटा जवाब

ACID बताता है कि एक transaction आपको क्या गारंटी देता है। Atomicity यानी या तो सारी writes लगेंगी या कोई नहीं। Consistency यानी transaction डेटाबेस को एक valid state से दूसरी valid state में ले जाता है, अपने constraints का पालन करते हुए। Isolation यानी साथ साथ चलने वाले transactions एक दूसरे का अधूरा काम नहीं देखते, उतना जितना isolation level वादा करता है। Durability यानी commit लौटने के बाद डेटा crash में भी बचा रहता है।

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

पैसे, इन्वेंटरी या double writes से जुड़ा लगभग हर प्रोडक्शन बग यहीं की गलतफहमी से आता है। इंटरव्यूअर देखना चाहता है कि आप इन्हें जादू नहीं, डेटाबेस की दी हुई गारंटी मानते हैं, और खासकर यह जानते हैं कि isolation ट्यून होता है और ज्यादातर सिस्टम में डिफॉल्ट पूरी serializability नहीं होती। सटीक परिभाषाएं दिखाती हैं कि आप concurrency में correctness पर सोच सकते हैं।

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

  • चारों अक्षरों को एक एक वाक्य में परिभाषित कीजिए।
  • इस बात पर जोर दीजिए कि isolation एक डायल है, एक ही सेटिंग नहीं।
  • किसी एक property को अपने देखे हुए असली बग से जोड़िए।
  • बताइए कि distributed होने पर क्या बदल जाता है।

उदाहरण जवाब

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

Atomicity यानी सब कुछ या कुछ भी नहीं: अगर मैं एक अकाउंट से डेबिट और दूसरे में क्रेडिट करता हूं, तो या तो दोनों writes commit होंगी या एक भी नहीं। Consistency का मतलब है कि transaction के बाद डेटाबेस अपने constraints पूरे करता है, यानी foreign keys और check constraints दोनों तरफ टिके रहते हैं। Isolation सबसे दिलचस्प है, क्योंकि यह वादा कम और डायल ज्यादा है। ज्यादातर डेटाबेस डिफॉल्ट में read committed पर होते हैं, जिसमें non repeatable reads और phantom rows अब भी मुमकिन हैं, तो अगर आप serializable व्यवहार मान लेंगे तो एक दिन race शिप कर देंगे। Durability का मतलब है कि commit लौटने के बाद write बिजली जाने पर भी बची रहती है, आम तौर पर इसलिए कि वह write ahead log तक पहुंचकर flush हो चुकी होती है। मुझे यह एक coupon redemption endpoint पर काटा था। हमने बचे हुए uses चेक किए और फिर read committed के तहत दो अलग statements में घटाया, और साथ साथ आई दो requests दोनों को एक use बचा हुआ दिखा। इसका फिक्स था एक ही conditional update, जिसकी where clause बचे हुए count पर थी, जिससे चेक और write एक साथ atomic हो गए।

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

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

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

  • आपका डेटाबेस डिफॉल्ट में कौन सा isolation level चला रहा है?
  • phantom read क्या है और कौन सा level उसे रोकता है?
  • nodes पर shard करने के बाद ये गारंटी कैसे बदल जाती हैं?

सॉफ्टवेयर इंजीनियर के और सवाल

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

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

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

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

GhostPilot पाएं