తెలుగు

పంపిణీ చేయబడిన లావాదేవీలు మరియు రెండు-దశల కమిట్ (2PC) ప్రోటోకాల్ యొక్క లోతైన అన్వేషణ. దాని ఆర్కిటెక్చర్, ప్రయోజనాలు, అప్రయోజనాలు మరియు ప్రపంచ వ్యవస్థలలో ఆచరణాత్మక అనువర్తనాలను తెలుసుకోండి.

పంపిణీ చేయబడిన లావాదేవీలు: రెండు-దశల కమిట్ (2PC) లోతుగా పరిశీలన

నేటి దినాలలో, ఒకదానితో ఒకటి పెనవేసుకున్న ప్రపంచంలో, అప్లికేషన్లు తరచుగా బహుళ, స్వతంత్ర వ్యవస్థలలో నిల్వ చేయబడిన డేటాతో సంకర్షణ చెందాలి. ఇది పంపిణీ చేయబడిన లావాదేవీలు అనే భావనకు దారి తీస్తుంది, ఇక్కడ ఒకే తార్కిక ఆపరేషన్ అనేక డేటాబేస్లు లేదా సేవలలో మార్పులు చేయవలసి ఉంటుంది. అటువంటి దృశ్యాలలో డేటా స్థిరత్వాన్ని నిర్ధారించడం అత్యున్నతమైనది, మరియు దీనిని సాధించడానికి బాగా తెలిసిన ప్రోటోకాల్లలో ఒకటి రెండు-దశల కమిట్ (2PC).

పంపిణీ చేయబడిన లావాదేవీ అంటే ఏమిటి?

పంపిణీ చేయబడిన లావాదేవీ అనేది బహుళ, భౌగోళికంగా చెల్లాచెదురుగా ఉన్న వ్యవస్థలపై నిర్వహించబడే కార్యకలాపాల శ్రేణి, దీనిని ఒకే అణు యూనిట్గా పరిగణిస్తారు. అంటే లావాదేవీలోని అన్ని కార్యకలాపాలు తప్పనిసరిగా విజయవంతం కావాలి (కమిట్), లేదా ఏవీ కాకూడదు (రోల్బ్యాక్). ఈ "అన్నీ లేదా ఏమీ కాదు" సూత్రం మొత్తం పంపిణీ వ్యవస్థ అంతటా డేటా సమగ్రతను నిర్ధారిస్తుంది.

టోక్యోలోని ఒక కస్టమర్ ఒక విమానయాన సంస్థ వ్యవస్థలో టోక్యో నుండి లండన్కు విమానాన్ని బుక్ చేసుకున్నప్పుడు మరియు అదే సమయంలో మరొక హోటల్ బుకింగ్ వ్యవస్థలో లండన్లో హోటల్ గదిని రిజర్వ్ చేసుకున్నప్పుడు ఒక దృశ్యాన్ని పరిగణించండి. ఈ రెండు కార్యకలాపాలు (విమాన బుకింగ్ మరియు హోటల్ రిజర్వేషన్) ఆదర్శంగా ఒకే లావాదేవీగా పరిగణించాలి. విమాన బుకింగ్ విజయవంతమైతే, హోటల్ రిజర్వేషన్ విఫలమైతే, కస్టమర్ వసతి లేకుండా లండన్లో చిక్కుకోకుండా ఉండటానికి సిస్టమ్ ఆదర్శంగా విమాన బుకింగ్ను రద్దు చేయాలి. ఈ సమన్వయ ప్రవర్తన పంపిణీ చేయబడిన లావాదేవీ యొక్క సారాంశం.

రెండు-దశల కమిట్ (2PC) ప్రోటోకాల్ను పరిచయం చేస్తున్నాము

రెండు-దశల కమిట్ (2PC) ప్రోటోకాల్ అనేది బహుళ వనరుల నిర్వాహకుల అంతటా అణుత్వాన్ని నిర్ధారించే పంపిణీ చేయబడిన అల్గోరిథం (ఉదా., డేటాబేస్లు). ఇది ఒక కేంద్ర సమన్వయకర్త మరియు బహుళ పాల్గొనే వారిని కలిగి ఉంటుంది, ప్రతి ఒక్కటి ఒక నిర్దిష్ట వనరును నిర్వహించడానికి బాధ్యత వహిస్తారు. ప్రోటోకాల్ రెండు వేర్వేరు దశల్లో పనిచేస్తుంది:

దశ 1: ప్రిపేర్ దశ

ఈ దశలో, సమన్వయకర్త లావాదేవీని ప్రారంభిస్తాడు మరియు లావాదేవీని కమిట్ చేయడానికి లేదా రోల్బ్యాక్ చేయడానికి సిద్ధం కావాలని ప్రతి పాల్గొనేవారిని అడుగుతాడు. ఇందులో ఇమిడి ఉన్న దశలు క్రింది విధంగా ఉన్నాయి:

  1. సమన్వయకర్త ప్రిపేర్ అభ్యర్థనను పంపుతాడు: సమన్వయకర్త అన్ని పాల్గొనేవారికి "ప్రిపేర్" సందేశాన్ని పంపుతాడు. ఈ సందేశం సమన్వయకర్త లావాదేవీని కమిట్ చేయడానికి సిద్ధంగా ఉన్నట్లు సూచిస్తుంది మరియు అలా చేయడానికి సిద్ధంగా ఉండమని ప్రతి పాల్గొనేవారిని అభ్యర్థిస్తుంది.
  2. పాల్గొనేవారు సిద్ధం చేస్తారు మరియు ప్రతిస్పందిస్తారు: ప్రతి పాల్గొనేవారు ప్రిపేర్ అభ్యర్థనను అందుకుంటారు మరియు కింది చర్యలను నిర్వహిస్తారు:
    • ఇది లావాదేవీని కమిట్ చేయడానికి లేదా రోల్బ్యాక్ చేయడానికి వీలు కల్పిస్తుంది (ఉదా., రీడో/అన్డో లాగ్లను రాయడం).
    • ఇది "ఓటు"ను సమన్వయకర్తకు తిరిగి పంపుతుంది, "కమిట్ చేయడానికి సిద్ధంగా ఉంది" (ఒక "అవును" ఓటు) లేదా "కమిట్ చేయలేము" (ఒక "నో" ఓటు) సూచిస్తుంది. వనరుల పరిమితులు, డేటా ధ్రువీకరణ వైఫల్యాలు లేదా ఇతర లోపాల కారణంగా "నో" ఓటు రావచ్చు.

తమరు "అవును" అని ఓటు వేసిన తర్వాత మార్పులను కమిట్ చేయగలరో లేదా రోల్బ్యాక్ చేయగలరో అని పాల్గొనేవారు హామీ ఇవ్వడం చాలా ముఖ్యం. ఇది సాధారణంగా మార్పులను స్థిరమైన నిల్వకు (ఉదా., డిస్క్) నిలుపుకోవడంలో ఉంటుంది.

దశ 2: కమిట్ లేదా రోల్బ్యాక్ దశ

ప్రిపేర్ దశలో పాల్గొనేవారి నుండి స్వీకరించిన ఓట్ల ఆధారంగా సమన్వయకర్త ఈ దశను ప్రారంభిస్తాడు. రెండు ఫలితాలు సాధ్యమే:

ఫలితం 1: కమిట్

సమన్వయకర్త అన్ని పాల్గొనేవారి నుండి "అవును" ఓట్లు అందుకుంటే, అది లావాదేవీని కమిట్ చేయడానికి ముందుకు సాగుతుంది.

  1. సమన్వయకర్త కమిట్ అభ్యర్థనను పంపుతాడు: సమన్వయకర్త అన్ని పాల్గొనేవారికి "కమిట్" సందేశాన్ని పంపుతాడు.
  2. పాల్గొనేవారు కమిట్ చేస్తారు: ప్రతి పాల్గొనేవారు కమిట్ అభ్యర్థనను అందుకుంటారు మరియు లావాదేవీకి సంబంధించిన మార్పులను శాశ్వతంగా దాని వనరుకు వర్తింపజేస్తారు.
  3. పాల్గొనేవారు అంగీకరిస్తారు: ప్రతి పాల్గొనేవారు కమిట్ ఆపరేషన్ విజయవంతమైందని నిర్ధారించడానికి సమన్వయకర్తకు తిరిగి ఒక అంగీకార సందేశాన్ని పంపుతారు.
  4. సమన్వయకర్త పూర్తి చేస్తాడు: అన్ని పాల్గొనేవారి నుండి అంగీకారాలను అందుకున్న తర్వాత, సమన్వయకర్త లావాదేవీని పూర్తయినట్లు గుర్తిస్తాడు.

ఫలితం 2: రోల్బ్యాక్

సమన్వయకర్త ఏ పాల్గొనేవారి నుండి ఒక్క "నో" ఓటునైనా అందుకుంటే, లేదా పాల్గొనేవారి నుండి ప్రతిస్పందన కోసం ఎదురు చూస్తున్నప్పుడు సమయం ముగిస్తే, అది లావాదేవీని రోల్బ్యాక్ చేయడానికి నిర్ణయిస్తుంది.

  1. సమన్వయకర్త రోల్బ్యాక్ అభ్యర్థనను పంపుతాడు: సమన్వయకర్త అన్ని పాల్గొనేవారికి "రోల్బ్యాక్" సందేశాన్ని పంపుతాడు.
  2. పాల్గొనేవారు రోల్బ్యాక్ చేస్తారు: ప్రతి పాల్గొనేవారు రోల్బ్యాక్ అభ్యర్థనను అందుకుంటారు మరియు లావాదేవీ కోసం సన్నాహకంగా చేసిన ఏవైనా మార్పులను отменяют.
  3. పాల్గొనేవారు అంగీకరిస్తారు: ప్రతి పాల్గొనేవారు రోల్బ్యాక్ ఆపరేషన్ విజయవంతమైందని నిర్ధారించడానికి సమన్వయకర్తకు తిరిగి ఒక అంగీకార సందేశాన్ని పంపుతారు.
  4. సమన్వయకర్త పూర్తి చేస్తాడు: అన్ని పాల్గొనేవారి నుండి అంగీకారాలను అందుకున్న తర్వాత, సమన్వయకర్త లావాదేవీని పూర్తయినట్లు గుర్తిస్తాడు.

వివరణాత్మక ఉదాహరణ: ఇ-కామర్స్ ఆర్డర్ ప్రాసెసింగ్

ఒక ఆర్డర్ ఇన్వెంటరీ డేటాబేస్ను నవీకరించడం మరియు ప్రత్యేక చెల్లింపు గేట్వే ద్వారా చెల్లింపును ప్రాసెస్ చేయడం వంటి ఇ-కామర్స్ వ్యవస్థను పరిగణించండి. ఇవి పంపిణీ చేయబడిన లావాదేవీలో పాల్గొనాల్సిన రెండు ప్రత్యేక వ్యవస్థలు.

  1. ప్రిపేర్ దశ:
    • ఇ-కామర్స్ సిస్టమ్ (సమన్వయకర్త) ఇన్వెంటరీ డేటాబేస్ మరియు చెల్లింపు గేట్వేకి ప్రిపేర్ అభ్యర్థనను పంపుతుంది.
    • ఇన్వెంటరీ డేటాబేస్ అభ్యర్థించిన వస్తువులు స్టాక్లో ఉన్నాయో లేదో తనిఖీ చేస్తుంది మరియు వాటిని రిజర్వ్ చేస్తుంది. ఇది విజయవంతమైతే "అవును" అని ఓటు వేస్తుంది లేదా వస్తువులు స్టాక్లో లేకుంటే "నో" అని ఓటు వేస్తుంది.
    • చెల్లింపు గేట్వే చెల్లింపును ముందుగా అధీకృతం చేస్తుంది. ఇది విజయవంతమైతే "అవును" అని ఓటు వేస్తుంది లేదా అధీకరణ విఫలమైతే (ఉదా., తగినంత నిధులు) "నో" అని ఓటు వేస్తుంది.
  2. కమిట్/రోల్బ్యాక్ దశ:
    • కమిట్ దృశ్యం: ఇన్వెంటరీ డేటాబేస్ మరియు చెల్లింపు గేట్వే రెండూ "అవును" అని ఓటు వేస్తే, సమన్వయకర్త రెండింటికీ కమిట్ అభ్యర్థనను పంపుతాడు. ఇన్వెంటరీ డేటాబేస్ శాశ్వతంగా స్టాక్ గణనను తగ్గిస్తుంది మరియు చెల్లింపు గేట్వే చెల్లింపును సంగ్రహిస్తుంది.
    • రోల్బ్యాక్ దృశ్యం: ఇన్వెంటరీ డేటాబేస్ లేదా చెల్లింపు గేట్వే ఏదైనా "నో" అని ఓటు వేస్తే, సమన్వయకర్త రెండింటికీ రోల్బ్యాక్ అభ్యర్థనను పంపుతాడు. ఇన్వెంటరీ డేటాబేస్ రిజర్వ్ చేసిన వస్తువులను విడుదల చేస్తుంది మరియు చెల్లింపు గేట్వే ముందుగా అధీకృతాన్ని రద్దు చేస్తుంది.

రెండు-దశల కమిట్ యొక్క ప్రయోజనాలు

రెండు-దశల కమిట్ యొక్క అప్రయోజనాలు

రెండు-దశల కమిట్కు ప్రత్యామ్నాయాలు

2PC యొక్క పరిమితుల కారణంగా, పంపిణీ చేయబడిన లావాదేవీలను నిర్వహించడానికి అనేక ప్రత్యామ్నాయ విధానాలు ఉద్భవించాయి. వీటిలో ఇవి ఉన్నాయి:

రెండు-దశల కమిట్ యొక్క ఆచరణాత్మక అనువర్తనాలు

దాని పరిమితులు ఉన్నప్పటికీ, బలమైన స్థిరత్వం ఒక క్లిష్టమైన అవసరమయ్యే వివిధ దృశ్యాలలో 2PC ఇప్పటికీ ఉపయోగించబడుతుంది. కొన్ని ఉదాహరణలు:

రెండు-దశల కమిట్ను అమలు చేయడం

2PCని అమలు చేయడానికి వివిధ అంశాలను జాగ్రత్తగా పరిగణించాల్సి ఉంటుంది, వీటిలో ఇవి ఉన్నాయి:

పంపిణీ చేయబడిన లావాదేవీల కోసం గ్లోబల్ పరిగణనలు

ప్రపంచ వాతావరణంలో పంపిణీ చేయబడిన లావాదేవీలను రూపొందించేటప్పుడు మరియు అమలు చేసేటప్పుడు, అనేక అదనపు అంశాలను పరిగణనలోకి తీసుకోవాలి:

ముగింపు

పంపిణీ చేయబడిన లావాదేవీలు మరియు రెండు-దశల కమిట్ (2PC) ప్రోటోకాల్ బలమైన మరియు స్థిరమైన పంపిణీ వ్యవస్థలను నిర్మించడానికి అవసరమైన భావనలు. 2PC అణుత్వాన్ని నిర్ధారించడానికి ఒక సాధారణ మరియు విస్తృతంగా స్వీకరించబడిన పరిష్కారాన్ని అందించినప్పటికీ, దాని పరిమితులు, ప్రత్యేకించి బ్లాకింగ్ మరియు వైఫల్యానికి ఒకే పాయింట్ చుట్టూ, సాగాస్ మరియు చివరి స్థిరత్వం వంటి ప్రత్యామ్నాయ విధానాలను జాగ్రత్తగా పరిగణించవలసి ఉంటుంది. బలమైన స్థిరత్వం, లభ్యత మరియు పనితీరు మధ్య వాణిజ్యాలను అర్థం చేసుకోవడం మీ నిర్దిష్ట అప్లికేషన్ అవసరాలకు సరైన విధానాన్ని ఎంచుకోవడం చాలా ముఖ్యం. అంతేకాకుండా, ప్రపంచ వాతావరణంలో పనిచేస్తున్నప్పుడు, నెట్వర్క్ జాప్యం, సమయ మండలాలు, డేటా స్థానికీకరణ మరియు నియంత్రణ సమ్మతి చుట్టూ అదనపు పరిగణనలను పంపిణీ చేయబడిన లావాదేవీల విజయాన్ని నిర్ధారించడానికి పరిష్కరించాలి.