కింది డేటాబేస్లకు Yandex సహకారం సమీక్షించబడుతుంది.
- క్లిక్హౌస్
- ఒడిస్సీ
- సమయానికి పునరుద్ధరణ (WAL-G)
- PostgreSQL (లాగర్లు, ఆమ్చెక్, హీప్చెక్తో సహా)
- గ్రీన్ప్లమ్
వీడియోలు:
హలో వరల్డ్! నా పేరు ఆండ్రీ బోరోడిన్. మరియు Yandex.Cloudలో నేను చేసేది Yandex.Cloud మరియు Yandex.Cloud క్లయింట్ల ప్రయోజనాల కోసం ఓపెన్ రిలేషనల్ డేటాబేస్లను అభివృద్ధి చేయడం.
ఈ చర్చలో, మేము స్కేల్లో ఓపెన్ డేటాబేస్లు ఎదుర్కొంటున్న సవాళ్ల గురించి మాట్లాడుతాము. ఇది ఎందుకు ముఖ్యమైనది? ఎందుకంటే దోమల వంటి చిన్న చిన్న సమస్యలు ఏనుగులుగా మారతాయి. మీకు అనేక సమూహాలు ఉన్నప్పుడు అవి పెద్దవి అవుతాయి.
కానీ అది ప్రధాన విషయం కాదు. నమ్మశక్యం కాని విషయాలు జరుగుతాయి. ఒక మిలియన్ కేసులలో ఒకటి జరిగే విషయాలు. మరియు క్లౌడ్ వాతావరణంలో, మీరు దాని కోసం సిద్ధంగా ఉండాలి, ఎందుకంటే ఏదైనా స్థాయిలో ఉన్నప్పుడు నమ్మశక్యం కాని విషయాలు చాలా సంభావ్యంగా ఉంటాయి.
కానీ! ఓపెన్ డేటాబేస్ యొక్క ప్రయోజనం ఏమిటి? వాస్తవం ఏమిటంటే, ఏదైనా సమస్యను ఎదుర్కోవటానికి మీకు సైద్ధాంతిక అవకాశం ఉంది. మీకు సోర్స్ కోడ్ ఉంది, మీకు ప్రోగ్రామింగ్ పరిజ్ఞానం ఉంది. మేము దానిని కలుపుతాము మరియు అది పని చేస్తుంది.
ఓపెన్ సోర్స్ సాఫ్ట్వేర్పై పని చేయడంలో ఏ విధానాలు ఉన్నాయి?
- సాఫ్ట్వేర్ను ఉపయోగించడం చాలా సరళమైన విధానం. మీరు ప్రోటోకాల్లను ఉపయోగిస్తుంటే, మీరు ప్రమాణాలను ఉపయోగిస్తుంటే, మీరు ఫార్మాట్లను ఉపయోగిస్తుంటే, మీరు ఓపెన్ సోర్స్ సాఫ్ట్వేర్లో ప్రశ్నలను వ్రాస్తే, మీరు ఇప్పటికే దానికి మద్దతు ఇస్తారు.
- మీరు దాని పర్యావరణ వ్యవస్థను పెద్దదిగా చేస్తున్నారు. మీరు బగ్ను ముందస్తుగా గుర్తించే అవకాశం ఎక్కువ. మీరు ఈ వ్యవస్థ యొక్క విశ్వసనీయతను పెంచుతారు. మీరు మార్కెట్లో డెవలపర్ల లభ్యతను పెంచుతారు. మీరు ఈ సాఫ్ట్వేర్ని మెరుగుపరచండి. మీరు ఇప్పుడే స్టైల్ని పొందడం మరియు అక్కడ ఏదైనా పని చేయడం ప్రారంభించినట్లయితే మీరు ఇప్పటికే కంట్రిబ్యూటర్గా ఉంటారు.
- మరొక అర్థమయ్యే విధానం ఓపెన్ సోర్స్ సాఫ్ట్వేర్ను స్పాన్సర్ చేయడం. ఉదాహరణకు, సుప్రసిద్ధ Google సమ్మర్ ఆఫ్ కోడ్ ప్రోగ్రామ్, Google ప్రపంచవ్యాప్తంగా ఉన్న పెద్ద సంఖ్యలో విద్యార్థులకు అర్థమయ్యే డబ్బును చెల్లిస్తే, వారు నిర్దిష్ట లైసెన్సింగ్ అవసరాలకు అనుగుణంగా ఓపెన్ సాఫ్ట్వేర్ ప్రాజెక్ట్లను అభివృద్ధి చేస్తారు.
- ఇది చాలా ఆసక్తికరమైన విధానం ఎందుకంటే ఇది సంఘం నుండి దృష్టిని మరల్చకుండా సాఫ్ట్వేర్ అభివృద్ధి చెందడానికి అనుమతిస్తుంది. గూగుల్, టెక్నాలజీ దిగ్గజం, మాకు ఈ ఫీచర్ కావాలని, ఈ బగ్ని పరిష్కరించాలని మరియు ఇక్కడే మనం తవ్వాలని చెప్పలేదు. Google ఇలా చెబుతోంది: “మీరు చేసే పని చేయండి. మీరు పని చేసిన విధంగానే పని చేస్తూ ఉండండి మరియు అంతా బాగానే ఉంటుంది."
- ఓపెన్ సోర్స్లో పాల్గొనడానికి తదుపరి విధానం భాగస్వామ్యం. మీకు ఓపెన్ సోర్స్ సాఫ్ట్వేర్లో సమస్య ఉన్నప్పుడు మరియు డెవలపర్లు ఉన్నప్పుడు, మీ డెవలపర్లు సమస్యలను పరిష్కరించడం ప్రారంభిస్తారు. వారు మీ అవస్థాపనను మరింత సమర్థవంతంగా, మీ ప్రోగ్రామ్లను వేగంగా మరియు మరింత విశ్వసనీయంగా చేయడం ప్రారంభిస్తారు.
ఓపెన్ సోర్స్ సాఫ్ట్వేర్ రంగంలో అత్యంత ప్రసిద్ధ Yandex ప్రాజెక్ట్లలో ఒకటి ClickHouse. ఇది Yandex.Metrica ఎదుర్కొంటున్న సవాళ్లకు ప్రతిస్పందనగా పుట్టిన డేటాబేస్.
మరియు డేటాబేస్గా, పర్యావరణ వ్యవస్థను సృష్టించడానికి మరియు ఇతర డెవలపర్లతో కలిసి (యాండెక్స్లో మాత్రమే కాకుండా) అభివృద్ధి చేయడానికి ఇది ఓపెన్ సోర్స్లో రూపొందించబడింది. మరియు ఇప్పుడు ఇది చాలా విభిన్న కంపెనీలు పాల్గొన్న పెద్ద ప్రాజెక్ట్.
Yandex.Cloudలో, మేము Yandex ఆబ్జెక్ట్ స్టోరేజ్ పైన క్లిక్హౌస్ని సృష్టించాము, అంటే క్లౌడ్ స్టోరేజ్ పైన.
క్లౌడ్లో ఇది ఎందుకు ముఖ్యమైనది? ఎందుకంటే ఏదైనా డేటాబేస్ ఈ త్రిభుజంలో, ఈ పిరమిడ్లో, ఈ మెమరీ రకాల సోపానక్రమంలో పని చేస్తుంది. మీరు వేగవంతమైన కానీ చిన్న రిజిస్టర్లు మరియు చౌకైన పెద్ద కానీ నెమ్మదిగా ఉన్న SSDలు, హార్డ్ డ్రైవ్లు మరియు కొన్ని ఇతర బ్లాక్ పరికరాలను కలిగి ఉన్నారు. మరియు మీరు పిరమిడ్ ఎగువన సమర్ధవంతంగా ఉంటే, మీకు వేగవంతమైన డేటాబేస్ ఉంటుంది. మీరు ఈ పిరమిడ్ దిగువన సమర్ధవంతంగా ఉంటే, మీకు స్కేల్ చేయబడిన డేటాబేస్ ఉంటుంది. మరియు ఈ విషయంలో, దిగువ నుండి మరొక పొరను జోడించడం అనేది డేటాబేస్ యొక్క స్కేలబిలిటీని పెంచడానికి ఒక తార్కిక విధానం.
అది ఎలా చేయగలదు? ఈ నివేదికలో ఇది ఒక ముఖ్యమైన అంశం.
- మేము MDS ద్వారా క్లిక్హౌస్ని అమలు చేయగలము. MDS అనేది అంతర్గత Yandex క్లౌడ్ స్టోరేజ్ ఇంటర్ఫేస్. ఇది సాధారణ S3 ప్రోటోకాల్ కంటే చాలా క్లిష్టంగా ఉంటుంది, కానీ ఇది బ్లాక్ పరికరానికి మరింత అనుకూలంగా ఉంటుంది. డేటాను రికార్డ్ చేయడానికి ఇది ఉత్తమం. దీనికి మరింత ప్రోగ్రామింగ్ అవసరం. ప్రోగ్రామర్లు ప్రోగ్రామ్ చేస్తారు, ఇది కూడా మంచిది, ఇది ఆసక్తికరంగా ఉంటుంది.
- S3 అనేది చాలా సాధారణమైన విధానం, ఇది కొన్ని రకాల పనిభారాలకు తక్కువ అనుసరణ ఖర్చుతో ఇంటర్ఫేస్ను సులభతరం చేస్తుంది.
సహజంగానే, మొత్తం ClickHouse పర్యావరణ వ్యవస్థకు కార్యాచరణను అందించాలని మరియు Yandex.Cloud లోపల అవసరమైన పనిని చేయాలని కోరుకుంటూ, మొత్తం ClickHouse సంఘం దాని నుండి ప్రయోజనం పొందేలా చూడాలని మేము నిర్ణయించుకున్నాము. మేము S3 ద్వారా ClickHouseని అమలు చేసాము, MDS ద్వారా ClickHouseని అమలు చేసాము. మరియు ఇది చాలా పని.
సూచనలు:
ఇది క్లిక్హౌస్లో వర్చువల్ ఫైల్ సిస్టమ్ను అమలు చేయడానికి పుల్ అభ్యర్థన జాబితా. ఇది పెద్ద సంఖ్యలో పుల్ అభ్యర్థనలు.
సూచనలు:
క్లయింట్"
కానీ పని అక్కడ ముగియలేదు. ఫీచర్ చేసిన తర్వాత, ఈ ఫంక్షనాలిటీని ఆప్టిమైజ్ చేయడానికి మరికొంత పని అవసరం.
సూచనలు:
ఆపై దాన్ని నిర్ధారణ చేయగలిగేలా చేయడం, పర్యవేక్షణను ఏర్పాటు చేయడం మరియు నిర్వహించగలిగేలా చేయడం అవసరం.
మరియు ఇదంతా జరిగింది, తద్వారా మొత్తం సంఘం, మొత్తం క్లిక్హౌస్ పర్యావరణ వ్యవస్థ, ఈ పని ఫలితాన్ని పొందింది.
వ్యక్తిగతంగా నాకు దగ్గరగా ఉండే లావాదేవీల డేటాబేస్లకు, OLTP డేటాబేస్లకు వెళ్దాం.
ఇది ఓపెన్ సోర్స్ DBMS అభివృద్ధి విభాగం. ఈ కుర్రాళ్ళు లావాదేవీల ఓపెన్ డేటాబేస్లను మెరుగుపరచడానికి స్ట్రీట్ మ్యాజిక్ చేస్తున్నారు.
ప్రాజెక్ట్లలో ఒకటి, మేము ఎలా మరియు ఏమి చేస్తాము అనే దాని గురించి మాట్లాడగల ఉదాహరణను ఉపయోగించి, పోస్ట్గ్రెస్లోని కనెక్షన్ పూలర్.
పోస్ట్గ్రెస్ అనేది ప్రాసెస్ డేటాబేస్. దీనర్థం డేటాబేస్ లావాదేవీలను నిర్వహించే వీలైనంత తక్కువ నెట్వర్క్ కనెక్షన్లను కలిగి ఉండాలి.
మరోవైపు, క్లౌడ్ వాతావరణంలో, ఒక క్లస్టర్కు ఒకేసారి వెయ్యి కనెక్షన్లు రావడం సాధారణ పరిస్థితి. మరియు కనెక్షన్ పూలర్ యొక్క పని వెయ్యి కనెక్షన్లను తక్కువ సంఖ్యలో సర్వర్ కనెక్షన్లలో ప్యాక్ చేయడం.
కనెక్షన్ పూలర్ అనేది టెలిఫోన్ ఆపరేటర్ అని మేము చెప్పగలం, వారు బైట్లను సమర్ధవంతంగా డేటాబేస్కు చేరుకునేలా పునర్వ్యవస్థీకరించారు.
దురదృష్టవశాత్తు, కనెక్షన్ పూలర్ కోసం మంచి రష్యన్ పదం లేదు. కొన్నిసార్లు దీనిని మల్టీప్లెక్సర్ కనెక్షన్లు అంటారు. కనెక్షన్ పూలర్ను ఏమని పిలవాలో మీకు తెలిస్తే, నాకు ఖచ్చితంగా చెప్పండి, సరైన రష్యన్ సాంకేతిక భాషను మాట్లాడటానికి నేను చాలా సంతోషంగా ఉంటాను.
మేము నిర్వహించబడే పోస్ట్గ్రెస్ క్లస్టర్కు సరిపోయే కనెక్షన్ పూలర్లను పరిశోధించాము. మరియు PgBouncer మాకు ఉత్తమ ఎంపిక. కానీ మేము PgBouncerతో అనేక సమస్యలను ఎదుర్కొన్నాము. చాలా సంవత్సరాల క్రితం, వోలోడియా బోరోడిన్ మేము PgBouncerని ఉపయోగిస్తాము, మేము ప్రతిదీ ఇష్టపడతాము, కానీ సూక్ష్మ నైపుణ్యాలు ఉన్నాయి, పని చేయడానికి ఏదో ఉంది.
మరియు మేము పని చేసాము. మేము ఎదుర్కొన్న సమస్యలను మేము పరిష్కరించాము, మేము బౌన్సర్ను ప్యాచ్ చేసాము మరియు పుల్ రిక్వెస్ట్లను పైకి నెట్టడానికి ప్రయత్నించాము. కానీ ప్రాథమిక సింగిల్-థ్రెడింగ్తో పని చేయడం కష్టం.
మేము ప్యాచ్డ్ బౌన్సర్ల నుండి క్యాస్కేడ్లను సేకరించవలసి వచ్చింది. మనకు అనేక సింగిల్-థ్రెడ్ బౌన్సర్లు ఉన్నప్పుడు, పై పొరపై ఉన్న కనెక్షన్లు బౌన్సర్ల లోపలి పొరకు బదిలీ చేయబడతాయి. ఇది పేలవంగా నిర్వహించబడే వ్యవస్థ, ఇది ముందుకు వెనుకకు నిర్మించడం మరియు స్కేల్ చేయడం కష్టం.
మేము మా స్వంత కనెక్షన్ పూలర్ను సృష్టించామని నిర్ధారణకు వచ్చాము, దానిని ఒడిస్సీ అని పిలుస్తారు. మేము దానిని మొదటి నుండి వ్రాసాము.
2019లో, PgCon కాన్ఫరెన్స్లో, నేను ఈ పూలర్ని డెవలపర్ కమ్యూనిటీకి అందించాను. ఇప్పుడు మేము GitHubలో 2 కంటే కొంచెం తక్కువ నక్షత్రాలను కలిగి ఉన్నాము, అంటే ప్రాజెక్ట్ సజీవంగా ఉంది, ప్రాజెక్ట్ ప్రజాదరణ పొందింది.
మరియు మీరు Yandex.Cloudలో పోస్ట్గ్రెస్ క్లస్టర్ను సృష్టించినట్లయితే, అది అంతర్నిర్మిత ఒడిస్సీతో కూడిన క్లస్టర్గా ఉంటుంది, ఇది క్లస్టర్ను ముందుకు లేదా వెనుకకు స్కేలింగ్ చేసేటప్పుడు మళ్లీ కాన్ఫిగర్ చేయబడుతుంది.
ఈ ప్రాజెక్ట్ నుండి మనం ఏమి నేర్చుకున్నాము? పోటీ ప్రాజెక్ట్ను ప్రారంభించడం ఎల్లప్పుడూ దూకుడుగా ఉండే దశ, తగినంత త్వరగా పరిష్కరించబడని సమస్యలు ఉన్నాయని, మనకు సరిపోయే సమయ వ్యవధిలో పరిష్కరించబడని సమస్యలు ఉన్నాయని మేము చెప్పినప్పుడు ఇది తీవ్రమైన కొలత. కానీ ఇది సమర్థవంతమైన కొలత.
PgBouncer వేగంగా అభివృద్ధి చెందడం ప్రారంభించింది.
మరియు ఇప్పుడు ఇతర ప్రాజెక్టులు కనిపించాయి. ఉదాహరణకు, pgagroal, ఇది Red Hat డెవలపర్లచే అభివృద్ధి చేయబడింది. వారు ఒకే విధమైన లక్ష్యాలను అనుసరిస్తారు మరియు సారూప్య ఆలోచనలను అమలు చేస్తారు, అయితే, వారి స్వంత ప్రత్యేకతలతో, ఇది pgagroal డెవలపర్లకు దగ్గరగా ఉంటుంది.
పోస్ట్గ్రెస్ కమ్యూనిటీతో కలిసి పని చేసే మరొక సందర్భం సమయానికి పునరుద్ధరించబడుతోంది. ఇది వైఫల్యం తర్వాత రికవరీ, ఇది బ్యాకప్ నుండి రికవరీ.
చాలా బ్యాకప్లు ఉన్నాయి మరియు అవన్నీ భిన్నంగా ఉంటాయి. దాదాపు ప్రతి పోస్ట్గ్రెస్ విక్రేతకు దాని స్వంత బ్యాకప్ పరిష్కారం ఉంటుంది.
మీరు అన్ని బ్యాకప్ సిస్టమ్లను తీసుకుని, ఫీచర్ మ్యాట్రిక్స్ని సృష్టించి, ఈ మ్యాట్రిక్స్లో డిటర్మినెంట్ని సరదాగా గణిస్తే, అది సున్నా అవుతుంది. దీని అర్థం ఏమిటి? మీరు నిర్దిష్ట బ్యాకప్ ఫైల్ని తీసుకుంటే, అది మిగతా వాటి ముక్కల నుండి అసెంబుల్ చేయబడదు. ఇది దాని అమలులో ప్రత్యేకమైనది, దాని ఉద్దేశ్యంలో ఇది ప్రత్యేకమైనది, దానిలో పొందుపరిచిన ఆలోచనలలో ఇది ప్రత్యేకమైనది. మరియు అవన్నీ నిర్దిష్టమైనవి.
మేము ఈ సమస్యపై పని చేస్తున్నప్పుడు, CitusData WAL-G ప్రాజెక్ట్ను ప్రారంభించింది. ఇది క్లౌడ్ వాతావరణాన్ని దృష్టిలో ఉంచుకుని రూపొందించిన బ్యాకప్ సిస్టమ్. ఇప్పుడు CitusData ఇప్పటికే Microsoftలో భాగం. మరియు ఆ సమయంలో, WAL-G యొక్క ప్రారంభ విడుదలలలో నిర్దేశించిన ఆలోచనలను మేము నిజంగా ఇష్టపడ్డాము. మరియు మేము ఈ ప్రాజెక్ట్కు సహకరించడం ప్రారంభించాము.
ఇప్పుడు ఈ ప్రాజెక్ట్లో చాలా డజన్ల కొద్దీ డెవలపర్లు ఉన్నారు, అయితే WAL-Gకి టాప్ 10 కంట్రిబ్యూటర్లలో 6 యాండెక్సాయిడ్లు ఉన్నాయి. మేము మా ఆలోచనలను అక్కడకు తీసుకువచ్చాము. మరియు, వాస్తవానికి, మేము వాటిని మనమే అమలు చేసాము, వాటిని మనమే పరీక్షించుకున్నాము, వాటిని మనమే ఉత్పత్తిలోకి మార్చాము, వాటిని మనమే ఉపయోగించుకుంటాము, పెద్ద WAL-G కమ్యూనిటీతో సంభాషించేటప్పుడు తదుపరి ఎక్కడికి వెళ్లాలో మనమే గుర్తించాము.
మరియు మా దృక్కోణం నుండి, ఇప్పుడు ఈ బ్యాకప్ సిస్టమ్, మా ప్రయత్నాలను పరిగణనలోకి తీసుకోవడంతో సహా, క్లౌడ్ పర్యావరణానికి అనుకూలమైనదిగా మారింది. క్లౌడ్లో పోస్ట్గ్రెస్ను బ్యాకప్ చేయడానికి ఇది ఉత్తమ ధర.
దాని అర్థం ఏమిటి? మేము చాలా పెద్ద ఆలోచనను ప్రచారం చేస్తున్నాము: బ్యాకప్ సురక్షితంగా ఉండాలి, ఆపరేట్ చేయడానికి చౌకగా ఉండాలి మరియు పునరుద్ధరించడానికి వీలైనంత వేగంగా ఉండాలి.
ఆపరేట్ చేయడానికి ఎందుకు చౌకగా ఉండాలి? ఏమీ విచ్ఛిన్నం కానప్పుడు, మీకు బ్యాకప్లు ఉన్నాయని మీకు తెలియకూడదు. అంతా బాగానే పని చేస్తుంది, మీరు వీలైనంత తక్కువ CPUని వృధా చేస్తారు, మీరు మీ డిస్క్ వనరులను వీలైనంత తక్కువగా ఉపయోగిస్తున్నారు మరియు మీ విలువైన సేవల పేలోడ్లో జోక్యం చేసుకోకుండా నెట్వర్క్కు వీలైనంత తక్కువ బైట్లను పంపుతారు.
మరియు ప్రతిదీ విచ్ఛిన్నమైనప్పుడు, ఉదాహరణకు, అడ్మిన్ డేటాను వదిలివేసాడు, ఏదో తప్పు జరిగింది మరియు మీరు అత్యవసరంగా గతంలోకి వెళ్లాలి, మీరు మీ డేటాను త్వరగా మరియు చెక్కుచెదరకుండా తిరిగి కోరుకుంటున్నందున, మీరు మొత్తం డబ్బుతో కోలుకుంటారు.
మరియు మేము ఈ సాధారణ ఆలోచనను ప్రచారం చేసాము. మరియు, ఇది మాకు అనిపిస్తుంది, మేము దానిని అమలు చేయగలిగాము.
అయితే అంతే కాదు. మేము మరో చిన్న విషయం కోరుకున్నాము. మేము అనేక విభిన్న డేటాబేస్లను కోరుకున్నాము. మా క్లయింట్లందరూ Postgresని ఉపయోగించరు. కొంతమంది MySQL, MongoDBని ఉపయోగిస్తున్నారు. సంఘంలో, ఇతర డెవలపర్లు FoundationDBకి మద్దతు ఇచ్చారు. మరియు ఈ జాబితా నిరంతరం విస్తరిస్తోంది.
క్లౌడ్లో నిర్వహించబడే వాతావరణంలో డేటాబేస్ అమలు చేయబడుతుందనే ఆలోచనను సంఘం ఇష్టపడుతుంది. మరియు డెవలపర్లు తమ డేటాబేస్లను నిర్వహిస్తారు, వీటిని మా బ్యాకప్ సిస్టమ్తో పోస్ట్గ్రెస్తో పాటు ఏకరీతిగా బ్యాకప్ చేయవచ్చు.
ఈ కథ నుండి మనం ఏమి నేర్చుకున్నాము? మా ఉత్పత్తి, డెవలప్మెంట్ డివిజన్గా, కోడ్ లైన్లు కాదు, స్టేట్మెంట్లు కాదు, ఫైల్లు కాదు. మా ఉత్పత్తి అభ్యర్థనలను లాగడం కాదు. సమాజానికి మనం అందించే ఆలోచనలు ఇవి. ఇది సాంకేతిక నైపుణ్యం మరియు క్లౌడ్ పర్యావరణం వైపు సాంకేతికత యొక్క కదలిక.
Postgres వంటి డేటాబేస్ ఉంది. నాకు పోస్ట్గ్రెస్ కోర్ అంటే చాలా ఇష్టం. నేను కమ్యూనిటీతో పోస్ట్గ్రెస్ కోర్ని అభివృద్ధి చేయడానికి చాలా సమయాన్ని వెచ్చిస్తాను.
కానీ ఇక్కడ Yandex.Cloud నిర్వహించబడే డేటాబేస్ల అంతర్గత సంస్థాపనను కలిగి ఉందని చెప్పాలి. మరియు ఇది Yandex.Mail లో చాలా కాలం క్రితం ప్రారంభమైంది. మెయిల్ పోస్ట్గ్రెస్లోకి వెళ్లాలనుకున్నప్పుడు ఇప్పుడు నిర్వహించబడే పోస్ట్గ్రెస్కి దారితీసిన నైపుణ్యం సేకరించబడింది.
మెయిల్ క్లౌడ్కు చాలా సారూప్య అవసరాలను కలిగి ఉంది. మీ డేటాలో ఏ సమయంలోనైనా మీరు ఊహించని ఘాతాంక పెరుగుదలకు స్కేల్ చేయగలగాలి. మరియు నిరంతరం అనేక అభ్యర్థనలు చేసే భారీ సంఖ్యలో వినియోగదారుల యొక్క కొన్ని వందల మిలియన్ల మెయిల్బాక్స్లతో మెయిల్ ఇప్పటికే లోడ్ను కలిగి ఉంది.
పోస్ట్గ్రెస్ను అభివృద్ధి చేస్తున్న జట్టుకు ఇది చాలా తీవ్రమైన సవాలు. అప్పట్లో, మేము ఎదుర్కొన్న ఏవైనా సమస్యలు సంఘానికి నివేదించబడ్డాయి. మరియు ఈ సమస్యలు సరిదిద్దబడ్డాయి మరియు కొన్ని ఇతర డేటాబేస్లకు చెల్లింపు మద్దతు స్థాయిలో కూడా సంఘం ద్వారా కొన్ని చోట్ల సరిదిద్దబడింది మరియు మరింత మెరుగైనది. అంటే, మీరు PgSQL హ్యాకర్కు లేఖ పంపవచ్చు మరియు 40 నిమిషాలలోపు ప్రతిస్పందనను అందుకోవచ్చు. కొన్ని డేటాబేస్లలో చెల్లింపు మద్దతు మీ బగ్ కంటే ఎక్కువ ప్రాధాన్యతా అంశాలు ఉన్నాయని అనుకోవచ్చు.
ఇప్పుడు పోస్ట్గ్రెస్ యొక్క అంతర్గత సంస్థాపన కొన్ని పెటాబైట్ల డేటా. ఇవి సెకనుకు కొన్ని మిలియన్ల అభ్యర్థనలు. ఇవి వేల సంఖ్యలో క్లస్టర్లు. ఇది చాలా పెద్ద స్థాయిలో ఉంది.
కానీ ఒక స్వల్పభేదాన్ని ఉంది. ఇది ఫాన్సీ నెట్వర్క్ డ్రైవ్లపై కాదు, చాలా సరళమైన హార్డ్వేర్లో నివసిస్తుంది. మరియు ఆసక్తికరమైన కొత్త విషయాల కోసం ప్రత్యేకంగా పరీక్షా వాతావరణం ఉంది.
మరియు పరీక్ష వాతావరణంలో ఒక నిర్దిష్ట క్షణంలో మేము డేటాబేస్ సూచికల యొక్క అంతర్గత మార్పులను ఉల్లంఘించినట్లు సూచించే సందేశాన్ని అందుకున్నాము.
మార్పులేనిది అనేది మనం ఎల్లప్పుడూ కలిగి ఉండాలని ఆశించే ఒక రకమైన సంబంధం.
మాకు చాలా క్లిష్టమైన పరిస్థితి. ఇది కొంత డేటా పోయినట్లు సూచిస్తుంది. మరియు డేటా నష్టం అనేది పూర్తిగా విపత్తు.
మేము నిర్వహించబడే డేటాబేస్లలో అనుసరించే సాధారణ ఆలోచన ఏమిటంటే, ప్రయత్నంతో కూడా డేటాను కోల్పోవడం కష్టం. మీరు ఉద్దేశపూర్వకంగా వాటిని తీసివేసినప్పటికీ, మీరు చాలా కాలం పాటు వారి లేకపోవడాన్ని విస్మరించవలసి ఉంటుంది. డేటా భద్రత అనేది మనం చాలా శ్రద్ధగా అనుసరించే మతం.
మరియు ఇక్కడ ఒక పరిస్థితి తలెత్తుతుంది, దీని కోసం మనం సిద్ధంగా ఉండలేని పరిస్థితి ఉండవచ్చు. మరియు మేము ఈ పరిస్థితికి సిద్ధం కావడం ప్రారంభించాము.
మేము చేసిన మొదటి పని ఈ వేల సమూహాల నుండి దుంగలను పాతిపెట్టడం. డేటా పేజీ అప్డేట్లను కోల్పోతున్న సమస్యాత్మక ఫర్మ్వేర్తో డిస్క్లలో ఏ క్లస్టర్లు ఉన్నాయో మేము కనుగొన్నాము. పోస్ట్గ్రెస్ డేటా కోడ్ మొత్తం మార్క్ చేయబడింది. మరియు డేటా అవినీతిని గుర్తించడానికి రూపొందించబడిన కోడ్తో అంతర్గత మార్పుల ఉల్లంఘనలను సూచించే సందేశాలను మేము గుర్తించాము.
ఈ ప్యాచ్ చాలా చర్చ లేకుండానే కమ్యూనిటీ ద్వారా ఆచరణాత్మకంగా ఆమోదించబడింది, ఎందుకంటే ప్రతి నిర్దిష్ట సందర్భంలో ఏదో చెడు జరిగిందని మరియు లాగ్కు నివేదించాల్సిన అవసరం ఉందని స్పష్టంగా తెలుస్తుంది.
దీని తర్వాత, మేము లాగ్లను స్కాన్ చేసే మానిటర్ని కలిగి ఉన్నాము. మరియు అనుమానాస్పద సందేశాల విషయంలో, అతను డ్యూటీ ఆఫీసర్ను మేల్కొల్పుతాడు మరియు డ్యూటీ ఆఫీసర్ దానిని రిపేర్ చేస్తాడు.
కానీ! లాగ్లను స్కానింగ్ చేయడం అనేది ఒక క్లస్టర్పై చౌకైన ఆపరేషన్ మరియు వెయ్యి క్లస్టర్లకు విపత్తుగా ఖరీదైనది.
అనే పొడిగింపు వ్రాసాము
ఈ పొడిగింపు స్వీకరించబడింది, ఉదాహరణకు, రిపోజిటరీలో
అయితే అంతే కాదు. మేము ఇండెక్స్లలో మార్పులేని ఉల్లంఘనలను కనుగొనడానికి కమ్యూనిటీ-బిల్ట్ ఎక్స్టెన్షన్ అయిన Amcheckని ఉపయోగించడం ప్రారంభించాము.
మరియు మీరు దీన్ని స్కేల్లో ఆపరేట్ చేస్తే, బగ్లు ఉన్నాయని మేము కనుగొన్నాము. మేము వాటిని పరిష్కరించడం ప్రారంభించాము. మా దిద్దుబాట్లు ఆమోదించబడ్డాయి.
ఈ పొడిగింపు GiST & GIT సూచికలను విశ్లేషించలేదని మేము కనుగొన్నాము. మేము వారికి మద్దతునిచ్చాము. కానీ ఈ మద్దతు ఇప్పటికీ సంఘంచే చర్చించబడుతోంది, ఎందుకంటే ఇది సాపేక్షంగా కొత్త కార్యాచరణ మరియు అక్కడ చాలా వివరాలు ఉన్నాయి.
మరియు ప్రతిరూపణ నాయకుడిపై, మాస్టర్పై ఉల్లంఘనల కోసం సూచికలను తనిఖీ చేస్తున్నప్పుడు, ప్రతిదీ బాగా పనిచేస్తుందని మేము కనుగొన్నాము, కానీ ప్రతిరూపాలపై, అనుచరులపై, అవినీతి కోసం శోధన అంత ప్రభావవంతంగా ఉండదు. అన్ని మార్పులేవీ తనిఖీ చేయబడవు. మరియు ఒక మార్పులేని వ్యక్తి మమ్మల్ని చాలా బాధపెట్టాడు. మరియు ప్రతిరూపాలపై ఈ తనిఖీని ప్రారంభించడానికి మేము సంఘంతో కమ్యూనికేట్ చేయడానికి ఏడాదిన్నర గడిపాము.
మేము అన్ని క్యాన్... ప్రోటోకాల్లను అనుసరించే కోడ్ని వ్రాసాము. మేము క్రంచీ డేటా నుండి పీటర్ గఘన్తో ఈ ప్యాచ్ గురించి కొంతకాలం చర్చించాము. అతను ఈ ప్యాచ్ని అంగీకరించడానికి పోస్ట్గ్రెస్లో ఇప్పటికే ఉన్న బి-ట్రీని కొద్దిగా సవరించాల్సి వచ్చింది. అతను అంగీకరించబడ్డాడు. మరియు ఇప్పుడు ప్రతిరూపాలపై సూచికలను తనిఖీ చేయడం కూడా మేము ఎదుర్కొన్న ఉల్లంఘనలను గుర్తించేంత ప్రభావవంతంగా మారింది. అంటే, ఇవి డిస్క్ ఫర్మ్వేర్లో లోపాలు, పోస్ట్గ్రెస్లోని బగ్లు, లైనక్స్ కెర్నల్లోని బగ్లు మరియు హార్డ్వేర్ సమస్యల వల్ల సంభవించే ఉల్లంఘనలు. మేము సిద్ధం చేస్తున్న సమస్యల మూలాల యొక్క చాలా విస్తృతమైన జాబితా.
కానీ సూచికలతో పాటు, కుప్ప వంటి భాగం ఉంది, అనగా డేటా నిల్వ చేయబడిన ప్రదేశం. మరియు తనిఖీ చేయగలిగే అనేక మార్పులు లేవు.
మేము Heapcheck అనే పొడిగింపును కలిగి ఉన్నాము. మేము దానిని అభివృద్ధి చేయడం ప్రారంభించాము. మరియు సమాంతరంగా, మాతో కలిసి, EnterpriseDB కంపెనీ కూడా ఒక మాడ్యూల్ రాయడం ప్రారంభించింది, వారు అదే విధంగా Heapcheck అని పిలిచారు. మేము మాత్రమే దీనిని PgHeapcheck అని పిలిచాము మరియు వారు దానిని Heapcheck అని పిలిచారు. వారు ఒకే విధమైన విధులు, కొద్దిగా భిన్నమైన సంతకం, కానీ అదే ఆలోచనలతో కలిగి ఉన్నారు. వాటిని కొన్ని చోట్ల కొంచెం మెరుగ్గా అమలు చేశారు. మరియు వారు దానిని ముందు ఓపెన్ సోర్స్లో పోస్ట్ చేసారు.
మరియు ఇప్పుడు మేము వారి విస్తరణను అభివృద్ధి చేస్తున్నాము, ఎందుకంటే ఇది వారి విస్తరణ కాదు, సంఘం యొక్క విస్తరణ. మరియు భవిష్యత్తులో, ఇది కెర్నల్లో భాగం, ఇది ప్రతి ఒక్కరికీ సరఫరా చేయబడుతుంది, తద్వారా వారు భవిష్యత్ సమస్యల గురించి ముందుగానే తెలుసుకోవచ్చు.
కొన్ని చోట్ల, మా మానిటరింగ్ సిస్టమ్లలో తప్పుడు పాజిటివ్లు ఉన్నాయని మేము నిర్ధారణకు కూడా వచ్చాము. ఉదాహరణకు, 1C వ్యవస్థ. డేటాబేస్ను ఉపయోగిస్తున్నప్పుడు, పోస్ట్గ్రెస్ కొన్నిసార్లు అది చదవగలిగే డేటాను దానిలో వ్రాస్తుంది, కానీ pg_dump చదవదు.
ఈ పరిస్థితి మా సమస్యను గుర్తించే వ్యవస్థకు అవినీతిలా కనిపించింది. డ్యూటీ ఆఫీసర్ నిద్ర లేచాడు. డ్యూటీ ఆఫీసర్ ఏం జరుగుతుందో చూసాడు. కొంత సమయం తరువాత, ఒక క్లయింట్ వచ్చి నాకు సమస్యలు ఉన్నాయని చెప్పాడు. అటెండర్ సమస్య ఏమిటో వివరించాడు. కానీ సమస్య పోస్ట్గ్రెస్ కోర్లో ఉంది.
నేను ఈ ఫీచర్ గురించి చర్చను కనుగొన్నాను. మరియు మేము ఈ లక్షణాన్ని ఎదుర్కొన్నాము మరియు ఇది అసహ్యకరమైనదని అతను వ్రాసాడు, అది ఏమిటో గుర్తించడానికి ఒక వ్యక్తి రాత్రి మేల్కొన్నాడు.
సంఘం ప్రతిస్పందించింది, "ఓహ్, మేము దీన్ని నిజంగా పరిష్కరించాలి."
నాకు సాధారణ సారూప్యత ఉంది. మీరు ఇసుక ధాన్యాన్ని కలిగి ఉన్న షూలో నడుస్తుంటే, సూత్రప్రాయంగా, మీరు ముందుకు సాగవచ్చు - సమస్య లేదు. మీరు వేల మందికి బూట్లను అమ్మితే, ఇసుక లేకుండా బూట్లు తయారు చేద్దాం. మరియు మీ బూట్ల వినియోగదారులలో ఒకరు మారథాన్లో పరుగెత్తబోతున్నట్లయితే, మీరు చాలా మంచి షూలను తయారు చేయాలనుకుంటున్నారు, ఆపై వాటిని మీ వినియోగదారులందరికీ స్కేల్ చేయండి. మరియు అలాంటి ఊహించని వినియోగదారులు ఎల్లప్పుడూ క్లౌడ్ వాతావరణంలో ఉంటారు. క్లస్టర్ను ఏదో ఒక పద్ధతిలో ఉపయోగించుకునే వినియోగదారులు ఎల్లప్పుడూ ఉంటారు. దీని కోసం మీరు ఎల్లప్పుడూ సిద్ధంగా ఉండాలి.
మేము ఇక్కడ ఏమి నేర్చుకున్నాము? మేము ఒక సాధారణ విషయం నేర్చుకున్నాము: సమస్య ఉందని సమాజానికి వివరించడం చాలా ముఖ్యమైన విషయం. సంఘం సమస్యను గుర్తించినట్లయితే, సమస్యను పరిష్కరించడానికి సహజమైన పోటీ తలెత్తుతుంది. ఎందుకంటే ప్రతి ఒక్కరూ ఒక ముఖ్యమైన సమస్యను పరిష్కరించాలని కోరుకుంటారు. అందరు విక్రేతలు, హ్యాకర్లందరూ తాము ఈ రేక్పై అడుగు పెట్టగలరని అర్థం చేసుకున్నారు, కాబట్టి వారు వాటిని తొలగించాలనుకుంటున్నారు.
మీరు సమస్యపై పని చేస్తుంటే, అది మిమ్మల్ని తప్ప మరెవరికీ ఇబ్బంది కలిగించదు, కానీ మీరు దానిపై క్రమపద్ధతిలో పని చేస్తే, చివరికి అది సమస్యగా పరిగణించబడితే, మీ పుల్ అభ్యర్థన ఖచ్చితంగా ఆమోదించబడుతుంది. మీ ప్యాచ్ ఆమోదించబడుతుంది, మీ మెరుగుదలలు లేదా మెరుగుదలల కోసం అభ్యర్థనలు కూడా సంఘం ద్వారా సమీక్షించబడతాయి. రోజు చివరిలో, మేము డేటాబేస్ను ఒకదానికొకటి మెరుగుపరుస్తాము.
ఒక ఆసక్తికరమైన డేటాబేస్ గ్రీన్ప్లమ్. ఇది పోస్ట్గ్రెస్ కోడ్బేస్ ఆధారంగా అత్యంత సమాంతర డేటాబేస్, ఇది నాకు బాగా తెలుసు.
మరియు గ్రీన్ప్లమ్ ఆసక్తికరమైన కార్యాచరణను కలిగి ఉంది - ఆప్టిమైజ్ చేసిన పట్టికలను జోడించండి. ఇవి మీరు త్వరగా జోడించగల పట్టికలు. అవి నిలువు వరుస లేదా వరుస కావచ్చు.
కానీ క్లస్టరింగ్ లేదు, అనగా మీరు సూచికలలో ఒకదానిలో ఉన్న క్రమానికి అనుగుణంగా పట్టికలో ఉన్న డేటాను అమర్చగల కార్యాచరణ లేదు.
టాక్సీ నుండి వచ్చిన అబ్బాయిలు నా దగ్గరకు వచ్చి ఇలా అన్నారు: “ఆండ్రీ, మీకు పోస్ట్గ్రెస్ తెలుసు. మరియు ఇక్కడ ఇది దాదాపు అదే. 20 నిమిషాలకు మారండి. నువ్వే తీసుకుని చెయ్యి.” నేను అవును, నాకు పోస్ట్గ్రెస్ తెలుసు, 20 నిమిషాలు మారడం - నేను దీన్ని చేయాలి.
కానీ లేదు, ఇది 20 నిమిషాలు కాదు, నేను నెలల తరబడి వ్రాసాను. PgConf.Russia కాన్ఫరెన్స్లో, నేను కీలకమైన హీక్కి లినకంగాస్ని సంప్రదించి ఇలా అడిగాను: “దీనితో ఏమైనా సమస్యలు ఉన్నాయా? అపెండ్ ఆప్టిమైజ్ చేసిన టేబుల్ క్లస్టరింగ్ ఎందుకు లేదు?" అతను ఇలా అంటాడు: “మీరు డేటా తీసుకోండి. మీరు క్రమబద్ధీకరించండి, మీరు క్రమాన్ని మార్చండి. ఇది ఒక పని మాత్రమే." నేను: "ఓహ్, అవును, మీరు దానిని తీసుకొని చేయవలసి ఉంటుంది." అతను ఇలా అంటాడు: “అవును, దీన్ని చేయడానికి మాకు స్వేచ్ఛా చేతులు కావాలి.” నేను దీన్ని ఖచ్చితంగా చేయాలి అని అనుకున్నాను.
మరియు కొన్ని నెలల తర్వాత నేను ఈ కార్యాచరణను అమలు చేసే పుల్ అభ్యర్థనను సమర్పించాను. ఈ పుల్ అభ్యర్థన సంఘంతో కలిసి కీలకమైన ద్వారా సమీక్షించబడింది. వాస్తవానికి, దోషాలు ఉన్నాయి.
కానీ అత్యంత ఆసక్తికరమైన విషయం ఏమిటంటే, ఈ పుల్ అభ్యర్థనను విలీనం చేసినప్పుడు, గ్రీన్ప్లమ్లోనే బగ్లు కనుగొనబడ్డాయి. క్లస్టర్గా ఉన్నప్పుడు హీప్ టేబుల్లు కొన్నిసార్లు లావాదేవీలను విచ్ఛిన్నం చేస్తాయని మేము కనుగొన్నాము. మరియు ఇది పరిష్కరించాల్సిన విషయం. మరియు ఆమె నేను తాకిన ప్రదేశంలో ఉంది. మరియు నా సహజ ప్రతిచర్య ఏమిటంటే - సరే, నేను కూడా దీన్ని చేయనివ్వండి.
నేను ఈ బగ్ని పరిష్కరించాను. ఫిక్సర్లకు పుల్ రిక్వెస్ట్ పంపారు. అతను చంపబడ్డాడు.
ఆ తర్వాత ఈ కార్యాచరణను PostgreSQL 12 కోసం గ్రీన్ప్లమ్ వెర్షన్లో పొందవలసి ఉందని తేలింది. అంటే, 20 నిమిషాల సాహసం కొత్త ఆసక్తికరమైన సాహసాలతో కొనసాగుతుంది. కమ్యూనిటీ కొత్త మరియు అత్యంత ముఖ్యమైన ఫీచర్లను కట్ చేస్తున్న ప్రస్తుత అభివృద్ధిని టచ్ చేయడం ఆసక్తికరంగా ఉంది. అది స్తంభించిపోయింది.
కానీ అది అక్కడితో ముగియలేదు. ప్రతిదీ తరువాత, వీటన్నింటికీ మేము డాక్యుమెంటేషన్ వ్రాయవలసి ఉందని తేలింది.
నేను డాక్యుమెంటేషన్ రాయడం ప్రారంభించాను. అదృష్టవశాత్తూ, కీలకమైన డాక్యుమెంటరీలు వచ్చారు. ఇంగ్లీషు వారి మాతృభాష. డాక్యుమెంటేషన్లో వారు నాకు సహాయం చేశారు. నిజానికి, నేను ప్రతిపాదించిన వాటిని వారే నిజమైన ఆంగ్లంలోకి తిరిగి రాశారు.
మరియు ఇక్కడ, సాహసం ముగిసినట్లు అనిపిస్తుంది. మరి అప్పుడు ఏం జరిగిందో తెలుసా? టాక్సీ నుండి వచ్చిన అబ్బాయిలు నా దగ్గరకు వచ్చి ఇలా అన్నారు: "ఇంకా రెండు సాహసాలు ఉన్నాయి, ఒక్కొక్కటి 10 నిమిషాలు." మరియు నేను వారికి ఏమి చెప్పాలి? నేను ఇప్పుడు స్కేల్పై నివేదిక ఇస్తానని చెప్పాను, అప్పుడు మేము మీ సాహసాలను చూస్తాము, ఎందుకంటే ఇది ఆసక్తికరమైన పని.
ఈ కేసు నుండి మనం ఏమి నేర్చుకున్నాము? ఓపెన్ సోర్స్తో పని చేయడం అనేది ఎల్లప్పుడూ నిర్దిష్ట వ్యక్తితో పని చేయడం వలన, ఇది ఎల్లప్పుడూ సంఘంతో కలిసి పని చేస్తుంది. ఎందుకంటే ప్రతి ఒక్క దశలో నేను కొంత డెవలపర్, కొంత టెస్టర్, కొంత హ్యాకర్, కొంత డాక్యుమెంటరీ, కొంత ఆర్కిటెక్ట్తో కలిసి పనిచేశాను. నేను గ్రీన్ప్లమ్తో పని చేయలేదు, గ్రీన్ప్లమ్ చుట్టూ ఉన్న వ్యక్తులతో కలిసి పనిచేశాను.
కానీ! మరొక ముఖ్యమైన విషయం ఉంది - ఇది కేవలం పని. అంటే, మీరు రండి, కాఫీ తాగండి, కోడ్ రాయండి. అన్ని రకాల సాధారణ మార్పులేనివి పని చేస్తాయి. దీన్ని సాధారణంగా చేయండి - ఇది బాగానే ఉంటుంది! మరియు ఇది చాలా ఆసక్తికరమైన పని. Yandex.Cloud క్లయింట్లు, Yandex లోపల మరియు వెలుపల ఉన్న మా క్లస్టర్ల వినియోగదారుల నుండి ఈ పని కోసం అభ్యర్థన ఉంది. మరియు మనం పాల్గొనే ప్రాజెక్ట్ల సంఖ్య పెరుగుతుందని మరియు మన ప్రమేయం యొక్క లోతు కూడా పెరుగుతుందని నేను భావిస్తున్నాను.
అంతే. ప్రశ్నలకు వెళ్దాం.
ప్రశ్నల సెషన్
హలో! మాకు మరొక ప్రశ్న మరియు సమాధాన సెషన్ ఉంది. మరియు ఆండ్రీ బోరోడిన్ స్టూడియోలో. ఓపెన్ సోర్స్కి Yandex.Cloud మరియు Yandex సహకారం గురించి మీకు ఇప్పుడే చెప్పిన వ్యక్తి ఇతడే. మా నివేదిక ఇప్పుడు పూర్తిగా క్లౌడ్ గురించి కాదు, అదే సమయంలో మేము అలాంటి సాంకేతికతలపై ఆధారపడి ఉన్నాము. మీరు Yandex లోపల చేసినవి లేకుండా, Yandex.Cloudలో సేవ ఉండదు, కాబట్టి నా నుండి వ్యక్తిగతంగా ధన్యవాదాలు. మరియు ప్రసారం నుండి మొదటి ప్రశ్న: "మీరు పేర్కొన్న ప్రతి ప్రాజెక్ట్లు దేనిపై వ్రాయబడ్డాయి?"
WAL-Gలోని బ్యాకప్ సిస్టమ్ గోలో వ్రాయబడింది. మేము పనిచేసిన కొత్త ప్రాజెక్ట్లలో ఇది ఒకటి. అతను అక్షరాలా 3 సంవత్సరాలు మాత్రమే. మరియు డేటాబేస్ తరచుగా విశ్వసనీయతకు సంబంధించినది. మరియు దీని అర్థం డేటాబేస్లు చాలా పాతవి మరియు అవి సాధారణంగా C లో వ్రాయబడతాయి. పోస్ట్గ్రెస్ ప్రాజెక్ట్ సుమారు 30 సంవత్సరాల క్రితం ప్రారంభమైంది. అప్పుడు C89 సరైన ఎంపిక. మరియు పోస్ట్గ్రెస్ దానిపై వ్రాయబడింది. ClickHouse వంటి మరిన్ని ఆధునిక డేటాబేస్లు సాధారణంగా C++లో వ్రాయబడతాయి. అన్ని సిస్టమ్ డెవలప్మెంట్ C మరియు C++ చుట్టూ ఆధారపడి ఉంటుంది.
క్లౌడ్లో ఖర్చులకు బాధ్యత వహించే మా ఫైనాన్షియల్ మేనేజర్ నుండి ఒక ప్రశ్న: "ఓపెన్ సోర్స్కు మద్దతు ఇవ్వడానికి క్లౌడ్ ఎందుకు డబ్బు ఖర్చు చేస్తుంది?"
ఫైనాన్షియల్ మేనేజర్ కోసం ఇక్కడ ఒక సాధారణ సమాధానం ఉంది. మా సేవలను మెరుగుపరచడానికి మేము దీన్ని చేస్తాము. ఏయే విధాలుగా మనం మెరుగ్గా చేయవచ్చు? మేము పనులను మరింత సమర్ధవంతంగా, వేగంగా చేయగలము మరియు విషయాలను మరింత స్కేలబుల్గా చేయవచ్చు. కానీ మాకు, ఈ కథ ప్రధానంగా విశ్వసనీయత గురించి. ఉదాహరణకు, బ్యాకప్ సిస్టమ్లో మేము దానికి వర్తించే 100% ప్యాచ్లను సమీక్షిస్తాము. కోడ్ ఏమిటో మాకు తెలుసు. మరియు మేము ఉత్పత్తికి కొత్త వెర్షన్లను విడుదల చేయడం మరింత సౌకర్యవంతంగా ఉంటుంది. అంటే, మొదటగా, ఇది విశ్వాసం గురించి, అభివృద్ధికి సంసిద్ధత గురించి మరియు విశ్వసనీయత గురించి
మరొక ప్రశ్న: "Yandex.Cloudలో నివసించే బాహ్య వినియోగదారుల అవసరాలు అంతర్గత క్లౌడ్లో నివసించే అంతర్గత వినియోగదారుల నుండి భిన్నంగా ఉన్నాయా?"
లోడ్ ప్రొఫైల్, వాస్తవానికి, భిన్నంగా ఉంటుంది. కానీ నా డిపార్ట్మెంట్ దృక్కోణం నుండి, అన్ని ప్రత్యేకమైన మరియు ఆసక్తికరమైన కేసులు ప్రామాణికం కాని లోడ్పై సృష్టించబడతాయి. ఊహాశక్తి ఉన్న డెవలపర్లు, ఊహించని విధంగా చేసే డెవలపర్లు అంతర్గతంగా మరియు బాహ్యంగా కనిపించే అవకాశం ఉంది. ఈ విషయంలో మనమందరం ఇంచుమించు ఒకటే. మరియు, బహుశా, డేటాబేస్ యొక్క Yandex ఆపరేషన్ లోపల ఉన్న ఏకైక ముఖ్యమైన లక్షణం Yandex లోపల మనకు బోధన ఉంటుంది. ఏదో ఒక సమయంలో, కొంత లభ్యత జోన్ పూర్తిగా నీడలోకి వెళుతుంది మరియు అన్ని Yandex సేవలు అయినప్పటికీ ఏదో ఒకవిధంగా పనిచేయడం కొనసాగించాలి. ఇది చిన్న తేడా. కానీ ఇది డేటాబేస్ మరియు నెట్వర్క్ స్టాక్ యొక్క ఇంటర్ఫేస్లో చాలా పరిశోధన అభివృద్ధిని సృష్టిస్తుంది. లేకపోతే, బాహ్య మరియు అంతర్గత ఇన్స్టాలేషన్లు ఫీచర్ల కోసం ఒకే రకమైన అభ్యర్థనలను మరియు విశ్వసనీయత మరియు పనితీరును మెరుగుపరచడానికి సారూప్య అభ్యర్థనలను ఉత్పత్తి చేస్తాయి.
తదుపరి ప్రశ్న: "మీరు చేసే పనిలో ఎక్కువ భాగం ఇతర మేఘాలు ఉపయోగించబడుతున్నాయని మీరు వ్యక్తిగతంగా ఎలా భావిస్తారు?" మేము నిర్దిష్టమైన వాటికి పేరు పెట్టము, కానీ Yandex.Cloudలో చేసిన అనేక ప్రాజెక్ట్లు ఇతర వ్యక్తుల క్లౌడ్లలో ఉపయోగించబడతాయి.
ఇది బాగుంది. మొదటిది, మనం ఏదో సరిగ్గా చేశామనే సంకేతం. మరియు అది అహాన్ని గీతలు చేస్తుంది. మరియు మేము సరైన నిర్ణయం తీసుకున్నామని మాకు మరింత నమ్మకం ఉంది. మరోవైపు, భవిష్యత్తులో ఇది మాకు కొత్త ఆలోచనలను, మూడవ పక్ష వినియోగదారుల నుండి కొత్త అభ్యర్థనలను తీసుకువస్తుందని ఆశిస్తున్నాము. GitHubలో చాలా సమస్యలు వ్యక్తిగత సిస్టమ్ అడ్మినిస్ట్రేటర్లు, వ్యక్తిగత DBAలు, వ్యక్తిగత ఆర్కిటెక్ట్లు, వ్యక్తిగత ఇంజనీర్లచే సృష్టించబడతాయి, అయితే కొన్నిసార్లు క్రమబద్ధమైన అనుభవం ఉన్న వ్యక్తులు వచ్చి 30% కొన్ని సందర్భాల్లో మనకు ఈ సమస్య ఉందని మరియు దానిని ఎలా పరిష్కరించాలో ఆలోచిద్దాం. దీని కోసమే మనం ఎక్కువగా ఎదురుచూస్తున్నాం. మేము ఇతర క్లౌడ్ ప్లాట్ఫారమ్లతో అనుభవాలను పంచుకోవడానికి ఎదురుచూస్తున్నాము.
మీరు మారథాన్ గురించి చాలా మాట్లాడారు. మీరు మాస్కోలో మారథాన్లో నడిచారని నాకు తెలుసు. ఫలితంగా? PostgreSQL నుండి అబ్బాయిలను అధిగమించారా?
లేదు, ఒలేగ్ బార్టునోవ్ చాలా వేగంగా నడుస్తాడు. అతను నా కంటే ఒక గంట ముందుగా ముగించాడు. మొత్తంమీద, నేను ఎంత దూరం సాధించానో సంతోషంగా ఉన్నాను. నాకు, కేవలం పూర్తి చేయడం ఒక విజయం. మొత్తంమీద, పోస్ట్గ్రెస్ సంఘంలో చాలా మంది రన్నర్లు ఉండటం ఆశ్చర్యకరం. ఏరోబిక్ స్పోర్ట్స్ మరియు సిస్టమ్స్ ప్రోగ్రామింగ్ కోసం కోరిక మధ్య ఒక రకమైన సంబంధం ఉందని నాకు అనిపిస్తోంది.
క్లిక్హౌస్లో రన్నర్లు లేరని మీరు చెబుతున్నారా?
వారు అక్కడ ఉన్నారని నాకు ఖచ్చితంగా తెలుసు. ClickHouse కూడా ఒక డేటాబేస్. మార్గం ద్వారా, ఒలేగ్ ఇప్పుడు నాకు వ్రాస్తున్నాడు: "రిపోర్ట్ తర్వాత మనం పరుగు కోసం వెళ్దామా?" ఇది గొప్ప ఆలోచన.
నికితా నుండి ప్రసారం నుండి మరొక ప్రశ్న: "మీరు గ్రీన్ప్లమ్లోని బగ్ను మీరే ఎందుకు పరిష్కరించారు మరియు దానిని జూనియర్లకు ఎందుకు ఇవ్వలేదు?" నిజమే, బగ్ ఏది మరియు ఏ సేవలో చాలా స్పష్టంగా లేదు, కానీ బహుశా మీరు మాట్లాడిన దాని అర్థం.
అవును, సూత్రప్రాయంగా, ఇది ఎవరికైనా ఇవ్వబడింది. ఇది నేను ఇప్పుడే మార్చిన కోడ్ మాత్రమే. మరియు వెంటనే చేయడం కొనసాగించడం సహజం. సూత్రప్రాయంగా, బృందంతో నైపుణ్యాన్ని పంచుకోవాలనే ఆలోచన మంచి ఆలోచన. మేము ఖచ్చితంగా గ్రీన్ప్లమ్ టాస్క్లను మా డివిజన్లోని సభ్యులందరికీ పంచుకుంటాము.
మేము జూనియర్ల గురించి మాట్లాడుతున్నాము కాబట్టి, ఇక్కడ ఒక ప్రశ్న ఉంది. వ్యక్తి పోస్ట్గ్రెస్లో మొదటి కమిట్ను రూపొందించాలని నిర్ణయించుకున్నాడు. అతను మొదటి కమిట్ చేయడానికి ఏమి చేయాలి?
ఇది ఆసక్తికరమైన ప్రశ్న: "ఎక్కడ ప్రారంభించాలి?" కెర్నల్లో ఏదైనా ప్రారంభించడం సాధారణంగా చాలా కష్టం. పోస్ట్గ్రెస్లో, ఉదాహరణకు, చేయవలసిన జాబితా ఉంది. కానీ వాస్తవానికి, ఇది వారు చేయడానికి ప్రయత్నించిన దాని యొక్క షీట్, కానీ విజయవంతం కాలేదు. ఇవి సంక్లిష్టమైన విషయాలు. మరియు సాధారణంగా మీరు ఎకోసిస్టమ్లో కొన్ని యుటిలిటీలను కనుగొనవచ్చు, మెరుగుపరచగల కొన్ని పొడిగింపులు, కెర్నల్ డెవలపర్ల నుండి తక్కువ దృష్టిని ఆకర్షిస్తాయి. మరియు, తదనుగుణంగా, అక్కడ వృద్ధికి మరిన్ని పాయింట్లు ఉన్నాయి. గూగుల్ సమ్మర్ ఆఫ్ కోడ్ ప్రోగ్రామ్లో, ప్రతి సంవత్సరం పోస్ట్గ్రెస్ కమ్యూనిటీ ప్రసంగించగల అనేక విభిన్న అంశాలను ముందుకు తెస్తుంది. ఈ సంవత్సరం మాకు ముగ్గురు విద్యార్థులు ఉన్నారు. Yandexకి ముఖ్యమైన అంశాలపై కూడా ఒకరు WAL-Gలో రాశారు. గ్రీన్ప్లమ్లో, పోస్ట్గ్రెస్ కమ్యూనిటీలో కంటే ప్రతిదీ చాలా సులభం, ఎందుకంటే గ్రీన్ప్లమ్ హ్యాకర్లు పుల్ రిక్వెస్ట్లను చాలా బాగా పరిగణిస్తారు మరియు వెంటనే సమీక్షించడం ప్రారంభిస్తారు. పోస్ట్గ్రెస్కి ప్యాచ్ని పంపడం నెలల వ్యవధిలో ఉంటుంది, అయితే గ్రీన్ప్లమ్ ఒక రోజులో వచ్చి మీరు ఏమి చేశారో చూస్తారు. మరో విషయం ఏమిటంటే గ్రీన్ప్లమ్ ప్రస్తుత సమస్యలను పరిష్కరించాలి. Greenplum విస్తృతంగా ఉపయోగించబడదు, కాబట్టి మీ సమస్యను కనుగొనడం చాలా కష్టం. మరియు అన్నింటిలో మొదటిది, మేము సమస్యలను పరిష్కరించాలి.
మూలం: www.habr.com