अनुक्रमणिका[लपवा][दाखवा]
- 1. सिस्टम डिझाइन म्हणजे काय?
- 2. सिस्टम डिझायनरची सर्वात महत्वाची वैशिष्ट्ये कोणती आहेत?
- 3. CAP प्रमेय नक्की काय आहे?
- 4. लोड बॅलन्सिंगद्वारे तुम्हाला काय समजते?
- 5. असिंक्रोनस प्रोग्रामिंग आणि समांतर प्रोग्रामिंगमध्ये काय फरक आहे?
- 6. क्षैतिज आणि अनुलंब स्केलिंगमध्ये काय फरक आहे?
- 7. विलंबता, थ्रूपुट आणि सिस्टम उपलब्धता याचा नेमका अर्थ काय?
- 8. ACID गुणधर्म काय आहेत?
- 9. शार्डिंग म्हणजे नक्की काय?
- 10. CDN म्हणजे काय?
- 11. CDN का वापरावे?
- 12. शार्डिंग आणि विभाजन यात काय फरक आहे?
- 13. कॅशिंग म्हणजे नक्की काय?
- 14. CDN एज सर्व्हर काय आहेत?
- 15. सिस्टम डिझाइनसाठी विविध सुसंगतता नमुने काय आहेत?
- 16. आशावादी लॉकिंग म्हणजे काय?
- 17. “नेता निवडणूक” म्हणजे नेमके काय?
- 18. TinyURL सारखी URL शॉर्टनिंग सेवा डिझाइन करण्यासाठी तुमचा दृष्टिकोन काय आहे?
- 19. ट्विटर डिझाईन करण्यासाठी तुमचा दृष्टिकोन काय आहे?
- 20. Facebook साठी न्यूजफीड सिस्टम तयार करा
- 21. सिस्टमची BASE गुणधर्म काय आहे?
- 22. आयपी अॅड्रेस अॅफिनिटी टेक्निकसह लोड बॅलन्सिंग म्हणजे काय?
- 23. कॅशे रिप्लेसमेंट (किंवा इव्हिक्शन पॉलिसी) अल्गोरिदम नेमके काय आहेत?
- 24. वितरित व्यवहार म्हणजे नेमके काय?
- 25. उपासमार म्हणजे नेमके काय?
- निष्कर्ष
आपण प्रारंभ करण्यापूर्वी, आम्ही आमचे वाचण्याची शिफारस करतो सिस्टम डिझाइनवर परिचयात्मक मार्गदर्शक तुमचे मूलभूत ज्ञान ताजेतवाने करण्यासाठी.
सिस्टम डिझाइनचे ज्ञान आवश्यक असलेल्या पदासाठी मुलाखत देताना, तुम्हाला तुमच्या पार्श्वभूमीबद्दल बोलण्याची आणि क्लिष्ट प्रणाली विकसित करण्याची तुमची क्षमता प्रदर्शित करण्याची संधी असते.
संभाव्य नियोक्त्याशी बोलत असताना, तुम्ही ज्या पद्धतीने तुमचे कौशल्य व्यक्त करता ते तुम्हाला या पदासाठी सक्षम उमेदवार असल्याचे दाखवण्यात मदत करू शकते.
मूलभूत डिझाइन संकल्पना शिकून आणि त्याबद्दलच्या चौकशीला तुम्ही कसा प्रतिसाद द्याल याचा विचार करून तुम्ही तुमच्या नोकरीच्या मुलाखतीची तयारी करू शकता. तुम्हाला तुमच्या पुढील मुलाखतीची तयारी करण्यात मदत करण्यासाठी आम्ही या पोस्टमध्ये काही ठराविक सिस्टम डिझाइन मुलाखत प्रश्न आणि उत्तरे पाहू.
1. सिस्टम डिझाइन म्हणजे काय?
मॉड्यूल, आर्किटेक्चर, घटक आणि त्यांचे इंटरफेस आणि पूर्वनिर्धारित निकषांवर आधारित डेटासह सिस्टम वैशिष्ट्ये स्थापित करण्याची प्रक्रिया सिस्टम डिझाइन म्हणून ओळखली जाते.
कंपनीची किंवा संस्थेची विशिष्ट उद्दिष्टे आणि उद्दिष्टे पूर्ण करण्यासाठी सिस्टम परिभाषित करणे, तयार करणे आणि डिझाइन करणे ही प्रक्रिया आहे. सिस्टम डिझाइन हे कोडिंगपेक्षा सिस्टम विश्लेषण, आर्किटेक्चरल पॅटर्न, API, डिझाइन पॅटर्न आणि सर्व एकत्र चिकटवण्याबद्दल अधिक आहे.
2. सिस्टम डिझायनरची सर्वात महत्वाची वैशिष्ट्ये कोणती आहेत?
- वापरकर्ता संवाद
- बाह्य API कॉल
- ऑफलाइन प्रक्रिया
3. CAP प्रमेय नक्की काय आहे?
CAP (सुसंगतता-उपलब्धता-विभाजन सहिष्णुता) प्रमेयानुसार, वितरित प्रणाली C, A, आणि P सर्व एकाच वेळी सुनिश्चित करू शकत नाही. ते जास्तीत जास्त तीनपैकी दोनच आश्वासने देऊ शकते. हे समजण्यासाठी आम्हाला मदत करण्यासाठी वितरित डेटाबेस प्रणाली वापरू.
- सुसंगतता: हे निर्दिष्ट करते की डेटाबेस व्यवहार पूर्ण झाल्यानंतर डेटा सुसंगत असणे आवश्यक आहे. उदाहरणार्थ, डेटाबेस अपडेटनंतर सर्व क्वेरींनी समान प्रतिसाद दिला पाहिजे.
- उपलब्धता: डेटाबेस नेहमी उपलब्ध आणि प्रतिसादात्मक असणे आवश्यक आहे.
- विभाजन सहिष्णुता: जरी संप्रेषण समस्याप्रधान झाले तरीही डेटाबेस सिस्टमने कार्य करणे सुरू ठेवले पाहिजे.
4. लोड बॅलन्सिंगद्वारे तुम्हाला काय समजते?
लोड बॅलेंसिंग बॅकएंड सर्व्हरच्या संचामध्ये येणारी रहदारी कार्यक्षमतेने विखुरण्याची प्रक्रिया आहे. हे सर्व्हर पूल म्हणून ओळखले जातात. आधुनिक वेबसाइट्स ग्राहकांच्या लाखो प्रश्न हाताळण्यासाठी आणि त्यांना जलद आणि विश्वासार्हपणे प्रतिसाद देण्यासाठी तयार केल्या आहेत. या मागण्या हाताळण्यासाठी अधिक सर्व्हरची आवश्यकता असेल.
या प्रकरणात, विनंतीचा जास्त बोजा टाळण्यासाठी प्रत्येक सर्व्हरमध्ये रहदारी कार्यक्षमतेने विभाजित करणे महत्वाचे आहे. लोड बॅलन्सर ट्रॅफिक कॉप म्हणून कार्य करते, विनंत्या अडवते आणि त्यांना उपलब्ध सर्व्हरमध्ये रूट करते जेणेकरुन कोणत्याही सर्व्हरवर जास्त भार पडू नये, संभाव्यत: ऍप्लिकेशन कार्यप्रदर्शन खराब होईल.
5. असिंक्रोनस प्रोग्रामिंग आणि समांतर प्रोग्रामिंगमध्ये काय फरक आहे?
जेव्हा तुम्ही कोणतीही गोष्ट एसिंक्रोनस पद्धतीने चालवता, तेव्हा तुम्ही दुसऱ्या गोष्टीवर जाण्यापूर्वी तुम्हाला ते पूर्ण होण्याची प्रतीक्षा करण्याची गरज नाही. समांतरता अनेक कार्यांच्या एकाचवेळी अंमलबजावणीचा संदर्भ देते.
जेव्हा तुम्ही नोकऱ्यांना श्रमाच्या वेगवेगळ्या भागांमध्ये विभाजित करू शकता, तेव्हा समांतरता प्रभावीपणे कार्य करते. Async आणि कॉलबॅक हे एकरूपतेचे प्रतिनिधित्व करण्याचे साधन (साधन किंवा यंत्रणा) आहेत, म्हणजे संप्रेषण आणि संसाधने शेअर करू शकणार्या घटकांचा समूह.
6. क्षैतिज आणि अनुलंब स्केलिंगमध्ये काय फरक आहे?
उपकरणांच्या विखुरलेल्या नेटवर्कमध्ये प्रक्रिया आणि मेमरीची मागणी पसरवणाऱ्या नेटवर्कमध्ये नवीन संगणकीय उपकरणे जोडणे याला क्षैतिज स्केलिंग असे म्हणतात. सोप्या भाषेत सांगायचे तर, सध्याच्या पूलमध्ये नवीन सर्व्हर उदाहरणे जोडली गेली आहेत आणि रहदारीचा भार या उपकरणांमध्ये कार्यक्षमतेने पसरला आहे.
व्हर्टिकल स्केलिंग म्हणजे RAM, कार्यक्षम CPUs जोडून किंवा उच्च क्षमतेच्या नवीन मशीनमध्ये स्थलांतर करून एका संगणकाची संसाधन क्षमता वाढवण्याच्या कल्पनेला सूचित करते. कोणत्याही प्रोग्रामिंग बदलांची आवश्यकता न ठेवता सर्व्हरची कार्यक्षमता वाढवता येते.
7. विलंबता, थ्रूपुट आणि सिस्टम उपलब्धता याचा नेमका अर्थ काय?
कार्यप्रदर्शन हा सिस्टम डिझाइनचा एक आवश्यक पैलू आहे कारण ते आमच्या सेवांच्या गती आणि विश्वासार्हतेमध्ये योगदान देते. तीन सर्वात महत्वाचे कार्यप्रदर्शन उपाय खालीलप्रमाणे आहेत:
- एक संदेश मिलिसेकंदात वितरीत करण्यासाठी लागणाऱ्या वेळेला विलंबता म्हणतात.
- एका विशिष्ट कालावधीत प्रणालीद्वारे यशस्वीरित्या हस्तांतरित केलेल्या डेटाची मात्रा थ्रूपुट म्हणून संदर्भित केली जाते. ते मोजण्यासाठी बिट्स प्रति सेकंद वापरतात.
- प्रश्नांवर प्रतिक्रिया देण्यासाठी प्रणाली किती वेळ उपलब्ध आहे हे त्याच्या उपलब्धतेद्वारे परिभाषित केले जाते. सिस्टम अपटाइम / (सिस्टम अपटाइम + डाउनटाइम) हे त्याची गणना करण्याचे सूत्र आहे.
8. ACID गुणधर्म काय आहेत?
- आण्विकता: हे खात्री देते की डेटाबेस बदल एकतर सर्व किंवा काहीही नाहीत.
- सुसंगतता: डेटाबेसमधील डेटा मूल्ये सुसंगत आहेत.
- पृथक्करण: हे दोन व्यवहार वेगळे करणे संदर्भित करते.
- टिकाऊपणा: सर्व्हर अयशस्वी झाला तरीही डेटा जतन केला जातो.
9. शार्डिंग म्हणजे नक्की काय?
शार्डिंग हे एक प्रचंड तार्किक डेटासेट अनेक डेटाबेसमध्ये विभाजित करण्याचे तंत्र आहे. हे क्षैतिज डेटा विभाजनाचा देखील संदर्भ देते कारण डेटा अनेक संगणकांवर संग्रहित केला जाईल. परिणामी, एक सामायिक डेटाबेस एका प्रचंड संगणकापेक्षा अधिक क्वेरी हाताळू शकतो.
10. CDN म्हणजे काय?
सामग्री वितरण नेटवर्क हे संगणकांचे जागतिक नेटवर्क आहे जे इंटरनेट माहिती जलद प्रदान करण्यासाठी सहयोग करते. हे HTML पृष्ठे, JavaScript फाइल्स, स्टाईलशीट्स, चित्रे आणि इंटरनेट सामग्री लोड करण्यासाठी आवश्यक असलेल्या व्हिडिओंसारख्या घटकांची जलद वितरण सक्षम करते.
11. CDN का वापरावे?
- वेबसाइटच्या जवळपास 80% स्टॅटिक रिसोर्सेसचा विचार करता, सीडीएनचा अवलंब केल्याने मूळ सर्व्हरवरील ताण लक्षणीयरीत्या कमी होतो.
- प्रवासासाठी कमी अंतर असल्याने, अनेक भौगोलिक क्षेत्रांतील अभ्यागत असलेल्या वेबसाइट मालकांना माहिती जलद पुरवली जाईल.
- CDN च्या वापरकर्त्यांना ट्रॅफिक वाढीच्या प्रतिसादात त्वरीत स्केल अप आणि डाउन करण्याच्या क्षमतेचा देखील फायदा होतो.
12. शार्डिंग आणि विभाजन यात काय फरक आहे?
डेटाबेस शार्डिंग - डेटाबेस शार्डिंग ही एकाच डेटासेटचे असंख्य डेटाबेसमध्ये विभाजन करण्याची एक पद्धत आहे जेणेकरून ते वेगवेगळ्या वर्कस्टेशनवर संग्रहित केले जाऊ शकते. मोठे डेटासेट लहान भागांमध्ये मोडले जाऊ शकतात आणि अनेक डेटा नोड्समध्ये संग्रहित केले जाऊ शकतात, ज्यामुळे सिस्टमची एकूण स्टोरेज क्षमता वाढते.
अनेक मशीन्समध्ये डेटा पसरवून, शेअर्ड डेटाबेस एका सिस्टीमपेक्षा अधिक क्वेरी हाताळू शकतो.
डेटाबेस विभाजन ही संग्रहित डेटाबेस ऑब्जेक्ट्स (टेबल, अनुक्रमणिका आणि दृश्ये) वेगळ्या तुकड्यांमध्ये विभाजित करण्याची प्रक्रिया आहे. नियंत्रणक्षमता, कार्यप्रदर्शन आणि उपलब्धता वाढवण्यासाठी, मोठ्या डेटाबेस ऑब्जेक्ट्सचे विभाजन केले जाते.
काही प्रकरणांमध्ये, विभाजन डेटामध्ये प्रवेश करताना विभाजन गती सुधारू शकते. विभाजनामुळे निर्देशांकाचा आकार कमी होऊ शकतो आणि इंडेक्सेसमध्ये अग्रगण्य स्तंभ म्हणून काम करून मेमरीमध्ये सर्वात आवश्यक निर्देशांक शोधण्याची शक्यता वाढते.
13. कॅशिंग म्हणजे नक्की काय?
कॅशिंग हे कॅशे म्हणून ओळखल्या जाणार्या तात्पुरत्या स्टोरेज एरियामध्ये फाइल कॉपी ठेवण्याचे तंत्र आहे, जे डेटा ऍक्सेसची गती वाढवते आणि साइट लेटन्सी कमी करते. कॅशेमध्ये फक्त काही प्रमाणात डेटा संग्रहित केला जाऊ शकतो.
परिणामी, व्यवसायाच्या उद्दिष्टांसाठी सर्वात योग्य असलेल्या कॅशे अपडेट तंत्रांचे निर्धारण करणे महत्त्वाचे आहे.
14. सीडीएन एज सर्व्हर काय आहेत?
CDN सर्व्हर जे तुमच्या मूळ सर्व्हर किंवा स्टोरेज क्लस्टरवरून मिळवलेली सामग्री कॅशे करतात ते एज सर्व्हर म्हणून ओळखले जातात. पॉइंट ऑफ प्रेझेन्स हा एक शब्द आहे जो एज सर्व्हर (पीओपी) चे वर्णन करण्यासाठी वारंवार वापरला जातो.
एज सर्व्हर भौतिकरित्या POP वर स्थित आहेत. त्या POP वर, माहिती अनेक एज सर्व्हरद्वारे कॅश केली जाऊ शकते.
अनेक ठिकाणांहून वेबसाइटचे विभाग प्रदान करण्याची क्षमता अभ्यागत आणि वेब सर्व्हरमधील अंतर कमी करते, परिणामी विलंब कमी होतो. CDN एज सर्व्हर हे अचूक ध्येय पूर्ण करतात.
15. सिस्टम डिझाइनसाठी विविध सुसंगतता नमुने काय आहेत?
CAP प्रमेयानुसार, प्रत्येक वाचलेल्या विनंतीने सर्वात अलीकडे लिहिलेला डेटा पुनर्प्राप्त केला पाहिजे. जेव्हा अनेक डेटा कॉपी ऍक्सेस करण्यायोग्य असतात, तेव्हा त्यांना सिंक्रोनाइझ करणे जेणेकरून ग्राहकांना सतत नवीन डेटा प्राप्त होतो. खालील संभाव्य सुसंगतता नमुने आहेत:
- कमकुवत सुसंगतता: डेटा लिहिल्यानंतर, वाचण्याची विनंती अद्ययावत डेटा प्राप्त करण्यास सक्षम असेल किंवा नसेल. VoIP, व्हिडिओ चॅट आणि मल्टीप्लेअर गेमिंग यांसारख्या रिअल-टाइम ऍप्लिकेशन्ससाठी स्थिरतेची ही पातळी आदर्श आहे.
- अंतिम सुसंगतता: डेटा लिहिल्यानंतर रीड्स अखेरीस सर्वात अलीकडील डेटा मिलिसेकंदांमध्ये पाहतील. या प्रकरणात डेटा असिंक्रोनसपणे डुप्लिकेट केला जातो. DNS आणि ईमेल सिस्टम ही त्याची उदाहरणे आहेत. हे उच्च उपलब्धता असलेल्या प्रणालींमध्ये प्रभावीपणे कार्य करते.
- मजबूत सुसंगतता: डेटा लिहिल्यानंतर, भविष्यातील वाचक सर्वात अलीकडील डेटा पाहतील. या प्रकरणात डेटा समकालिकपणे कॉपी केला जातो. हे आरडीबीएमएस आणि फाइल सिस्टममध्ये पाहिले जाऊ शकते, जे डेटा ट्रान्सफरसाठी योग्य आहेत.
16. आशावादी लॉकिंग म्हणजे काय?
आशावादी लॉकिंग ही एक यंत्रणा आहे ज्यामध्ये तुम्ही रेकॉर्ड वाचता, आवृत्ती क्रमांक लक्षात घ्या (पर्यायी मार्गांमध्ये तारखा, टाइमस्टॅम्प किंवा चेकसम/हॅश समाविष्ट आहेत) आणि नंतर पुन्हा लिहिण्यापूर्वी आवृत्ती बदलली नाही हे पुन्हा तपासा.
तुम्ही रेकॉर्ड परत लिहिता तेव्हा, ते अणू आहे याची खात्री करण्यासाठी तुम्ही अपडेट फिल्टर करण्यासाठी आवृत्ती वापरता. (म्हणजे, तुम्ही आवृत्ती तपासता तेव्हा आणि जेव्हा तुम्ही डिस्कवर रेकॉर्ड लिहिता तेव्हा बदलले गेले नाही) आणि ते सर्व एकाच वेळी अद्यतनित करा.
17. “नेता निवडणूक” म्हणजे नेमके काय?
ॲप्लिकेशनच्या उपलब्धतेमध्ये योगदान देणार्या असंख्य सर्व्हरसह वितरित सिस्टीममध्ये, असे काही वेळा असू शकतात जेव्हा तृतीय-पक्ष API अपडेट करण्यासाठी फक्त एक सर्व्हर जबाबदार असतो, कारण APIs वापरताना एकाधिक सर्व्हर समस्या निर्माण करू शकतात.
हा सर्व्हर प्राथमिक सर्व्हर म्हणून ओळखला जातो आणि तो निवडण्याची प्रक्रिया लीडर इलेक्शन म्हणून ओळखली जाते. जेव्हा वितरित प्रणालीमध्ये लीडर सर्व्हर अयशस्वी होतो, तेव्हा सर्व्हरने अपयश लक्षात घेतले पाहिजे आणि नवीन नेता निवडला पाहिजे. एकमत तंत्र वापरून, हा दृष्टीकोन उच्च उपलब्धता आणि मजबूत सुसंगतता अनुप्रयोगांसाठी सर्वात योग्य आहे.
18. TinyURL सारखी URL शॉर्टनिंग सेवा डिझाइन करण्यासाठी तुमचा दृष्टिकोन काय आहे?
TinyURL लांब URL ला एकल, अद्वितीय लहान URL मध्ये रूपांतरित करते. हे तंत्रज्ञान लहान URL देखील स्वीकारू शकतात आणि पूर्ण URL परत करू शकतात.
काही महत्त्वपूर्ण गुण कोणते आहेत?
- मूळपेक्षा लहान असलेली URL बनवा.
- मोठी URL ठेवा आणि ती लहान URL ने बदला.
- लहान URL मध्ये पुनर्निर्देशनास अनुमती द्या.
- सानुकूल नावांसह लहान URL समर्थित आहेत.
- एकाच वेळी अनेक चौकशी हाताळा.
सर्वात प्रचलित समस्या काय आहेत?
- तुम्ही डेटाबेस स्टोरेजचा मागोवा कसा ठेवता?
- जर वापरकर्ता लोड अपेक्षेपेक्षा जास्त असेल तर काय होईल?
- दोन व्यक्तींनी समान सानुकूल URL वापरल्यास काय?
खालील सूचनांचा विचार करा:
- हॅशिंग ही एक कल्पना आहे जी जुनी आणि नवीन URL कनेक्ट करण्यासाठी वापरली जाऊ शकते.
- आरईएसटी API फ्रंट-एंड संप्रेषण हाताळण्यासाठी आणि जड भार संतुलित करण्यासाठी वापरला जाऊ शकतो.
- मल्टीथ्रेडिंग ही एक कल्पना आहे जी तुम्हाला एकाच वेळी अनेक विनंत्या हाताळण्याची परवानगी देते.
- मूळ URL NoSQL डेटाबेसमध्ये संग्रहित केल्या जातात.
19. ट्विटर डिझाईन करण्यासाठी तुमचा दृष्टिकोन काय आहे?
दिलेल्या आवश्यकता:
- ट्विट पाठवत आहे
- इतर वापरकर्त्यांना फॉलो करत आहे
- ट्विट फीड/न्यूजफीड
- प्रणाली स्केलेबल आहे
- पटकन लोड होते
- प्रणाली विश्वसनीय आहे
तुम्ही निकष स्थापित केल्यावर तुम्ही तुमच्या Twitter API डिझाइनचा विचार सुरू करू शकता. हे असे दिसेल:
सुरू करण्यासाठी, आम्ही API चे मुख्य टोकाचे स्केच करू. येथे काही उदाहरणे आहेत:
- ट्विट पाठवा(संदेश)
- followUser(userID)
- अनफॉलो युजर(userID)
- getFeed(पृष्ठ)
ही वैशिष्ट्ये सक्षम करणारी आर्किटेक्चर नंतर रेखाटली जाऊ शकते. आम्ही सर्व्हर विनंती सबमिट करणाऱ्या वापरकर्त्यापासून सुरुवात करू शकतो. स्केलेबिलिटीची गरज पूर्ण करण्यासाठी मोठ्या रहदारीच्या पातळीला मदत करण्यासाठी आम्ही लोड बॅलन्सरच्या मागे अतिरिक्त API सर्व्हर स्थापित करू शकतो. आमचे ट्विट संचयित करण्यासाठी आम्हाला आता डेटाबेस जोडण्याची आवश्यकता आहे.
हे लक्षात ठेवणे महत्त्वाचे आहे की आम्ही प्रदान करत असलेले API स्केलेबल असावे. ही सेवा स्केलेबल करण्यासाठी, आम्ही आमच्या एपीआय सर्व्हरपैकी एक आमच्या न्यूजफीडसाठी वेगळ्या कॅशेमधून वाचू शकतो. असे करत असताना, आम्ही आमची फीड कॅशे अद्ययावत ठेवण्यासाठी फीड प्रदाता देखील वापरला पाहिजे.
20. Facebook साठी न्यूजफीड सिस्टम तयार करा
फेसबुकवरील न्यूजफीड वापरकर्त्यांना त्यांच्या मित्रांच्या मंडळांमध्ये, आवडत्या पृष्ठांमध्ये आणि त्यांनी फॉलो केलेल्या संस्थांमध्ये काय चालले आहे हे पाहण्याची परवानगी देते.
काही आवश्यक वैशिष्ट्ये कोणती आहेत?
- वापरकर्ता फॉलो करत असलेल्या इतर सिस्टीम घटकांच्या पोस्टवर आधारित न्यूजफीड तयार करा.
- मजकूर, चित्रे, ऑडिओ आणि व्हिडिओ हे सर्व न्यूजफीड पोस्टिंगमध्ये वापरले जाऊ शकतात.
- रिअल-टाइममध्ये, वापरकर्त्याच्या न्यूजफीडमध्ये नवीन सामग्री जोडा.
काही सर्वात सामान्य समस्या काय आहेत?
- नवीन पोस्ट न्यूज फीडमध्ये दिसण्यासाठी बराच वेळ लागल्यास?
- अल्गोरिदम वापरकर्त्याच्या क्रियाकलापातील वाढ व्यवस्थापित करू शकतो?
- न्यूज फीडमध्ये कोणत्या पोस्ट्स प्रथम प्रदर्शित केल्या पाहिजेत?
खालील सूचनांचा विचार करा:
- अनुयायांना पोस्ट वितरीत करण्यासाठी फॅनआउट यंत्रणेचे परीक्षण करा.
- उच्च वापरकर्ता भार कार्यक्षमतेने हाताळण्यासाठी शार्डिंग कसे वापरले जाऊ शकते ते तपासा.
- वापरकर्त्याचा फीड डेटा असंख्य सर्व्हरवर डुप्लिकेट केला जाऊ नये. त्याऐवजी वापरकर्ता आयडीच्या आधारे शेअरिंग केले जाऊ शकते.
21. सिस्टमची BASE गुणधर्म काय आहे?
अलीकडेच उदयास आलेल्या NoSQL डेटाबेसमध्ये BASE वैशिष्ट्ये सर्वव्यापी आहेत. CAP प्रमेयानुसार, BASE प्रणाली सातत्य प्रदान करत नाही. हे एक तयार केलेले संक्षिप्त रूप आहे जे CAP प्रमेयच्या सिस्टमच्या खालील गुणधर्माशी संबंधित आहे:
- "मूळत: उपलब्ध" या शब्दाचा अर्थ असा आहे की प्रणाली नेहमीच उपलब्ध असेल.
- सॉफ्ट स्टेटचा अर्थ असा आहे की सिस्टमची स्थिती वेळोवेळी बदलू शकते, जरी कोणतेही इनपुट प्रदान केले नाही. हे मुख्यतः मॉडेलच्या अंतिम सुसंगततेमुळे आहे.
- त्या कालावधीत सिस्टमला इनपुट प्राप्त होत नाही हे लक्षात घेता, अंतिम सुसंगतता म्हणजे सिस्टम कालांतराने सुसंगत होईल.
22. आयपी अॅड्रेस अॅफिनिटी टेक्निकसह लोड बॅलन्सिंग म्हणजे काय?
लोड बॅलेंसिंगची आणखी एक प्रमुख पद्धत म्हणजे आयपी अॅड्रेस अॅफिनिटी. क्लायंटचा IP पत्ता या पद्धतीत सर्व्हर नोडशी जोडलेला आहे. एक सर्व्हर नोड क्लायंट IP पत्त्यावरील सर्व विनंत्या हाताळतो.
ही पद्धत अंमलात आणण्यासाठी सोपी आहे कारण HTTP विनंती शीर्षलेखामध्ये IP पत्ता नेहमी प्रवेशयोग्य असतो आणि पुढील सेटिंग्जची आवश्यकता नसते. तुमच्या क्लायंटच्या कुकीज निष्क्रिय होण्याची शक्यता असल्यास, लोड बॅलन्सिंगचा हा प्रकार फायदेशीर ठरू शकतो.
23. कॅशे रिप्लेसमेंट (किंवा इव्हिक्शन पॉलिसी) अल्गोरिदम नेमके काय आहेत?
कॅशे अल्गोरिदम (कॅशे रिप्लेसमेंट अल्गोरिदम, कॅशे रिप्लेसमेंट पॉलिसी, किंवा कॅशे इव्हिक्शन पॉलिसी म्हणून देखील ओळखले जाते) ऑप्टिमायझेशन सूचना किंवा अल्गोरिदम आहेत, ज्याचा वापर संगणक प्रोग्राम किंवा हार्डवेअर-नियंत्रित संरचना संगणकावर संग्रहित डेटाचे कॅशे व्यवस्थापित करण्यासाठी करू शकतात.
पारंपारिक मेमरी स्टोरेजपेक्षा जलद किंवा कमी खर्चिक असलेल्या मेमरी क्षेत्रांमध्ये अलीकडे वापरलेल्या किंवा अनेकदा ऍक्सेस केलेला डेटा संचयित करून कॅशिंग गती वाढवते. जेव्हा कॅशे भरलेले असते, तेव्हा नवीनसाठी जागा बनवण्यासाठी कोणते आयटम काढायचे हे अल्गोरिदमने ठरवले पाहिजे.
24. वितरित व्यवहार म्हणजे नेमके काय?
वितरीत व्यवहार ही अशी कोणतीही परिस्थिती आहे ज्यामध्ये एकाच घटनेमुळे डेटाच्या दोन किंवा अधिक वेगळ्या स्त्रोतांमध्ये फेरफार होतो जे परमाणुरित्या केले जाऊ शकत नाही.
मायक्रोसर्व्हिसेसच्या जगात हे अधिक क्लिष्ट बनते कारण प्रत्येक सेवा हे कामाचे एकक आहे आणि बहुतेक वेळा व्यवसाय यशस्वी करण्यासाठी असंख्य सेवांनी सहकार्य केले पाहिजे.
25. उपासमार म्हणजे नेमके काय?
जेव्हा एखादा धागा सामायिक संसाधनांमध्ये नियमित प्रवेश मिळवू शकत नाही, तेव्हा त्याला उपासमार असल्याचे म्हटले जाते. जेव्हा "लोभी" धागे किंवा उच्च "प्राधान्य" असलेले धागे सामायिक संसाधने दीर्घ कालावधीसाठी अगम्य बनवतात तेव्हा हे घडते.
वारंवार उशीरा परत येणारी सिंक्रोनाइझ पद्धत प्रदान करणार्या ऑब्जेक्टचा विचार करा. एका थ्रेडने या पद्धतीला वारंवार कॉल केल्यास, त्याच ऑब्जेक्टवर वारंवार सिंक्रोनाइझ केलेले प्रवेश आवश्यक असलेले इतर थ्रेड अनेकदा अवरोधित केले जातील.
निष्कर्ष
एक विचारमंथन सत्र म्हणजे सिस्टीम डिझाइन इंटरव्ह्यूमध्ये समाविष्ट आहे. आम्ही या पोस्टमध्ये सर्वात सामान्य सिस्टम डिझाइन मुलाखतीचे प्रश्न संबोधित केले आहेत.
सिस्टम डिझाइन मुलाखत उत्तीर्ण होण्यासाठी विशिष्ट प्रणाली तयार करताना तुम्ही घेत असलेल्या पद्धतीचे सर्वसमावेशक आकलन महत्त्वाचे आहे.
प्रत्युत्तर द्या