విషయ సూచిక[దాచు][చూపండి]
- 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. IP అడ్రస్ అఫినిటీ టెక్నిక్తో లోడ్ బ్యాలెన్సింగ్ అంటే ఏమిటి?
- 23. కాష్ రీప్లేస్మెంట్ (లేదా ఎవిక్షన్ పాలసీ) అల్గారిథమ్లు అంటే ఏమిటి?
- 24. పంపిణీ చేయబడిన లావాదేవీ ద్వారా మీరు సరిగ్గా అర్థం ఏమిటి?
- 25. ఆకలితో ఉండటం అంటే ఏమిటి?
- ముగింపు
మీరు ప్రారంభించడానికి ముందు, మా గురించి చదవమని మేము సిఫార్సు చేస్తున్నాము సిస్టమ్ డిజైన్పై పరిచయ గైడ్ మీ ప్రాథమిక జ్ఞానాన్ని రిఫ్రెష్ చేయడానికి.
సిస్టమ్ డిజైన్ పరిజ్ఞానం అవసరమయ్యే స్థానం కోసం ఇంటర్వ్యూ చేస్తున్నప్పుడు, మీ నేపథ్యం గురించి మాట్లాడటానికి మరియు సంక్లిష్టమైన సిస్టమ్లను అభివృద్ధి చేయగల మీ సామర్థ్యాన్ని ప్రదర్శించడానికి మీకు అవకాశం ఉంది.
సంభావ్య యజమానితో మాట్లాడుతున్నప్పుడు, మీరు మీ నైపుణ్యాన్ని వ్యక్తపరిచే విధానం మీరు స్థానానికి సమర్థ అభ్యర్థి అని నిరూపించడానికి మీకు సహాయం చేస్తుంది.
ప్రాథమిక డిజైన్ కాన్సెప్ట్లను నేర్చుకోవడం ద్వారా మరియు వాటి గురించిన విచారణలకు మీరు ఎలా స్పందిస్తారనే దాని గురించి ఆలోచించడం ద్వారా మీరు మీ ఉద్యోగ ఇంటర్వ్యూ కోసం సిద్ధం చేయవచ్చు. మీ తదుపరి ఇంటర్వ్యూ కోసం సిద్ధం చేయడంలో మీకు సహాయపడటానికి మేము ఈ పోస్ట్లో కొన్ని సాధారణ సిస్టమ్ డిజైన్ ఇంటర్వ్యూ ప్రశ్నలు మరియు సమాధానాలను పరిశీలిస్తాము.
1. సిస్టమ్ డిజైన్ అంటే ఏమిటి?
మాడ్యూల్స్, ఆర్కిటెక్చర్, భాగాలు మరియు వాటి ఇంటర్ఫేస్లు మరియు ముందుగా నిర్ణయించిన ప్రమాణాల ఆధారంగా డేటాతో సహా సిస్టమ్ లక్షణాలను ఏర్పాటు చేసే ప్రక్రియను సిస్టమ్ డిజైన్ అంటారు.
ఇది కంపెనీ లేదా సంస్థ యొక్క నిర్దిష్ట లక్ష్యాలు మరియు లక్ష్యాలను చేరుకోవడానికి వ్యవస్థలను నిర్వచించడం, సృష్టించడం మరియు రూపకల్పన చేయడం. సిస్టమ్ డిజైన్ అనేది సిస్టమ్ విశ్లేషణ, ఆర్కిటెక్చరల్ ప్యాటర్న్లు, APIలు, డిజైన్ ప్యాటర్న్లు మరియు కోడింగ్ గురించి కాకుండా అన్నింటినీ కలిపి అతికించడం.
2. సిస్టమ్ డిజైనర్ యొక్క అత్యంత ముఖ్యమైన లక్షణాలు ఏమిటి?
- వినియోగదారు పరస్పర చర్య
- బాహ్య API కాల్
- ఆఫ్లైన్ ప్రక్రియలు
3. CAP సిద్ధాంతం అంటే ఏమిటి?
CAP (కాన్సిస్టెన్సీ-అవైలబిలిటీ-పార్టీషన్ టోలరెన్స్) సిద్ధాంతం ప్రకారం, పంపిణీ చేయబడిన సిస్టమ్ C, A మరియు P అన్నింటినీ ఒకే సమయంలో నిర్ధారించదు. ఇది గరిష్టంగా రెండు మూడు హామీలను మాత్రమే అందించగలదు. దీన్ని అర్థం చేసుకోవడానికి మాకు సహాయం చేయడానికి పంపిణీ చేయబడిన డేటాబేస్ సిస్టమ్ను ఉపయోగిస్తాము.
- స్థిరత్వం: డేటాబేస్ లావాదేవీ పూర్తయిన తర్వాత డేటా తప్పనిసరిగా స్థిరంగా ఉండాలని ఇది నిర్దేశిస్తుంది. ఉదాహరణకు, డేటాబేస్ నవీకరణ తర్వాత అన్ని ప్రశ్నలు ఒకే ప్రతిస్పందనను అందించాలి.
- లభ్యత: డేటాబేస్లు ఎల్లప్పుడూ అందుబాటులో ఉండాలి మరియు ప్రతిస్పందించేలా ఉండాలి.
- విభజన సహనం: కమ్యూనికేషన్ సమస్యాత్మకంగా మారినప్పటికీ, డేటాబేస్ సిస్టమ్ పని చేస్తూనే ఉండాలి.
4. లోడ్ బ్యాలెన్సింగ్ ద్వారా మీరు ఏమి అర్థం చేసుకున్నారు?
లోడ్ బ్యాలెన్సింగ్ బ్యాకెండ్ సర్వర్ల సెట్లో ఇన్కమింగ్ ట్రాఫిక్ను సమర్థవంతంగా చెదరగొట్టే ప్రక్రియ. వీటిని సర్వర్ పూల్స్గా సూచిస్తారు. ఆధునిక వెబ్సైట్లు కస్టమర్ల నుండి మిలియన్ల కొద్దీ ప్రశ్నలను నిర్వహించడానికి మరియు వాటికి త్వరగా మరియు విశ్వసనీయంగా ప్రతిస్పందించడానికి రూపొందించబడ్డాయి. ఈ డిమాండ్లను నిర్వహించడానికి మరిన్ని సర్వర్లు అవసరం.
ఈ సందర్భంలో, ప్రతి సర్వర్పై అధిక భారం పడకుండా ఉండటానికి అభ్యర్థన ట్రాఫిక్ను సమర్ధవంతంగా విభజించడం చాలా కీలకం. లోడ్ బ్యాలెన్సర్ ట్రాఫిక్ కాప్గా పనిచేస్తుంది, అభ్యర్థనలను అడ్డగించడం మరియు అందుబాటులో ఉన్న సర్వర్ల మధ్య వాటిని రూట్ చేయడం వలన ఏ సర్వర్ కూడా అధిక భారం పడకుండా, అప్లికేషన్ పనితీరును దిగజార్చుతుంది.
5. అసమకాలిక ప్రోగ్రామింగ్ మరియు సమాంతర ప్రోగ్రామింగ్ మధ్య తేడా ఏమిటి?
మీరు ఏదైనా అసమకాలికంగా అమలు చేసినప్పుడు, మీరు వేరొకదానికి వెళ్లడానికి ముందు అది పూర్తయ్యే వరకు మీరు వేచి ఉండాల్సిన అవసరం లేదని ఇది సూచిస్తుంది. సమాంతరత అనేది అనేక పనుల యొక్క ఏకకాల అమలును సూచిస్తుంది.
మీరు ఉద్యోగాలను వేర్వేరు శ్రమ భాగాలుగా విభజించగలిగినప్పుడు, సమాంతరత ప్రభావవంతంగా పనిచేస్తుంది. Async మరియు కాల్బ్యాక్లు సమకాలీకరణను సూచించడానికి ఒక సాధనం (సాధనం లేదా మెకానిజం), అనగా వనరులను కమ్యూనికేట్ చేయగల మరియు పంచుకోగల ఎంటిటీల సమూహం.
6. క్షితిజ సమాంతర మరియు నిలువు స్కేలింగ్ మధ్య తేడా ఏమిటి?
పరికరాల చెదరగొట్టబడిన నెట్వర్క్లో ప్రాసెసింగ్ మరియు మెమరీ డిమాండ్ను విస్తరించే నెట్వర్క్కు కొత్త కంప్యూటింగ్ పరికరాలను జోడించడాన్ని క్షితిజసమాంతర స్కేలింగ్ అంటారు. సరళంగా చెప్పాలంటే, ప్రస్తుత పూల్కు కొత్త సర్వర్ ఉదాహరణలు జోడించబడ్డాయి మరియు ఈ పరికరాల మధ్య ట్రాఫిక్ లోడ్ సమర్థవంతంగా వ్యాపిస్తుంది.
వర్టికల్ స్కేలింగ్ అనేది RAM, సమర్థవంతమైన CPUలను జోడించడం లేదా అధిక సామర్థ్యంతో కొత్త మెషీన్కు తరలించడం ద్వారా ఒకే కంప్యూటర్ యొక్క వనరుల సామర్థ్యాన్ని విస్తరించడం అనే భావనను సూచిస్తుంది. ఎటువంటి ప్రోగ్రామింగ్ మార్పులు అవసరం లేకుండా సర్వర్ యొక్క కార్యాచరణను పెంచవచ్చు.
7. జాప్యం, నిర్గమాంశ మరియు సిస్టమ్ లభ్యత ద్వారా మీరు సరిగ్గా అర్థం ఏమిటి?
మా సేవల వేగం మరియు విశ్వసనీయతకు దోహదపడుతుంది కాబట్టి పనితీరు అనేది సిస్టమ్ డిజైన్లో ముఖ్యమైన అంశం. మూడు ముఖ్యమైన పనితీరు చర్యలు క్రింది విధంగా ఉన్నాయి:
- ఒక సందేశాన్ని మిల్లీసెకన్లలో అందించడానికి పట్టే సమయాన్ని జాప్యం అంటారు.
- నిర్దిష్ట వ్యవధిలో సిస్టమ్ ద్వారా విజయవంతంగా బదిలీ చేయబడిన డేటా మొత్తాన్ని త్రూపుట్ అంటారు. దానిని కొలవడానికి సెకనుకు బిట్స్ ఉపయోగించబడతాయి.
- ప్రశ్నలకు ప్రతిస్పందించడానికి సిస్టమ్ అందుబాటులో ఉన్న సమయం దాని లభ్యత ద్వారా నిర్వచించబడుతుంది. సిస్టమ్ అప్టైమ్ / (సిస్టమ్ అప్టైమ్+డౌన్టైమ్) అనేది దానిని లెక్కించడానికి సూత్రం.
8. ACID లక్షణాలు ఏమిటి?
- అటామిసిటీ: డేటాబేస్ మార్పులు అన్నీ లేదా ఏవీ కాదని ఇది హామీ ఇస్తుంది.
- స్థిరత్వం: డేటాబేస్లోని డేటా విలువలు స్థిరంగా ఉంటాయి.
- ఐసోలేషన్: ఇది రెండు లావాదేవీల విభజనను సూచిస్తుంది.
- మన్నిక: సర్వర్ విఫలమైనప్పటికీ డేటా భద్రపరచబడుతుంది.
9. షార్డింగ్ అంటే ఏమిటి?
షార్డింగ్ అనేది భారీ లాజికల్ డేటాసెట్ను అనేక డేటాబేస్లుగా విభజించే సాంకేతికత. ఇది క్షితిజ సమాంతర డేటా విభజనను కూడా సూచిస్తుంది ఎందుకంటే డేటా అనేక కంప్యూటర్లలో నిల్వ చేయబడుతుంది. ఫలితంగా, భాగస్వామ్య డేటాబేస్ ఒక భారీ కంప్యూటర్ కంటే ఎక్కువ ప్రశ్నలను నిర్వహించగలదు.
10. CDN అంటే ఏమిటి?
కంటెంట్ డెలివరీ నెట్వర్క్ అనేది ఇంటర్నెట్ సమాచారాన్ని వేగంగా అందించడానికి సహకరించే కంప్యూటర్ల ప్రపంచవ్యాప్త నెట్వర్క్. ఇది ఇంటర్నెట్ కంటెంట్ను లోడ్ చేయడానికి అవసరమైన HTML పేజీలు, JavaScript ఫైల్లు, స్టైల్షీట్లు, చిత్రాలు మరియు వీడియోల వంటి అంశాల త్వరిత బట్వాడాను ప్రారంభిస్తుంది.
11. CDN ఎందుకు ఉపయోగించాలి?
- వెబ్సైట్లో దాదాపు 80% స్టాటిక్ వనరులను పరిగణనలోకి తీసుకుంటే, CDNని స్వీకరించడం మూలం సర్వర్పై ఒత్తిడిని గణనీయంగా తగ్గిస్తుంది.
- ప్రయాణించడానికి తక్కువ దూరం ఉన్నందున, అనేక భౌగోళిక ప్రాంతాల నుండి సందర్శకులు ఉన్న వెబ్సైట్ యజమానులకు సమాచారం వేగంగా అందించబడుతుంది.
- CDNల వినియోగదారులు ట్రాఫిక్ పెరుగుదలకు ప్రతిస్పందనగా త్వరగా పైకి క్రిందికి స్కేల్ చేయగల సామర్థ్యం నుండి కూడా ప్రయోజనం పొందుతారు.
12. షార్డింగ్ మరియు విభజన మధ్య తేడా ఏమిటి?
డేటాబేస్ షార్డింగ్ - డేటాబేస్ షేడింగ్ అనేది ఒకే డేటాసెట్ను అనేక డేటాబేస్లుగా విభజించే పద్ధతి, తద్వారా ఇది వివిధ వర్క్స్టేషన్లలో నిల్వ చేయబడుతుంది. పెద్ద డేటాసెట్లను చిన్న భాగాలుగా విభజించవచ్చు మరియు అనేక డేటా నోడ్లలో నిల్వ చేయవచ్చు, సిస్టమ్ మొత్తం నిల్వ సామర్థ్యాన్ని పెంచుతుంది.
అనేక మెషీన్లలో డేటాను వ్యాప్తి చేయడం ద్వారా, ఒక భాగస్వామ్య డేటాబేస్ ఒకే సిస్టమ్ కంటే ఎక్కువ ప్రశ్నలను నిర్వహించగలదు.
డేటాబేస్ విభజన అనేది నిల్వ చేయబడిన డేటాబేస్ వస్తువులను (పట్టికలు, సూచికలు మరియు వీక్షణలు) వేరు వేరు ముక్కలుగా విభజించే ప్రక్రియ. నియంత్రణ, పనితీరు మరియు లభ్యతను పెంచడానికి, పెద్ద డేటాబేస్ వస్తువులు విభజించబడ్డాయి.
కొన్ని సందర్భాల్లో, విభజన చేయబడిన డేటాను యాక్సెస్ చేసేటప్పుడు విభజన వేగాన్ని మెరుగుపరుస్తుంది. విభజన ఇండెక్స్ పరిమాణాన్ని తగ్గిస్తుంది మరియు ఇండెక్స్లలో ప్రముఖ కాలమ్గా పని చేయడం ద్వారా మెమరీలో అత్యంత అవసరమైన సూచికలను గుర్తించే అవకాశాన్ని పెంచుతుంది.
13. కాషింగ్ అంటే ఏమిటి?
కాషింగ్ అనేది కాష్ అని పిలువబడే తాత్కాలిక నిల్వ ప్రాంతంలో ఫైల్ కాపీలను ఉంచే సాంకేతికత, ఇది డేటా యాక్సెస్ని వేగవంతం చేస్తుంది మరియు సైట్ జాప్యాన్ని తగ్గిస్తుంది. కాష్లో నిర్దిష్ట మొత్తంలో డేటా మాత్రమే నిల్వ చేయబడుతుంది.
ఫలితంగా, వ్యాపార లక్ష్యాలకు అత్యంత అనుకూలమైన కాష్ అప్డేట్ టెక్నిక్లను నిర్ణయించడం చాలా కీలకం.
<span style="font-family: arial; ">10</span> CDN ఎడ్జ్ సర్వర్లు అంటే ఏమిటి?
మీ మూలం సర్వర్ లేదా స్టోరేజ్ క్లస్టర్ నుండి సేకరించిన మెటీరియల్ని కాష్ చేసే CDN సర్వర్లను ఎడ్జ్ సర్వర్లు అంటారు. పాయింట్ ఆఫ్ ప్రెజెన్స్ అనేది ఎడ్జ్ సర్వర్లను (POP) వివరించడానికి తరచుగా ఉపయోగించే పదం.
అంచు సర్వర్లు భౌతికంగా POP వద్ద ఉంచబడ్డాయి. ఆ POP వద్ద, సమాచారం అనేక ఎడ్జ్ సర్వర్ల ద్వారా కాష్ చేయబడవచ్చు.
అనేక ప్రదేశాల నుండి వెబ్సైట్ యొక్క విభాగాలను అందించగల సామర్థ్యం సందర్శకుడు మరియు వెబ్ సర్వర్ మధ్య దూరాన్ని తగ్గిస్తుంది, ఫలితంగా తక్కువ జాప్యం ఏర్పడుతుంది. CDN ఎడ్జ్ సర్వర్లు ఈ ఖచ్చితమైన లక్ష్యాన్ని సాధిస్తాయి.
15. సిస్టమ్ డిజైన్ కోసం వివిధ కాన్సిస్టెన్సీ నమూనాలు ఏమిటి?
ప్రతి రీడ్ అభ్యర్థన CAP సిద్ధాంతం ప్రకారం ఇటీవల వ్రాసిన డేటాను తిరిగి పొందాలి. అనేక డేటా కాపీలు యాక్సెస్ చేయగలిగినప్పుడు, వాటిని సమకాలీకరించడం వలన వినియోగదారులు నిరంతరం తాజా డేటాను స్వీకరించడం కష్టం అవుతుంది. కిందివి సాధ్యమయ్యే స్థిరత్వ నమూనాలు:
- బలహీనమైన అనుగుణ్యత: డేటా రైట్ను అనుసరించి, రీడ్ రిక్వెస్ట్ అప్డేట్ చేయబడిన డేటాను పొందలేకపోవచ్చు లేదా పొందలేకపోవచ్చు. VoIP, వీడియో చాట్ మరియు మల్టీప్లేయర్ గేమింగ్ వంటి నిజ-సమయ అప్లికేషన్లకు ఈ స్థాయి స్థిరత్వం అనువైనది.
- ఆఖరి అనుగుణ్యత: డేటా వ్రాసిన తర్వాత రీడ్లు చివరికి మిల్లీసెకన్లలోనే అత్యంత ఇటీవలి డేటాను వీక్షిస్తాయి. ఈ సందర్భంలో డేటా అసమకాలికంగా నకిలీ చేయబడింది. DNS మరియు ఇమెయిల్ సిస్టమ్లు దీనికి ఉదాహరణలు. అధిక లభ్యత ఉన్న సిస్టమ్లలో ఇది ప్రభావవంతంగా పనిచేస్తుంది.
- బలమైన అనుగుణ్యత: డేటా వ్రాత తర్వాత, భవిష్యత్ పాఠకులు అత్యంత ఇటీవలి డేటాను వీక్షిస్తారు. ఈ సందర్భంలో డేటా సమకాలికంగా కాపీ చేయబడుతుంది. ఇది RDBMS మరియు ఫైల్ సిస్టమ్లలో గమనించవచ్చు, ఇవి డేటా బదిలీలకు తగినవి.
16. మీరు ఆశావాద లాకింగ్ అంటే ఏమిటి?
ఆప్టిమిస్టిక్ లాకింగ్ అనేది మీరు రికార్డ్ను చదివి, సంస్కరణ సంఖ్యను (ప్రత్యామ్నాయ మార్గాలలో తేదీలు, టైమ్స్టాంప్లు లేదా చెక్సమ్లు/హాష్లు) గమనించి, ఆపై దాన్ని తిరిగి వ్రాయడానికి ముందు వెర్షన్ మారలేదని రెండుసార్లు తనిఖీ చేసే విధానం.
మీరు రికార్డ్ను తిరిగి వ్రాసినప్పుడు, అప్డేట్ అటామిక్ అని నిర్ధారించుకోవడానికి దాన్ని ఫిల్టర్ చేయడానికి మీరు సంస్కరణను ఉపయోగిస్తారు. (అనగా, మీరు సంస్కరణను తనిఖీ చేసినప్పుడు మరియు మీరు డిస్క్కి రికార్డ్ను వ్రాసేటప్పుడు మధ్య మార్చబడలేదు) మరియు అన్నింటినీ ఒకేసారి నవీకరించండి.
17. "నాయకుల ఎన్నిక" అంటే సరిగ్గా ఏమిటి?
అప్లికేషన్ యొక్క లభ్యతకు దోహదపడే అనేక సర్వర్లతో పంపిణీ చేయబడిన సిస్టమ్లో, థర్డ్-పార్టీ APIలను అప్డేట్ చేయడానికి ఒక సర్వర్ మాత్రమే బాధ్యత వహించే సందర్భాలు ఉండవచ్చు, ఎందుకంటే APIలను ఉపయోగించేటప్పుడు బహుళ సర్వర్లు సమస్యలను కలిగిస్తాయి.
ఈ సర్వర్ను ప్రైమరీ సర్వర్ అని పిలుస్తారు మరియు దీనిని ఎంచుకునే విధానాన్ని లీడర్ ఎలక్షన్ అంటారు. పంపిణీ చేయబడిన సిస్టమ్లో లీడర్ సర్వర్ విఫలమైనప్పుడు, సర్వర్లు తప్పనిసరిగా వైఫల్యాన్ని గమనించి కొత్త నాయకుడిని ఎంచుకోవాలి. ఏకాభిప్రాయ సాంకేతికతను ఉపయోగించి, ఈ విధానం అధిక లభ్యత మరియు బలమైన అనుగుణ్యత అనువర్తనాలకు ఉత్తమంగా సరిపోతుంది.
18. TinyURL-వంటి URL సంక్షిప్త సేవను రూపొందించడానికి మీ విధానం ఏమిటి?
TinyURL పొడవైన URLను ఒకే, ప్రత్యేకమైన చిన్న URLగా మారుస్తుంది. ఈ సాంకేతికతలు చిన్న URLని కూడా ఆమోదించగలవు మరియు పూర్తి URLని తిరిగి ఇవ్వగలవు.
కొన్ని కీలకమైన లక్షణాలు ఏమిటి?
- ఒరిజినల్ కంటే చిన్నదిగా ఉండే URLని రూపొందించండి.
- పొడవైన URLని ఉంచండి మరియు దానిని చిన్న దానితో భర్తీ చేయండి.
- చిన్న URLలలో దారి మళ్లింపు కోసం అనుమతించండి.
- అనుకూల పేర్లతో కూడిన చిన్న URLలకు మద్దతు ఉంది.
- ఒకేసారి అనేక విచారణలను నిర్వహించండి.
అత్యంత ప్రబలంగా ఉన్న సమస్యలు ఏమిటి?
- మీరు డేటాబేస్ నిల్వను ఎలా ట్రాక్ చేస్తారు?
- వినియోగదారు లోడ్ అంచనాలను మించి ఉంటే ఏమి జరుగుతుంది?
- ఇద్దరు వ్యక్తులు ఒకే అనుకూల URLని ఉపయోగిస్తే ఏమి చేయాలి?
కింది సూచనలను పరిగణించండి:
- హాషింగ్ అనేది పాత మరియు కొత్త URLలను కనెక్ట్ చేయడానికి ఉపయోగించే ఒక భావన.
- REST API ఫ్రంట్-ఎండ్ కమ్యూనికేషన్ను నిర్వహించడానికి మరియు భారీ భారాన్ని సమతుల్యం చేయడానికి ఉపయోగించవచ్చు.
- మల్టీథ్రెడింగ్ అనేది ఒకేసారి అనేక అభ్యర్థనలను నిర్వహించడానికి మిమ్మల్ని అనుమతించే భావన.
- అసలు URLలు NoSQL డేటాబేస్లలో నిల్వ చేయబడతాయి.
19. ట్విట్టర్ రూపకల్పనలో మీ విధానం ఏమిటి?
అందించిన అవసరాలు:
- ట్వీట్లు పంపుతున్నారు
- ఇతర వినియోగదారులను అనుసరిస్తోంది
- ట్వీట్ ఫీడ్/న్యూస్ఫీడ్
- సిస్టమ్ స్కేలబుల్
- త్వరగా లోడ్ అవుతుంది
- వ్యవస్థ నమ్మదగినది
మీరు ప్రమాణాలను ఏర్పాటు చేసిన తర్వాత మీరు మీ Twitter API డిజైన్ గురించి ఆలోచించడం ప్రారంభించవచ్చు. ఇది ఇలా కనిపిస్తుంది:
ప్రారంభించడానికి, మేము API యొక్క కీలక ముగింపు పాయింట్లను స్కెచ్ చేస్తాము. ఇక్కడ కొన్ని ఉదాహరణలు ఉన్నాయి:
- ట్వీట్ (సందేశం)
- ఫాలోయూజర్ (యూజర్ ఐడి)
- అన్ఫాలోయూజర్ (యూజర్ ఐడి)
- getFeed(పేజీ)
ఈ లక్షణాలను ఎనేబుల్ చేసే ఆర్కిటెక్చర్ అప్పుడు స్కెచ్ చేయవచ్చు. మేము సర్వర్ అభ్యర్థనను సమర్పించే వినియోగదారుతో ప్రారంభించవచ్చు. స్కేలబిలిటీ అవసరాన్ని తీర్చడానికి పెద్ద ట్రాఫిక్ స్థాయిలను అధిగమించడానికి మేము లోడ్ బ్యాలెన్సర్ వెనుక అదనపు API సర్వర్లను ఇన్స్టాల్ చేయవచ్చు. మేము ఇప్పుడు మా ట్వీట్లను నిల్వ చేయడానికి డేటాబేస్ను జోడించాలి.
మేము అందించే API స్కేలబుల్గా ఉండాలని గుర్తుంచుకోవడం ముఖ్యం. ఈ సేవను స్కేలబుల్ చేయడానికి, మేము మా న్యూస్ఫీడ్ కోసం ప్రత్యేక కాష్ నుండి మా API సర్వర్లలో ఒకదాన్ని చదవగలము. అలా చేస్తున్నప్పుడు, మేము మా ఫీడ్ కాష్ను తాజాగా ఉంచడానికి ఫీడ్ ప్రొవైడర్ని కూడా ఉపయోగించాలి.
20. Facebook కోసం న్యూస్ఫీడ్ సిస్టమ్ని సృష్టించండి
ఫేస్బుక్లోని న్యూస్ఫీడ్ వినియోగదారులు తమ స్నేహితుల సర్కిల్లు, ఇష్టమైన పేజీలు మరియు వారు అనుసరించిన సంస్థలలో ఏమి జరుగుతుందో చూడటానికి అనుమతిస్తుంది.
కొన్ని ముఖ్యమైన లక్షణాలు ఏమిటి?
- వినియోగదారు అనుసరించే ఇతర సిస్టమ్ ఎంటిటీల నుండి పోస్ట్ల ఆధారంగా న్యూస్ఫీడ్ను సృష్టించండి.
- న్యూస్ఫీడ్ పోస్టింగ్లలో వచనం, చిత్రాలు, ఆడియో మరియు వీడియో అన్నీ ఉపయోగించవచ్చు.
- నిజ సమయంలో, యూజర్ యొక్క న్యూస్ఫీడ్కి తాజా కంటెంట్ని జోడించండి.
అత్యంత సాధారణ సమస్యలలో కొన్ని ఏమిటి?
- కొత్త పోస్ట్ న్యూస్ ఫీడ్లో కనిపించడానికి చాలా సమయం తీసుకుంటే?
- అల్గారిథమ్ వినియోగదారు కార్యాచరణలో పెరుగుదలను నిర్వహించగలదా?
- న్యూస్ ఫీడ్లో ముందుగా ఏ పోస్ట్లను ప్రదర్శించాలి?
కింది సూచనలను పరిగణించండి:
- ఫాలోయర్లకు పోస్ట్లను పంపిణీ చేయడానికి ఫ్యాన్అవుట్ మెకానిజంను పరిశీలించండి.
- అధిక వినియోగదారు లోడ్లను సమర్ధవంతంగా నిర్వహించడానికి షార్డింగ్ ఎలా ఉపయోగించబడుతుందో పరిశీలించండి.
- వినియోగదారు యొక్క ఫీడ్ డేటా అనేక సర్వర్లలో నకిలీ చేయబడకూడదు. బదులుగా వినియోగదారు IDల ఆధారంగా షార్డింగ్ చేయవచ్చు.
21. సిస్టమ్ యొక్క BASE ఆస్తి అంటే ఏమిటి?
ఇటీవల ఉద్భవించిన NoSQL డేటాబేస్లలో BASE లక్షణాలు సర్వత్రా ఉన్నాయి. CAP సిద్ధాంతం ప్రకారం, BASE వ్యవస్థ స్థిరత్వాన్ని అందించదు. ఇది వ్యవస్థ యొక్క CAP సిద్ధాంతం యొక్క క్రింది లక్షణానికి అనుగుణంగా రూపొందించబడిన సంక్షిప్త రూపం:
- "ప్రాథమికంగా అందుబాటులో" అనే పదం అంటే సిస్టమ్ అన్ని సమయాల్లో అందుబాటులో ఉంటుంది.
- సాఫ్ట్ స్టేట్ అంటే ఇన్పుట్ అందించనప్పటికీ, సిస్టమ్ స్థితి కాలక్రమేణా మారవచ్చు. ఇది మోడల్ యొక్క చివరి స్థిరత్వం కారణంగా ఎక్కువగా ఉంటుంది.
- ఆ వ్యవధిలో సిస్టమ్ ఇన్పుట్ను స్వీకరించనందున, చివరికి స్థిరత్వం అంటే సిస్టమ్ కాలక్రమేణా స్థిరంగా మారుతుందని అర్థం.
22. IP అడ్రస్ అఫినిటీ టెక్నిక్తో లోడ్ బ్యాలెన్సింగ్ అంటే ఏమిటి?
లోడ్ బ్యాలెన్సింగ్ యొక్క మరొక ప్రముఖ పద్ధతి IP చిరునామా అనుబంధం. క్లయింట్ IP చిరునామా ఈ పద్ధతిలో సర్వర్ నోడ్తో కనెక్ట్ చేయబడింది. ఒక సర్వర్ నోడ్ క్లయింట్ IP చిరునామా నుండి అన్ని అభ్యర్థనలను నిర్వహిస్తుంది.
HTTP అభ్యర్థన హెడర్లో IP చిరునామా ఎల్లప్పుడూ అందుబాటులో ఉంటుంది మరియు తదుపరి సెట్టింగ్లు అవసరం లేదు కాబట్టి ఈ పద్ధతిని అమలు చేయడం సులభం. మీ క్లయింట్లు కుక్కీలను డియాక్టివేట్ చేసే అవకాశం ఉన్నట్లయితే, ఈ రకమైన లోడ్ బ్యాలెన్సింగ్ ప్రయోజనకరంగా ఉంటుంది.
23. కాష్ రీప్లేస్మెంట్ (లేదా ఎవిక్షన్ పాలసీ) అల్గారిథమ్లు అంటే ఏమిటి?
కాష్ అల్గారిథమ్లు (కాష్ రీప్లేస్మెంట్ అల్గారిథమ్లు, కాష్ రీప్లేస్మెంట్ విధానాలు లేదా కాష్ ఎవిక్షన్ పాలసీలు అని కూడా పిలుస్తారు) ఆప్టిమైజేషన్ సూచనలు లేదా అల్గారిథమ్లు, కంప్యూటర్ ప్రోగ్రామ్ లేదా హార్డ్వేర్-నిర్వహించే నిర్మాణం కంప్యూటర్లో నిల్వ చేయబడిన డేటా కాష్ని నిర్వహించడానికి ఉపయోగించవచ్చు.
కాషింగ్ అనేది ఇటీవల ఉపయోగించిన లేదా తరచుగా యాక్సెస్ చేయబడిన డేటాను మెమొరీ రీజియన్లలో నిల్వ చేయడం ద్వారా వేగాన్ని పెంచుతుంది, ఇవి సాంప్రదాయ మెమరీ నిల్వ కంటే వేగంగా లేదా తక్కువ ఖర్చుతో యాక్సెస్ చేయగలవు. కాష్ నిండినప్పుడు, కొత్త వాటి కోసం ఒక స్థలాన్ని చేయడానికి ఏ అంశాలను తీసివేయాలో అల్గారిథమ్ తప్పనిసరిగా నిర్ణయించాలి.
24. పంపిణీ చేయబడిన లావాదేవీ ద్వారా మీరు సరిగ్గా అర్థం ఏమిటి?
పంపిణీ చేయబడిన లావాదేవీ అనేది ఒకే సంఘటన రెండు లేదా అంతకంటే ఎక్కువ విభిన్న డేటా మూలాధారాలను మార్చడానికి కారణమయ్యే ఏదైనా సందర్భం.
మైక్రోసర్వీస్ల ప్రపంచంలో ఇది చాలా క్లిష్టంగా మారుతుంది, ఎందుకంటే ప్రతి సేవ పని యొక్క యూనిట్, మరియు వ్యాపారాన్ని విజయవంతం చేయడానికి అనేక సేవలు తప్పనిసరిగా సహకరించాలి.
25. ఆకలితో ఉండటం అంటే ఏమిటి?
ఒక థ్రెడ్ భాగస్వామ్య వనరులకు సాధారణ ప్రాప్యతను పొందలేనప్పుడు, అది ఆకలితో ఉన్నట్లు చెప్పబడుతుంది. "అత్యాశ" థ్రెడ్లు లేదా అధిక "ప్రాధాన్యత" ఉన్న థ్రెడ్లు భాగస్వామ్య వనరులను సుదీర్ఘ కాలం పాటు ప్రాప్యత చేయలేని విధంగా చేసినప్పుడు ఇది జరుగుతుంది.
తరచుగా ఆలస్యంగా తిరిగి వచ్చే సమకాలీకరణ పద్ధతిని అందించే వస్తువును పరిగణించండి. ఒక థ్రెడ్ ఈ పద్ధతిని పదే పదే కాల్ చేస్తే, అదే వస్తువుకు తరచుగా సమకాలీకరించబడిన యాక్సెస్ అవసరమయ్యే ఇతర థ్రెడ్లు తరచుగా బ్లాక్ చేయబడతాయి.
ముగింపు
సిస్టమ్ డిజైన్ ఇంటర్వ్యూలో మెదడును కదిలించే సెషన్ మాత్రమే. మేము ఈ పోస్ట్లో అత్యంత సాధారణ సిస్టమ్ డిజైన్ ఇంటర్వ్యూ ప్రశ్నలను పరిష్కరించాము.
సిస్టమ్ డిజైన్ ఇంటర్వ్యూలో ఉత్తీర్ణత సాధించడానికి నిర్దిష్ట సిస్టమ్ను సృష్టించేటప్పుడు మీరు తీసుకుంటున్న పద్ధతి యొక్క సమగ్ర అవగాహన చాలా కీలకం.
సమాధానం ఇవ్వూ