స్మృతి పరిమితి: మహా ప్రవాహాన్ని శాసించే చిన్న గొట్టం
కేంద్ర సమాచార యంత్రాలు విఫలం కాకుండా భారీ దత్తాంశాన్ని చిన్న భాగాలుగా ప్రవహింపజేసే అద్భుతమైన సాంకేతిక రహస్యాలను రవి మరియు లక్ష్మి వివరించే విశేషాలు PodThis లో వినండి.
ఒకే ఒక్క పెద్ద దస్త్రాన్ని నింపడానికే కేంద్ర సమాచార యంత్రం ఒక్కసారిగా కుప్పకూలిపోవడం వెనుక ఉన్న అసలు రహస్యాన్ని ఈ భాగంలో ఛేదిస్తున్నాము. తాత్కాలిక నిల్వ స్థలాల పరిమితులను అధిగమిస్తూ, భారీ దత్తాంశాన్ని చిన్న ముక్కలుగా విభజించి ప్రవహింపజేసే నిరంతర ప్రవాహ మార్గాలు మరియు గొట్టపు అనుసంధాన సాంకేతికతను లోతుగా పరిశీలిస్తున్నాము. దీని ద్వారా మీ వ్యవస్థల వేగాన్ని పెంచి, ఎలాంటి అదనపు ఖర్చు లేకుండా నిరంతరాయంగా సేవలను అందించే నైపుణ్యాన్ని మీరు సాధిస్తారు. కేవలం స్వల్ప జ్ఞాపకశక్తితో అత్యంత భారీ సమాచారాన్ని ఎలా నియంత్రించవచ్చో మీకు తెలుసా?
Chapters
PodThis కు స్వాగతం. మీరు ఎంతో కష్టపడి ఒక అద్భుతమైన వెబ్ సైట్ ను తయారు చేశారు. అంతా బాగుంది అనుకుంటున్న సమయంలో, ఒక వినియోగదారుడు రెండు వందల కోట్ల డేటా పాయింట్లు ఉన్న ఒక పెద్ద వీడియో ఫైల్ ను పంపారు. మీ సర్వర్ లో చాలా ఖాళీ స్థలం ఉన్నప్పటికీ, ఒక్క క్షణంలో మెమరీ సరిపోలేదని ఎర్రటి అక్షరాలు కనిపిస్తాయి. వెంటనే సిస్టమ్ ఆగిపోతుంది.
అసలు ఖాళీ స్థలం ఉన్నా కూడా ఇలా ఎందుకు జరుగుతుందో ఎప్పుడైనా ఆలోచించారా? నిల్వ చేయడానికి చోటు ఉన్నా కూడా సిస్టమ్ ఆగిపోవడం వినడానికి వింతగా ఉంది. అసలు ఆ సమయంలో లోపల ఏం జరుగుతుందో తెలుసుకోవాలని నాకు చాలా ఆత్రుతగా ఉంది. నేను మీ రవిని. ఈ రోజు మనం ఒక ముఖ్యమైన విషయం గురించి మాట్లాడుకుందాం.
భారీ సమాచారాన్ని కంప్యూటర్ మెమరీపై భారం పడకుండా, ఒక చిన్న నీటి గొట్టం ద్వారా పంపినట్టుగా ముక్కలు ముక్కలుగా ఎలా పంపాలో ఇప్పుడు చూద్దాం. నేను లక్ష్మిని. అంటే ఒక పెద్ద ఫైల్ ను ఒకేసారి కాకుండా, చిన్న చిన్న భాగాలుగా మార్చి పంపే ఆ రహస్యాన్ని మనం ఈ రోజు నేర్చుకోబోతున్నాం అన్నమాట. ఖచ్చితంగా. పెద్ద ఫైల్స్ వల్ల మెమరీ ఎందుకు నిండిపోతుంది?
సమాచారాన్ని తాత్కాలికంగా ఎలా దాచుకోవాలి? ఫైల్స్ చదివేటప్పుడు ఉండే పరిమితులు ఏమిటి? డేటాను చిన్న ముక్కలుగా ఎలా పంపాలి? అలాగే ఒకదానితో ఒకటి ఎలా అనుసంధానం చేయాలి? ఈ ఐదు విషయాల ద్వారా మనం దీని గురించి పూర్తిగా తెలుసుకుందాం.
2GB ఫైల్ మరియు సర్వర్ క్రాష్: అసలు ఏం జరిగింది?
2GB ఫైల్ మరియు సర్వర్ క్రాష్: అసలు ఏం జరిగింది?
లను చర్చిస్తూ ఉంటాము. నిజమే. పాత్ర ఎంత పెద్దదైనా సరే, ఒకేసారి నీటిని నింపాలని చూస్తే అది బయటకు ఒలికిపోతుంది. నాకు ఆ విషయం అర్థమైంది కానీ, నా మనసులో ఒక సందేహం మాత్రం అలాగే ఉంది. అసలు ఈ సమాచారం యంత్రం లోపల ఎలా నిక్షిప్తమవుతుంది? యంత్రం దీన్ని ఏ రూపంలో గ్రహిస్తుంది?
Everything looks solid and meets the prompt's highly specific requirements. Ready to generate.
బఫర్స్ అంటే ఏమిటి?
బైనరీ డేటా గురించి తెలుసుకుందాం
బఫర్స్ అంటే ఏమిటి?
బైనరీ డేటా గురించి తెలుసుకుందాం. చాలా మంది తాము కంప్యూటర్ లోపల ఒక వ్యాసాన్ని కానీ, ఒక బొమ్మను కానీ దాచినప్పుడు, ఆ యంత్రం వాటిని నేరుగా అక్షరాల రూపంలోనే దాస్తుందని అనుకుంటారు. కానీ అది పూర్తిగా తప్పు. మనం క్రితం భాగంలో ఒక పెద్ద సినిమా దస్త్రం గురించి మాట్లాడుకున్నాం కదా. ఆ రెండు గిగాబైట్ల దస్త్రం కేంద్ర యంత్రాన్ని పూర్తిగా కూల్చేసింది.
దానికి అసలు కారణం ఏంటంటే, ఈ అక్షరాల వెనుక ఉన్న ముడి సంఖ్యల స్వభావాన్ని మనం సరిగ్గా అంచనా వేయకపోవడమే. కంప్యూటర్లు మన మనుషుల భాషను నేరుగా చదవలేవు. ఆగండి, సంఖ్యలా? మనం ప్రతిరోజూ తెరపై చూసేవన్నీ స్పష్టమైన అక్షరాలు, రంగురంగుల బొమ్మలే కదా! ఒక పెద్ద సినిమా కేవలం కొన్ని సంఖ్యల రూపంలోకి ఎలా మారుతుందో నాకు అస్సలు ఊహకు అందడం లేదు.
నాకు ఇది కొంచెం అయోమయంగా ఉంది, కాస్త వివరంగా చెప్పరా? నీ సందేహం చాలా సహజమైంది లక్ష్మి. మనం కళ్ళతో చూసే ప్రపంచానికి, యంత్రాలు పని చేసే విధానానికి చాలా తేడా ఉంది. నిజానికి, మన వ్యవస్థల్లో అక్షరాల కంటే చిత్రాలు, శబ్దాలు, దృశ్యాలే ఎక్కువగా ప్రయాణిస్తూ ఉంటాయి.
కానీ కంప్యూటర్ దృష్టిలో ఒక అందమైన బొమ్మ అయినా, ఒక అద్భుతమైన దృశ్యమైనా కేవలం సున్నా నుండి రెండు వందల యాభై ఐదు వరకు ఉండే సంఖ్యల సమూహం మాత్రమే. ఈ ముడి సమాచారాన్ని కంప్యూటర్ జ్ఞాపకశక్తిలో ఉంచడానికి ఒక స్థిరమైన స్థలం ఉంటుంది. దీన్నే మనం తాత్కాలిక దత్తాంశ నిల్వ అంటాము. ఇది జ్ఞాపకశక్తిలో ఒక నిర్దిష్టమైన సరిహద్దు కలిగిన చోటు.
అంతకు మించి అది అస్సలు విస్తరించలేదు. కానీ నాకు ఇక్కడే ఒక పెద్ద అనుమానం వస్తోంది. కేవలం సున్నా నుండి రెండు వందల యాభై ఐదు వరకే ఎందుకు ఉండాలి? అంతకంటే పెద్ద సంఖ్యలు, అంటే వేలల్లోనో లక్షల్లోనో ఎందుకు ఉండకూడదు? ఈ పరిమితి వల్ల సమాచారాన్ని దాచడం చాలా కష్టంగా మారుతుంది కదా. నాకైతే ఇది అంతగా సరికాదనిపిస్తోంది.
నువ్వు ఆలోచించే విధానం బాగుంది, కానీ యంత్రాల ప్రాథమిక నిర్మాణం వేరుగా ఉంటుంది. కంప్యూటర్లు సమాచారాన్ని బైట్ల రూపంలో కొలుస్తాయి. ఒక బైట్ స్థలంలో కేవలం ఎనిమిది చిన్న విద్యుత్ గుర్తులు ఉంటాయి, వాటినే బిట్లు అంటారు. ఈ ఎనిమిది గుర్తుల సహాయంతో మనం కేవలం రెండు వందల యాభై ఆరు రకాల విభిన్న అమరికలను మాత్రమే చేయగలం.
అందుకే ఆ సంఖ్యలు సున్నా నుండి మొదలై రెండు వందల యాభై ఐదు దగ్గర ముగుస్తాయి. దీనికంటే ఎక్కువ సమాచారం కావాలంటే మనం మరికొన్ని బైట్లను జత చేయాల్సి ఉంటుంది. ఓహో, ఇప్పుడు నాకు కొంత స్పష్టత వచ్చింది. అంటే మనం ఒక దస్త్రాన్ని చదివినప్పుడు, మన వ్యవస్థ మొదట ఈ ముడి సంఖ్యలనే ఇస్తుందన్నమాట.
ఆ సమాచారం కేవలం అక్షరాల రూపంలో ఉన్నప్పుడు మాత్రమే, దాన్ని మనం చదవగలిగే భాషలోకి మార్చుకోవాలి. అవును, నువ్వు సరిగ్గా గ్రహించావు. సమాచారం అక్షరాల రూపంలో ఉన్నప్పుడు మాత్రమే దాన్ని మార్చాలి. ఒకవేళ అది ఒక బొమ్మ లేదా సినిమా అయితే, మనం దాన్ని అక్షరాలుగా మార్చాల్సిన అవసరం లేదు. ఆ ముడి సంఖ్యలను అలాగే ఉంచి, నేరుగా ముందుకు పంపాలి.
ఈ ముడి విభాగాలు మన వ్యవస్థలో సమాచార మార్పిడికి ఎంతగానో ఉపయోగపడతాయి. నిజానికి, సమాచార ప్రయాణానికి ఇవే పునాది రాళ్ళు. మనం చూసే ఒక పెద్ద సినిమా వెనుక కేవలం సున్నా నుండి రెండు వందల యాభై ఐదు వరకు ఉండే కోట్ల సంఖ్యల సమూహం మాత్రమే ఉందనే నిజం నాకు ఆశ్చర్యం కలిగిస్తోంది. తెర వెనుక అసలు రహస్యం ఇదా అనిపిస్తోంది.
మనం రోజూ చూసే ప్రపంచానికి, యంత్రం చూసే ప్రపంచానికి ఎంత తేడా ఉందో కదా! నిజమే లక్ష్మి, కంప్యూటర్ ప్రపంచంలో ప్రతిదీ ఇంతే నిశ్శబ్దంగా, క్రమశిక్షణతో జరుగుతుంది. అయితే ఇది మనల్ని ఒక పెద్ద ప్రశ్న వైపు నడిపిస్తుంది. ఈ ముడి సంఖ్యల సమూహాన్ని మనం ఒకేసారి జ్ఞాపకశక్తిలోకి సులభంగా తీసుకోగలం అని అనుకుంటాం.
కానీ, ఈ ముడి సమాచారాన్ని మన యంత్రం చదివేటప్పుడు, మనం చేసే ఒక ప్రాథమిక ఊహ ఎక్కడ తప్పుగా మారుతోంది?
fs
readFile మరియు fs.writeFile ఉపయోగాలు, పరిమితులు
fs
readFile మరియు fs.writeFile ఉపయోగాలు, పరిమితులు. అర్ధరాత్రి వేళ మీ ఇంటి తలుపును ఎవరో బలంగా తడుతున్నారని ఊహించుకోండి. వందల మంది వినియోగదారులు ఒకేసారి పెద్ద దస్త్రాలను మీ వ్యవస్థకు పంపుతున్నారు. సరిగ్గా ఆ సమయంలోనే మీ గణన యంత్రం ఒక్కసారిగా ఆగిపోయింది. మనం క్రితం భాగంలో మాట్లాడుకున్న ఆ ముడి సమాచార నిల్వలు మీకు గుర్తుండే ఉంటాయి.
వాటిని శాశ్వత నిల్వ నుండి చదవడానికి మనం వాడే సాధనాల్లోనే ఈ ప్రమాదం దాగి ఉంది. మన వ్యవస్థలో దస్త్రాలను చదివే సాధనం మొత్తం సమాచారాన్ని ఒకేసారి తాత్కాలిక స్మృతిలోకి లాగుతుంది. అలాగే దస్త్రాలను రాసే సాధనం ఆ సమాచారాన్ని భద్రపరుస్తుంది. ఈ రెండు పనులు నేపథ్య వ్యవస్థలో నిశ్శబ్దంగా జరుగుతాయి. ఇతర పనులకు ఎటువంటి ఆటంకం కలగకుండా ఇవి సాగిపోతాయి.
ఇది వింటుంటే నాకు ఒక విషయం గుర్తొస్తోంది. గత వారం ఒక చిన్న ఐదు వేల విభాగాల అమరికల దస్త్రాన్ని చదవడానికి నేను ఇదే పద్ధతిని వాడాను. అప్పుడు అది వెన్నతో పెట్టిన విద్యలా చాలా వేగంగా పనిచేసింది. నాకైతే ఎటువంటి ఇబ్బంది కలగలేదు. కానీ మీరు చెబుతున్న ఈ ప్రమాదం ఎక్కడ ఉందో నాకు అస్సలు అర్థం కావడం లేదు. నిజమే లక్ష్మి.
మనం సాధారణంగా వాడే చిన్న చిన్న దస్త్రాల విషయంలో ఏ సమస్యా ఉండదు.
స్ట్రీమ్స్ పరిచయం: డేటాను ముక్కలుగా పంపడం ఎలా?
స్ట్రీమ్స్ పరిచయం: డేటాను ముక్కలుగా పంపడం ఎలా?
ఎంత పెద్ద దస్త్రాన్నైనా సరే, కేవలం అరవై నాలుగు వేల విభాగాల తాత్కాలిక స్మృతితో చాలా సులువుగా తరలించవచ్చు. గత భాగంలో మనం ఒక విషయాన్ని చూశాం. దస్త్రాన్ని ఒకేసారి పూర్తిగా చదవడం వల్ల కంప్యూటర్ జ్ఞాపకశక్తి ఎలా కుప్పకూలిపోతుందో మాట్లాడుకున్నాం. కానీ ఈ సరికొత్త సమాచార ప్రవాహ పద్ధతి ఆ సమస్యను పూర్తిగా దూరం చేస్తుంది. కేవలం అరవై నాలుగు వేల విభాగాలా?
ఆ మాట వినడానికే వింతగా ఉంది. అంత పెద్ద దస్త్రాన్ని అంత చిన్న స్మృతితో ఎలా పంపిస్తారో ఊహించుకోవడం కూడా కష్టంగా ఉంది. చాలా సులభం లక్ష్మి. ఒక పెద్ద చెరువులో నీరుంది అనుకో. దాన్ని వేరే చోటికి మార్చాలి. అప్పుడు ఆ చెరువు మొత్తాన్ని ఒకేసారి ఎత్తి పోయలేం కదా? ఒక చిన్న గొట్టం పెట్టి నీటిని పంపిస్తాం. ఇక్కడ కూడా సరిగ్గా ఇదే జరుగుతుంది.
సమాచారాన్ని ఒకేసారి కాకుండా చిన్న చిన్న ముక్కలుగా చదువుతాం. నాకైతే ఇది అంత సరిగ్గా అనిపించడం లేదు రవి. సమాచారాన్ని అలా ముక్కలు ముక్కలుగా విడగొట్టి, ప్రతి ముక్కను విడివిడిగా చదివితే సమయం చాలా వృథా అవుతుంది కదా? అదే ఒకేసారి మొత్తం దస్త్రాన్ని చదివేస్తే పని వేగంగా పూర్తవుతుంది. పైకి అలా అనిపించవచ్చు కానీ నిజానికి అది కుదరదు.
మొత్తం రెండు కోట్ల విభాగాల దస్త్రం ఉందనుకో. దాన్ని ఒకేసారి తీసుకోవడానికి కంప్యూటర్ లో అసలు స్థలమే ఉండదు. అలాంటప్పుడు వేగం గురించి ఆలోచించడం వృథా. అక్కడ కంప్యూటర్ పూర్తిగా ఆగిపోతుంది. కానీ ఈ ప్రవాహ పద్ధతిలో ఒక భాగం పని ముగిసిన వెంటనే దాన్ని స్మృతి నుండి తీసేస్తాం. అందువల్ల స్మృతిపై అస్సలు భారం పడదు. హ్మ్. నేను ఆ కోణంలో ఆలోచించలేదు.
అంటే కంప్యూటర్ అస్సలు ఆగకుండా నిరంతరం పని చేస్తూనే ఉంటుందన్నమాట. మరి ఈ ప్రవాహాలలో ఏమైనా రకాలు ఉంటాయా? లేక అంతా ఒకేలా సాగుతుందా? ఇందులో ముఖ్యంగా మూడు రకాలు ఉన్నాయి. మొదటిది పఠన ప్రవాహం. ఇది సమాచారం ఎక్కడ ఉందో అక్కడి నుండి ముడి భాగాలను సేకరిస్తుంది. రెండవది లేఖన ప్రవాహం. ఇది ఆ భాగాలను మనం చేర్చాలనుకున్న చోటికి చేరుస్తుంది.
ఒక్క నిమిషం ఆగు. మరి ఈ రెండింటి మధ్యలో సమాచారాన్ని మార్చవలసి వస్తే ఏం చేయాలి? ఉదాహరణకు సమాచారాన్ని కుదించాలన్నా, లేదా రహస్య సంకేతాలుగా మార్చాలన్నా ఈ రెండు ప్రవాహాలు సరిపోవు కదా? నువ్వు చెప్పిన దాని ప్రకారం చూస్తే మనం మళ్లీ పాత పద్ధతికే వెళ్లాల్సి వస్తుంది. అది అస్సలు కుదరదు. చాలా మంచి ప్రశ్న అడిగావు లక్ష్మి. ఇక్కడే మనకు మూడవ రకం అవసరమవుతుంది.
దాన్నే రూపాంతర ప్రవాహం అంటారు. ఇది పఠన, లేఖన ప్రవాహాల మధ్య ఉంటుంది. సమాచారాన్ని కుదించడానికి ఇది ఉపయోగపడుతుంది. దస్త్రాన్ని అసలు స్మృతిలో నింపకుండానే, అది ప్రవహిస్తున్నప్పుడే మార్పులు చేసేస్తుంది. వినడానికి బాగానే ఉంది కానీ ఇదంతా నిజంగా ఎలా సాధ్యమవుతుంది? ఈ ముక్కలు ఒకదానికొకటి తప్పుల్లేకుండా ఎలా ప్రయాణిస్తాయో నాకు ఇంకా పూర్తిగా అర్థం కావడం లేదు.
ప్రతి ముక్క ఒక క్రమ పద్ధతిలో ప్రయాణిస్తుంది. సమాచారం అందుబాటులోకి వచ్చినప్పుడు ఒక సంకేతం వస్తుంది. అలాగే ప్రవాహం ముగిసినప్పుడు మరొక సంకేతం వస్తుంది. దీనివల్ల ఏ ముక్క ఎప్పుడు వచ్చిందో కంప్యూటర్కు స్పష్టంగా తెలిసిపోతుంది. నాకో విషయం గుర్తుకొస్తోంది. గత వారం నేను ఒక చిన్న కాగితాన్ని పంపడానికి కూడా పెద్ద పెట్టెను వాడాను.
అది ఎంత నవ్వొచ్చేలా ఉందో, చిన్న చిన్న దస్త్రాల విషయంలో కూడా ఈ ప్రవాహ పద్ధతిని వాడటం అంతే అనవసరమైన శ్రమ అని నా అభిప్రాయం. నిజమే, చిన్న దస్త్రాలకు పాత పద్ధతే సరిపోతుంది. అక్కడ నువ్వు చెప్పింది నిజమే. కానీ మనం భారీ సమాచారంతో పనిచేస్తున్నప్పుడు, ఈ ప్రవాహ పద్ధతిని అర్థం చేసుకోవడం చాలా అవసరం.
ఇది కేవలం దస్త్రాలకే కాదు, అంతర్జాలం ద్వారా వచ్చే ప్రతి అభ్యర్థనకు వర్తిస్తుంది. అవును, మనం నిర్మించే వ్యవస్థలు ఎంత పెద్దవైనా, వాటి వెనుక ఉన్న ఇలాంటి చిన్న చిన్న సూత్రాలే వాటిని బలంగా ఉంచుతాయి. మన దైనందిన జీవితంలో కూడా పెద్ద పెద్ద సమస్యలను ఇలా ముక్కలుగా మార్చుకుంటే సులభంగా పరిష్కరించుకోవచ్చు.
అయితే ఈ ముక్కలను ఒకదానికొకటి ఎలా కలపాలి? మూలం నుండి గమ్యానికి దానంతట అదే వెళ్లేలా ఎలా చేయాలో మనం తదుపరి భాగంలో మాట్లాడుకుందాం.
పైపింగ్ (Piping) ద్వారా డేటా ప్రవాహాన్ని నియంత్రించడం
పైపింగ్ (Piping) ద్వారా డేటా ప్రవాహాన్ని నియంత్రించడం
ఒక పెద్ద నీటి తొట్టి నుండి చిన్న గిన్నెలోకి నీటిని వేగంగా నింపాలని చూస్తే ఏమవుతుంది? ఆ గిన్నె నిండిపోయి నీరంతా బయటకు పొంగిపోతుంది. లేదా ఆ ఒత్తిడికి గిన్నె పగిలిపోయే ప్రమాదం కూడా ఉంది. గత విభాగంలో మనం సమాచారాన్ని చిన్న చిన్న ముక్కలుగా విడగొట్టడం గురించి మాట్లాడుకున్నాం కదా! ఆ ముక్కలను ఒక చోటు నుండి మరో చోటుకు సురక్షితంగా ఎలా పంపాలో ఇప్పుడు చూద్దాం.
ఆగండి రవి. మీరు సమాచారాన్ని తరలించడం గురించి చెప్తున్నారు. కానీ ఇక్కడ అసలు సమస్య అది కాదు కదా? అవతలి వైపు ఉన్న వ్యవస్థ ఆ సమాచారాన్ని ఎంత వేగంగా తీసుకోగలదు అనేదే ముఖ్యం. పంపే వ్యవస్థ చాలా వేగంగా పంపిస్తూ, తీసుకునే వ్యవస్థ నెమ్మదిగా ఉంటే ఏమవుతుంది? ముక్కలుగా చేసినా కూడా సమాచారం పేరుకుపోతుంది. చివరికి కేంద్ర గణన యంత్రం కూలిపోతుంది కదా?
నువ్వు చాలా చక్కని అనుమానాన్ని అడిగావు లక్ష్మి. సరిగ్గా ఇక్కడే గొట్టపు అనుసంధానం అనే అద్భుతమైన పద్ధతి మనకు సహాయపడుతుంది. దీనిని రెండు గొట్టాల మధ్య ఉండే ఒక తెలివైన కవాటం లాగా ఊహించుకో. అవతలి వైపు నిండిపోతోందని తెలియగానే, ఇది వెనుక నుండి వచ్చే ప్రవాహాన్ని దానంతట అదే తగ్గిస్తుంది. దీనినే మనం సాంకేతిక భాషలో వెనుక ఒత్తిడి నియంత్రణ అంటాము.
దీనివల్ల తాత్కాలిక స్మృతిలో సమాచారం పేరుకుపోకుండా ఉంటుంది. నాకు ఇది పూర్తిగా నమ్మశక్యంగా లేదు. పంపే వేగాన్ని దానంతట అదే తగ్గిస్తే, వాడుకరులకు ఆ సేవలన్నీ చాలా నెమ్మదైపోతాయి కదా? వారు అలా యంత్రాల ముందు ఎదురుచూస్తూనే కూర్చోవాలా? అస్సలు కాదు లక్ష్మి. వాడుకరి ఎక్కువ సమయం వేచి ఉండాల్సిన అవసరం లేదు.
దీనివల్ల జరిగే మేలు ఏంటంటే, మన తాత్కాలిక స్మృతిలో కేవలం కొన్ని వేల అక్షరాల స్థలం మాత్రమే ఖర్చవుతుంది. ఉదాహరణకు, మన PodThis వ్యవస్థలో ఒక వాడుకరి తన గుర్తింపు చిత్రాన్ని ఎక్కించినప్పుడు, ఆ చిత్రం మొత్తాన్ని మనం తాత్కాలిక స్మృతిలో ఉంచము. జాలం నుండి వచ్చే ప్రవాహాన్ని, శాశ్వత నిల్వకు వెళ్లే ప్రవాహంతో ఒకే ఒక్క వాక్యంతో అనుసంధానిస్తాము.
వాడుకరులు పంపే చిత్రాలను నేరుగా శాశ్వత నిల్వకు పంపడానికి ఇది ఉపయోగపడుతుంది. అంటే మీరు చెప్పేదాన్ని బట్టి, ఆ సమాచారం తాత్కాలిక స్మృతిలో ఆగకుండా, నేరుగా జాలం నుండి శాశ్వత నిల్వకు వెళ్ళిపోతుందా? ఇది వినడానికి బాగుంది. కానీ నిజంగా ఎలా సాధ్యమవుతుందో నాకు అర్థం కావడం లేదు. అవును. వచ్చే అభ్యర్థన అనేది చదవగలిగే ప్రవాహం.
అలాగే నిల్వ చేసే చోటు రాయగలిగే ప్రవాహం. మనం వాటిని గొట్టపు అనుసంధానం ద్వారా కలిపితే చాలు. చదివే, రాసే ప్రవాహాలను ఒకే వాక్యంలో కలపవచ్చు. సమాచారం నీటిలా ప్రవహిస్తుంది. మన వ్యవస్థలో ప్రతి చర్యను నమోదు చేసే దినచర్య పుస్తకాలను రాయడానికి కూడా ఈ పద్ధతినే వాడతాము. అన్ని వివరాలను ఒకేసారి కాకుండా, ఎప్పటికప్పుడు నిరంతరాయంగా రాస్తూ ఉంటాము. ఒక్క నిమిషం ఆగండి.
ఒకవేళ మనం ఆ సమాచారాన్ని మధ్యలో మార్చాల్సి వస్తే అప్పుడేం చేస్తారు? ఉదాహరణకు ఆ చిత్ర పరిమాణాన్ని తగ్గించాలన్నా, లేదా భద్రత కోసం రహస్య సంకేతంగా మార్చాలన్నా, నేరుగా పంపితే కుదరదు కదా. అప్పుడు మీ ఒక్క వాక్యపు పరిష్కారం ఖచ్చితంగా విఫలమవుతుంది. నువ్వు చెప్పింది వంద శాతం నిజం లక్ష్మి. అక్కడ నేరుగా పంపితే కుదరదు.
కానీ దీనికి కూడా మన దగ్గర ఒక అద్భుతమైన మార్గం ఉంది. దానినే రూపాంతర ప్రవాహం అంటాము. దీనిని గొట్టాల మధ్యలో అమర్చే ఒక వడపోత సాధనంగా అనుకోవచ్చు. ఇది వచ్చే ముక్కలను తీసుకొని, వాటిని మార్చి, అవతలి వైపునకు పంపుతుంది. అంటే చదవడం, రూపాంతరం చేయడం, ఆపై రాయడం అన్నీ ఒకే ప్రవాహంలో జరిగిపోతాయి.
ఇది వింటుంటేనే చాలా అద్భుతంగా ఉంది. అంత పెద్ద దస్త్రం కదలికలో ఉండగానే తన రూపాన్ని మార్చుకోవడం, పైగా గణన యంత్రంపై ఎలాంటి భారం పడకపోవడం నిజంగా విశేషం. ఇది ఎక్కడా ఆగకుండా నడిచే ఒక కర్మాగారపు యంత్రంలా ఉంది. అవును లక్ష్మి. వాడుకరి ఒక పెద్ద దస్త్రాన్ని దించుకునేటప్పుడు కూడా ఇదే జరుగుతుంది.
మొత్తం దస్త్రం శాశ్వత నిల్వ నుండి తాత్కాలిక స్మృతిలోకి వచ్చే వరకు ఆగము. మొదటి ముక్క రాగానే వాడుకరికి పంపడం ప్రారంభిస్తాము. సమాచారం మొత్తం రాకముందే, వచ్చినంత వరకు పంపడం దీని ప్రత్యేకత. కాబట్టి మనం గుర్తుంచుకోవాల్సిన ముఖ్య సూత్రం ఏంటంటే, సమాచారాన్ని మొత్తం ఒకేసారి మింగకుండా, చిన్న చిన్న చుక్కలుగా ప్రవహించనివ్వడమే.
రెండు వందల కోట్ల దత్తాంశ విభాగాలు ఉన్న ఒక భారీ దస్త్రాన్ని ఒక్కసారిగా తాత్కాలిక స్మృతిలోకి నింపడం వల్ల ఆ కేంద్ర వ్యవస్థ ఎలా కూలిపోయిందో నేను మర్చిపోలేను. ఆ సంఘటన నా మనసులో బలంగా ముద్రపడిపోయింది. నిజమే లక్ష్మి. ఆ సమయంలోనే నాకు ఒక విషయం అర్థమైంది. లోపం మన యంత్రం సామర్థ్యంలో లేదు. మనం సమాచారాన్ని పంపే పద్ధతిలోనే ఉంది.
కొండలాంటి నీటిని ఒక్కసారిగా మింగాలని చూడకూడదు. ఒక చిన్న గొట్టం ద్వారా చిన్న చిన్న గుటకలుగా ప్రవహింపజేయడమే దీనికి సరైన మార్గం. సరిగ్గా చెప్పారు. ఈ సమాచార ప్రవాహాన్ని మధ్యలో ఎలా మార్చవచ్చు? దాన్ని ఎలా భద్రపరచవచ్చు? వచ్చే పాఠంలో వీటి గురించి లోతుగా తెలుసుకోవాలని నాకు చాలా ఆసక్తిగా ఉంది. ఖచ్చితంగా చేద్దాం.
వినేవారు కూడా మీ సొంత గణన యంత్రాలలో ఈ రెండు పద్ధతులను ప్రయత్నించి చూడండి. జ్ఞాపకశక్తి వినియోగంలో ఉన్న తేడాను మీరే గమనిస్తారు. ఈ విషయాన్ని మీ మిత్రులతో పంచుకోండి. వారితో కలిసి చర్చించండి. సమాచారాన్ని ఒకేసారి మింగకండి. దాన్ని ప్రవహింపజేయండి. నిరంతరం నేర్చుకుంటూ మీ జ్ఞానాన్ని పెంచుకోండి. మన PodThis తదుపరి పాఠంలో మళ్లీ కలుద్దాం!
Sources & further reading
Node.js Design Patterns
నోడ్ వ్యవస్థలలో సమాచార ప్రవాహాలను మరియు వాటి రూపకల్పన పద్ధతులను లోతుగా అర్థం చేసుకోవడానికి ఇది అద్భుతంగా సహాయపడుతుంది.
Distributed Systems with Node.js
పెద్ద ఎత్తున దత్తాంశాన్ని నిర్వహించేటప్పుడు తాత్కాలిక స్మృతి లోపాలను ఎలా నివారించాలో ఈ పుస్తకం స్పష్టంగా వివరిస్తుంది.
How this episode was made
Created by Praneetha with PodThis. The script, research and voices are AI-generated with Google Gemini from the creator's topic. PodThis editors have not reviewed this episode.
Create your own podcast in minutes
Turn any topic into a professional podcast series with AI
Get Started Free
Comments (0)
Sign in to join the conversation