I-Google Cloud Spanner: Kuhle, Kubi, Kubi

Sawubona, Khabrovites. Ngokwesiko, siyaqhubeka nokwabelana ngezinto ezithakazelisayo ngobusuku bangaphambi kokuqala kwezifundo ezintsha. Namuhla, ikakhulukazi kuwe, sihumushe indatshana emayelana ne-Google Cloud Spanner, ebekwe isikhathi ukuze ihambisane nokwethulwa kwesifundo. "AWS for Developers".

I-Google Cloud Spanner: Kuhle, Kubi, Kubi

Ishicilelwe okokuqala ngo Ibhulogi ye-Lightspeed HQ.

Njengenkampani ehlinzeka ngezixazululo ezihlukahlukene ze-POS ezisekelwe emafini zabathengisi, izitolo zokudlela, nabathengisi be-inthanethi emhlabeni jikelele, i-Lightspeed isebenzisa izinhlobo ezimbalwa ezihlukene zezinkundla zesizindalwazi ngezinhlobonhlobo zokuthengiselana, ukuhlaziya, kanye namacala okusebenzisa wosesho. Ngayinye yalezi nkundla zolwazi inamandla nobuthakathaka bayo. Ngakho-ke, ngenkathi i-Google yethula i-Cloud Spanner emakethe - izici ezithembisayo ezingabonakali emhlabeni wolwazi olugciniwe, njengokukaleka okuvundlile okungenamkhawulo kanye nesivumelwano sezinga lesevisi esingu-99,999% (SLA) , Asikwazanga ukuliyeka ithuba lokuba naye ezandleni zethu!

Ukuze sinikeze umbono obanzi wokuhlangenwe nakho kwethu nge-Cloud Spanner, kanye nemibandela yokuhlola esiyisebenzisile, sizofaka izihloko ezilandelayo:

  1. Indlela yethu yokuhlola
  2. I-Cloud Spanner ngamafuphi
  3. Ukuhlola kwethu
  4. Okutholakele kwethu

I-Google Cloud Spanner: Kuhle, Kubi, Kubi

1. Indlela yethu yokuhlola

Ngaphambi kokungena emininingwaneni ye-Cloud Spanner, ukufana kwayo nokungafani nezinye izixazululo emakethe, ake siqale sikhulume ngamacala okusebenzisa amakhulu ebesinawo engqondweni lapho sicabanga ukuthi singayithumela kuphi i-Cloud Spanner engqalasizinda yethu:

  • Njengokumiselela (esikhona) isisombululo sesizindalwazi se-SQL sendabuko
  • Njengesixazululo se-OLTP esinikwe amandla i-OLAP

Qaphela: Ukuze kube lula ukuqhathanisa, lesi sihloko siqhathanisa i-Cloud Spanner nokuhluka kwe-MySQL ye-GCP Cloud SQL nemindeni yezixazululo ze-Amazon AWS RDS.

Ukusebenzisa i-Cloud Spanner njengokungena esikhundleni sesixazululo sesizindalwazi se-SQL sendabuko

Emvelweni yendabuko imininingo egciniwe, lapho isikhathi sokuphendula sombuzo wesizindalwazi sisondela noma sidlula ngisho nemingcele yohlelo echazwe ngaphambilini (ikakhulukazi ngenxa yokwanda kwenani labasebenzisi kanye/noma izicelo), kunezindlela ezimbalwa zokunciphisa isikhathi sokuphendula siye kumazinga amukelekayo. Nokho, eziningi zalezi zixazululo zihilela ukungenelela okwenziwa ngesandla.

Isibonelo, isinyathelo sokuqala okufanele usithathe ukubheka izilungiselelo zesizindalwazi esihlobene nokusebenza futhi uzishunise ukuze zifane kangcono namaphethini wesimo sokusetshenziswa kohlelo lokusebenza. Uma lokhu kungenele, ungakhetha ukukala isizindalwazi siqonde phezulu noma sivundlile.

Ukukhuphula uhlelo lokusebenza kuhlanganisa nokubuyekeza isibonelo seseva, ngokuvamile ngokwengeza amaphrosesa/ama-cores amaningi, i-RAM eyengeziwe, isitoreji esisheshayo, njll. Ukwengeza izinsiza zezingxenyekazi zekhompuyutha ezengeziwe kuholela ekusebenzeni okuthuthukile kwesizindalwazi, okukalwa ngokuyinhloko emisebenzini ngomzuzwana, nokubambezeleka kokwenziwe kumasistimu e-OLTP. Izinhlelo zesizindalwazi esihlobene (ezisebenzisa indlela enezintambo eziningi) njengesikali se-MySQL siqonde mpo.

Kunezithiyo eziningana kule ndlela, kodwa okusobala kakhulu usayizi weseva omkhulu emakethe. Uma umkhawulo we-Server Instance omkhulu kakhulu usufinyelelwe, kusele indlela eyodwa kuphela: sikala ukuphuma.

I-Scale-out yindlela engeza amaseva engeziwe kuqoqo ukuze kwandiswe ukusebenza ngendlela efanele njengoba amaseva engeziwe engezwa. Iningi yendabuko amasistimu esizindalwazi awalingani kahle noma awalingani nhlobo. Isibonelo, i-MySQL ingakhipha imisebenzi yokufunda ngokwengeza izifundi zezigqila, kodwa ayikwazi ukuphuma emisebenzini yokubhala.

Ngakolunye uhlangothi, ngenxa yemvelo yayo, i-Cloud Spanner ingakala kalula ngokuvundlile ngokungenelela okuncane.

Okufakiwe ngokugcwele I-DBMS njengesevisi kumele ihlolwe ngemibono eyahlukene. Njengesisekelo, sithathe i-DBMS edume kakhulu efwini - ye-Google, i-GCP Cloud SQL kanye ne-Amazon, i-AWS RDS. Ekuhloleni kwethu, sigxile kulezi zigaba ezilandelayo:

  • Imephu yesici: Izinga le-SQL, i-DDL, i-DML; imitapo yolwazi/izixhumi zokuxhuma, ukwesekwa kokuthengiselana, nokunye.
  • Ukusekelwa Kwentuthuko: Ukuthuthuka nokuhlola kalula.
  • Ukwesekwa kwezokuphatha: Ukuphathwa kwezimo ezifana nokwenyusa/phansi kanye nezimo zokuthuthukisa; I-SLA, ikhophi yasenqolobaneni nokubuyisela; ukuphepha/ukulawula ukufinyelela.

Ukusebenzisa i-Cloud Spanner njengesixazululo se-OLTP esinikwe amandla yi-OLAP

Nakuba i-Google ingasho ngokusobala ukuthi i-Cloud Spanner ingeyezibalo, yabelana ngezibaluli ezithile nezinye izinjini ezifana ne-Apache Impala & Kudu ne-YugaByte ezidizayinelwe imithwalo yemisebenzi ye-OLAP.

Ngisho noma bekunethuba elincane kuphela lokuthi i-Cloud Spanner ifake injini ye-HTAP (Hybrid Transactional/Analytic Processing) enesethi yesici (esingaphezulu noma esincane) esisebenzisekayo se-OLAP, sicabanga ukuthi izofaneleka ukuthi siyinake.

Sinalokho engqondweni, sibheke lezi zigaba ezilandelayo:

  • Ukulayishwa kwedatha, izinkomba nokusekelwa kokuhlukanisa
  • Ukusebenza kombuzo kanye ne-DML

2. I-Cloud Spanner Kafushane

I-Google Spanner iyisistimu yokuphathwa kwesizindalwazi esihlobene (RDBMS) i-Google eyisebenzisela izinsizakalo zayo ezimbalwa. I-Google iyenze yatholakala esidlangalaleni kubasebenzisi be-Google Cloud Platform ngasekuqaleni kuka-2017.

Nazi ezinye zezibaluli ze-Cloud Spanner:

  • Iqoqo Le-RDBMS Engaguquguquki Kakhulu: Isebenzisa ukuvumelanisa isikhathi sezingxenyekazi zekhompiyutha ukuze kuqinisekiswe ukuhambisana kwedatha.
  • Ukusekelwa kokwenziwayo kwetafula eliphambene: Okwenziwayo kungahlanganisa amathebula amaningi - akukhawulelwe kuthebula elilodwa (ngokungafani ne-Apache HBase noma i-Apache Kudu).
  • Amathebula Asekelwe Kukhiye Oyinhloko: Wonke amathebula kufanele abe nokhiye Oyinhloko (PC) oshiwo, ongaqukatha amakholomu ethebula amaningi. Idatha yethebula igcinwa ngokuhleleka kwe-PC, okwenza isebenze kahle kakhulu futhi isheshe ekusesheni kwe-PC. Njengakwamanye amasistimu asekelwe ku-PC, ukuqaliswa kufanele kufanekiswe ngokumelene namacala okusetshenziswa kwangaphambilini ukuze kuzuzwe ukusebenza okuhle kakhulu.
  • Amathebula anemigqa: Amathebula angaba nokuncika ngokomzimba kwelinye. Imigqa yethebula lengane ingafaniswa nemigqa yethebula lomzali. Le ndlela isheshisa ukusesha ubudlelwano obunganqunywa esigabeni sokumodela idatha, isibonelo, uma kuhlanganiswa amakhasimende nama-invoyisi awo.
  • Izinkomba: I-Cloud Spanner isekela izinkomba zesibili. Inkomba iqukethe amakholomu anezikhombo nawo wonke amakholomu e-PC. Uma uthanda, inkomba ingaqukatha namanye amakholomu angakhonjwa. Inkomba ingahlukaniswa nethebula lomzali ukuze kusheshiswe imibuzo. Imikhawulo eminingana iyasebenza ezinkombeni, njengenani eliphezulu lamakholomu engeziwe angagcinwa kunkomba. Futhi, imibuzo ngezinkomba ingase ingaqondile njengakwezinye i-RDBMS.

β€œI-Cloud Spanner ikhetha inkomba ngokuzenzakalelayo kuphela ezimweni ezingavamile. Ikakhulukazi, i-Cloud Spanner ayikhethi ngokuzenzakalelayo inkomba yesibili uma umbuzo ucela noma imaphi amakholomu angagciniwe kuwo. inkomba ".

  • Isivumelwano Sezinga Lesevisi (SLA): Ukuthunyelwa kwesifunda esisodwa nge-99,99% SLA; ukuthunyelwa kwezifunda eziningi nge-99,999% SLA. Nakuba i-SLA ngokwayo iyisivumelwano nje hhayi isiqinisekiso sanoma yiluphi uhlobo, ngikholelwa ukuthi abantu be-Google banedatha eqinile yokwenza isimangalo esiqine kangaka. (Ngokwereferensi, i-99,999% isho imizuzwana engu-26,3 yesikhathi sokuphumula sesevisi ngenyanga.)
  • Okuningi: https://cloud.google.com/spanner/

Qaphela: Iphrojekthi ye-Apache Tephra yengeza ukwesekwa kokwenziwe okuthuthukile ku-Apache HBase (nayo manje isisetshenziswa e-Apache Phoenix njenge-beta).

3. Ukuhlola kwethu

Ngakho-ke, sonke sizifundile izitatimende ze-Google mayelana nezinzuzo ze-Cloud Spanner - ukukala okuvundlile cishe okungenamkhawulo kuyilapho kugcinwa ukungaguquguquki okuphezulu kanye ne-SLA ephezulu kakhulu. Nakuba lezi zimangalo, kunoma yikuphi, zinzima kakhulu ukufeza, umgomo wethu bekungekona ukuziphikisa. Esikhundleni salokho, asigxile kwezinye izinto iningi labasebenzisi besizindalwazi abanandaba nazo: ukulingana nokusebenziseka.

Sikale i-Cloud Spanner njengokungena esikhundleni se-Shared MySQL

I-Google Cloud SQL ne-Amazon AWS RDS, izizindalwazi ezimbili ezidume kakhulu ze-OLTP emakethe yamafu, zinesethi yesici esikhulu kakhulu. Kodwa-ke, ukuze ulinganise lezi dathabhethi ngaphezu kosayizi wenodi eyodwa, udinga ukwenza ukuhlukanisa uhlelo lokusebenza. Le ndlela idala ubunkimbinkimbi obengeziwe kukho kokubili izinhlelo zokusebenza nokuphatha. Sibheke ukuthi i-Spanner ingena kanjani esimeni sokuhlanganisa ama-shards amaningi abe yisibonelo esisodwa nokuthi yiziphi izici (uma zikhona) okungadingeka zenziwe umhlatshelo.

Ukusekelwa kwe-SQL, i-DML ne-DDL, kanye nesixhumi nemitapo yolwazi?

Okokuqala, lapho uqala nganoma iyiphi i-database, udinga ukudala imodeli yedatha. Uma ucabanga ukuthi ungakwazi ukuxhuma i-JDBC Spanner ethuluzini lakho le-SQL eliyintandokazi, uzothola ukuthi ungakwazi ukubuza idatha yakho ngayo, kodwa awukwazi ukuyisebenzisela ukwakha ithebula noma ukuvuselela (i-DDL) nanoma yikuphi ukufaka/ukuvuselela/ukusula. imisebenzi (DML). I-JDBC esemthethweni yakwaGoogle nayo ayisekeli.

"Abashayeli okwamanje abasekeli izitatimende ze-DML noma ze-DDL."
Amadokhumenti e-Spanner

Isimo asingcono ngekhonsoli ye-GCP - ungathumela kuphela imibuzo ethi KHETHA. Ngenhlanhla, kukhona umshayeli we-JDBC onokusekelwa kwe-DML ne-DDL okuvela emphakathini, okuhlanganisa ukuthengiselana. github.com/olavloite/spanner-jdbc. Nakuba lo mshayeli ewusizo kakhulu, ukungabikho komshayeli we-JDBC wakwa-Google kuyamangaza. Ngenhlanhla, i-Google inikeza ukwesekwa kwelabhulali yeklayenti ebanzi ngokwanele (ngokusekelwe ku-gRPC): C#, Go, Java, node.js, PHP, Python, kanye neRuby.

Ukusetshenziswa okuseduze okuphoqelekile kwama-API angokwezifiso e-Cloud Spanner (ngenxa yokuntuleka kwe-DDL ne-DML ku-JDBC) kubangela ukulinganiselwa kwezindawo ezihlobene zekhodi njengokuhlanganisa ukuxhumeka noma izinhlaka ezibophezelayo zesizindalwazi (njenge-Spring MVC). Ngokuvamile, uma usebenzisa i-JDBC, ukhululekile ukukhetha iphuli yokuxhumana oyikhonzile (isb. HikariCP, DBCP, C3PO, njll.) ehloliwe futhi esebenza kahle. Endabeni yama-Spanner API angokwezifiso, kufanele sithembele kuzinhlaka/amachibi okubopha/amaseshini esizenzele wona ngokwethu.

Idizayini eqondiswe kukhiye oyinhloko (i-PC) ivumela i-Cloud Spanner ukuthi isheshe kakhulu lapho ifinyelela idatha nge-PC, kodwa futhi yethula izinkinga ezithile zemibuzo.

  • Awukwazi ukubuyekeza inani lokhiye oyinhloko; Kumelwe uqale ususe okufakiwe kwe-PC yasekuqaleni bese ukufake kabusha ngevelu entsha. (Lokhu kufana nezinye izinjini zesizindalwazi/isitoreji esigxile kwi-PC.)
  • Noma iziphi izitatimende ZOKUBUYISA KANYE NE-SUSA kufanele zicacise i-PC kokuthi LAPHO, ngakho-ke, angeke kungabi nalutho SUSA zonke izitatimende - kufanele kuhlale kukhona umbuzo ongaphansi, isibonelo: BUYEKEZA xxx LAPHO i-id IN (KHETHA i-id KUSUKA etafuleni1)
  • Ukushoda kwenketho yokwengeza ngokuzenzakalela noma into efanayo ebeka ukulandelana kwenkambu ye-PC. Ukuze lokhu kusebenze, inani elihambisanayo kufanele lenziwe ohlangothini lohlelo lokusebenza.

Izinkomba zesibili?

I-Google Cloud Spanner inosekelo olwakhelwe ngaphakathi lwezinkomba zesibili. Lesi isici esihle kakhulu esingahlali sikhona kobunye ubuchwepheshe. I-Apache Kudu okwamanje ayizisekeli nhlobo izinkomba zesibili, futhi i-Apache HBase ayisekeli izinkomba ngokuqondile, kodwa ingawengeza nge-Apache Phoenix.

Izinkomba ku-Kudu kanye ne-HBase zingamodelwa njengethebula elihlukile elinokwakheka okuhlukile kokhiye abayinhloko, kodwa i-athomu yemisebenzi eyenziwa kuthebula lomzali namathebula enkomba ahlobene kufanele yenziwe ezingeni lesicelo futhi ayiyona into encane ukuze isetshenziswe ngendlela efanele.

Njengoba kushiwo ekubuyekezweni kwe-Cloud Spanner, izinkomba zayo zingahluka kuzinkomba ze-MySQL. Ngakho-ke, kufanele kuqashelwe ngokukhethekile ekwakhiweni kwemibuzo nasekubhaleni imininingwane ukuze kuqinisekiswe ukuthi kusetshenziswa inkomba efanele lapho idingeka khona.

Ukumelela?

Into ethandwa kakhulu futhi ewusizo kusizindalwazi ukubuka. Zingaba usizo ngenani elikhulu lamacala okusetshenziswa; Izintandokazi zami ezimbili ungqimba oluphusile olunengqondo kanye nesendlalelo sokuphepha. Ngeshwa i-Cloud Spanner AYIKUsekeli ukubuka. Nokho, lokhu kusikhawulela kancane kuphela, njengoba abukho ubumbudumbudu beleveli yekholomu yezimvume zokufinyelela lapho ukubukwa kungaba yisixazululo esamukelekayo.

Bona amadokhumenti e-Cloud Spanner ukuze uthole isigaba esinemininingwane yezabelo nemikhawulo (isipanela/izilinganiso), kukhona eyodwa ikakhulukazi engaba yinkinga kwezinye izinhlelo zokusebenza: I-Cloud Spanner ngaphandle kwebhokisi inomkhawulo wolwazi oyi-100 ngesibonelo ngasinye. Ngokusobala, lokhu kungaba yisithiyo esikhulu sesizindalwazi esiklanyelwe ukukala kudathabheyisi engaphezu kwe-100. Ngenhlanhla, ngemva kokukhuluma nommeleli wethu wezobuchwepheshe wakwa-Google, sithole ukuthi lo mkhawulo ungakhushulwa cishe kunoma yiliphi inani ngosekelo lwe-Google.

Ukusekelwa kwentuthuko?

I-Cloud Spanner inikezela ngosekelo oluhle lolimi lokuhlela lokusebenza nge-API yayo. Imitapo yolwazi esekelwa ngokusemthethweni isendaweni ye-C#, Go, Java, node.js, PHP, Python, kanye ne-Ruby. Amadokhumenti anemininingwane eminingi, kodwa njengobunye ubuchwepheshe obusezingeni eliphezulu, umphakathi mncane kakhulu uma uqhathaniswa nobuchwepheshe besizindalwazi obudumile, obungabangela isikhathi esiningi esichithwe ezimweni ezingajwayelekile zokusetshenziswa noma ezinkingeni.

Manje-ke kuthiwani ngosekelo lwentuthuko yendawo?

Asikayitholi indlela yokudala isenzakalo se-Cloud Spanner emagcekeni. Okuseduze kakhulu esikutholile isithombe se-Docker IphelaDBokufana nomgomo, kodwa okuhluke kakhulu ekusebenzeni. Isibonelo i-CockroachDB ingasebenzisa i-PostgreSQL JDBC. Njengoba indawo yokuthuthukiswa kufanele ibe seduze ngangokunokwenzeka endaweni yokukhiqiza, i-Cloud Spanner ayilungile ngoba udinga ukuthembela kusibonelo se-Spanner esigcwele. Ukuze ulondoloze izindleko, ungakhetha isenzakalo sesifunda esisodwa.

Ukwesekwa kwezokuphatha?

Ukudala isibonelo se-Cloud Spanner kulula kakhulu. Udinga nje ukukhetha phakathi kokudala isifunda esinezifunda eziningi noma isenzakalo sesifunda esisodwa, cacisa izifunda kanye nenani lamanodi. Ngaphansi kweminithi, isibonelo sizobe sesisebenza futhi.

Amamethrikhi ambalwa ayisisekelo atholakala ngokuqondile ekhasini le-Spanner ku-Google Console. Ukubuka okunemininingwane eyengeziwe kuyatholakala nge-Stackdriver, lapho ungasetha khona imikhawulo yemethrikhi nezinqubomgomo zezixwayiso.

Ukufinyelela kuzinsiza?

I-MySQL inikeza imvume/izilungiselelo zendima ezibanzi nezincane kakhulu. Ungakwazi kalula ukwenza ngendlela oyifisayo ukufinyelela kuthebula elithile, noma ngisho nesethi encane yamakholomu alo. I-Cloud Spanner isebenzisa ithuluzi le-Google Identity & Access Management (IAM), elikuvumela kuphela ukuthi usethe izinqubomgomo nezimvume ezingeni eliphezulu kakhulu. Inketho eyimbudumbudu kakhulu imvume yezinga lesizindalwazi, engalingani ezimweni eziningi zokukhiqiza. Lo mkhawulo ukuphoqa ukuthi ungeze izinyathelo zokuphepha ezengeziwe ekhodini yakho, ingqalasizinda, noma kokubili ukuze uvimbele ukusetshenziswa okungagunyaziwe kwezisetshenziswa ze-Spanner.

Izipele?

Ukukubeka kalula, azikho izipele ku-Cloud Spanner. Nakuba izimfuneko eziphezulu ze-SLA ze-Google zingaqinisekisa ukuthi awulahlekelwa idatha ngenxa yezingxenyekazi zekhompuyutha noma isizindalwazi, iphutha lomuntu, ukungasebenzi kahle kohlelo lokusebenza, njll. Sonke siyawazi umthetho: ukutholakala okuphezulu akuthatheli indawo isu lekhophi yasenqolobaneni ehlakaniphile. Njengamanje, okuwukuphela kwendlela yokwenza ikhophi yasenqolobaneni yedatha ukuyisakaza ngokuhlelekile isuka kusizindalwazi iye endaweni ehlukile yokugcina.

Umbuzo wokusebenza?

Sisebenzise i-Yahoo! ukuze silayishe idatha nezicelo zokuhlola. I-Cloud Serving Benchmark. Ithebula elingezansi libonisa umthwalo womsebenzi we-B YCSB ngesilinganiso sokubhala esingu-95% sokufunda kuya ku-5%.

I-Google Cloud Spanner: Kuhle, Kubi, Kubi

* Ukuhlolwa komthwalo kwaqhutshwa ku-n1-standard-32 Compute Engine (CE) (32 vCPUs, 120 GB memory) futhi isibonelo sokuhlola asizange sibe ibhodlela ekuhlolweni.
** Inombolo enkulu yochungechunge esimweni esisodwa se-YCSB ngu-400. Sekukonke, izimo ezifanayo eziyisithupha zokuhlolwa kwe-YCSB kudingeke ukuthi zisetshenziswe ukuze kutholwe isamba esingu-2400.

Uma sibheka imiphumela yebhentshimakhi, ikakhulukazi inhlanganisela yomthwalo we-CPU ne-TPS, singabona ngokucacile ukuthi i-Cloud Spanner ikala kahle. Umthwalo omkhulu odalwe inombolo enkulu yochungechunge ulungiswa ngenani elikhulu lamanodi kuqoqo le-Cloud Spanner. Nakuba ukubambezeleka kubukeka kuphezulu kakhulu, ikakhulukazi uma kusebenza emiculweni engu-2400, kungase kudingeke ukuthi uphinde uhlolwe ngezimo ezi-6 ezincane zenjini yekhompyutha ukuze uthole izinombolo ezinembe kakhudlwana. Isenzakalo ngasinye sizosebenzisa ukuhlolwa kwe-YCSB okukodwa esikhundleni sesibonelo esisodwa esikhulu se-CE esinokuhlolwa okuhambisanayo okungu-6. Lokhu kuzokwenza kube lula ukuhlukanisa phakathi kokulibaziseka kwesicelo se-Cloud Spanner nokubambezeleka okungezwe uxhumo lwenethiwekhi phakathi kwe-Cloud Spanner kanye nesenzakalo se-CE esiqhuba ukuhlolwa.

Isebenza kanjani i-Cloud Spanner njenge-OLAP?

Ukuhlukanisa?

Ukwehlukanisa idatha ibe amasegimenti azimele ngokomzimba kanye/noma ngokunengqondo, abizwa ngokuthi ama-partitions, umqondo odume kakhulu otholakala kuzinjini eziningi ze-OLAP. Izahluko zingathuthukisa kakhulu ukusebenza kombuzo kanye nokugcinwa kwesizindalwazi. Ukuqhubekela phambili ekuhlukaniseni kungaba i(izi)ndatshana ezihlukene, ngakho-ke ake simane sisho ukubaluleka kokuba nohlelo lokuhlukanisa kanye nokuhlukanisa kancane. Ikhono lokuhlukanisa idatha ibe izingxenye ezimbili ngisho nangaphezulu liwukhiye ekusebenzeni kwemibuzo yokuhlaziya.

I-Cloud Spanner ayisekeli ukuhlukaniswa ngeseshini ngayinye. Ihlukanisa idatha ngaphakathi kulokho okubizwa ngokuthi Hlukanisa-s isekelwe kububanzi bokhiye abayinhloko. Ukwahlukanisa kwenziwa ngokuzenzakalelayo ukuze kulinganiswe umthwalo kuqoqo le-Cloud Spanner. Isici esiwusizo kakhulu se-Cloud Spanner sihlukanisa umthwalo oyisisekelo wetafula lomzali (ithebula elingashiyiwe kwelinye). I-Spanner ithola ngokuzenzakalelayo uma iqukethe Hlukanisa idatha efundwa kaningi kunedatha kwenye Hlukanisa-ah, futhi anganquma ngokuhlukana okwengeziwe. Ngakho-ke, ama-node amaningi angabandakanyeka esicelweni, futhi okwandisa ngempumelelo ukuphuma.

Ilayisha idatha?

Indlela ye-Cloud Spanner yedatha yenqwaba iyafana neyokulayisha okuvamile. Ukuze usebenze kakhulu, udinga ukulandela imihlahlandlela ethile, efaka:

  • Hlunga idatha yakho ngokhiye oyinhloko.
  • Bahlukanise ngo-10*inombolo yama-node izigaba ngazinye.
  • Dala isethi yemisebenzi yesisebenzi elayisha idatha ngokuhambisana.

Lokhu kulayisha idatha kusebenzisa wonke amanodi e-Cloud Spanner.

Sisebenzise umthwalo wokusebenza we-A YCSB ukuze sikhiqize isethi yedatha yemigqa engu-10M.

I-Google Cloud Spanner: Kuhle, Kubi, Kubi

* Ukuhlolwa komthwalo kwaqhutshwa ngenjini yekhompiyutha engu-n1-standard-32 (32 vCPUs, inkumbulo engu-120 GB) futhi isibonelo sokuhlola asizange sibe ibhodlela ezivivinyweni.
** Ukusethwa kwenodi engu-1 akunconyiwe kunoma yimuphi umthwalo wokukhiqiza.

Njengoba kushiwo ngenhla, i-Cloud Spanner icubungula ngokuzenzakalelayo ukuhlukana kuye ngomthwalo wazo, ngakho imiphumela iba ngcono ngemva kokuphindaphinda kaningana okulandelanayo kokuhlolwa. Imiphumela ethulwe lapha iyimiphumela engcono kakhulu esiyitholile. Uma sibheka izinombolo ezingenhla, singabona ukuthi i-Cloud Spanner ikala kanjani (kahle) njengoba inani lamanodi kuqoqo likhula. Izinombolo ezigqamayo ziwukubambezeleka okumaphakathi okuphansi kakhulu, okuphambana nemiphumela yomthwalo wemisebenzi exubile (u-95% ufundiwe futhi u-5% ubhale) njengoba kuchazwe esigabeni esingenhla.

Ukukala?

Ukwandisa nokunciphisa inani lamanodi e-Cloud Spanner kuwumsebenzi wokuchofoza kanye. Uma ufuna ukulayisha idatha ngokushesha, ungase uthande ukucabangela ukukhulisa isibonelo kuze kufike phezulu (kithi bekungamanodi angu-25 esifundeni sase-US-EAST) bese wehlisa inani lamanodi afanele umthwalo wakho ovamile ngemva kwayo yonke idatha. kusizindalwazi , kukhumbula umkhawulo ongu-2 TB/nodi.

Sakhunjuzwa ngalo mkhawulo ngisho nesizindalwazi esincane kakhulu. Ngemuva kokugijima kokuhlolwa komthwalo kaningana, isizindalwazi sethu sasicishe sibe ngu-155 GB ngosayizi, futhi lapho sehliswa sibe yisibonelo se-node engu-1, sithole iphutha elilandelayo:

I-Google Cloud Spanner: Kuhle, Kubi, Kubi

Sikwazile ukwehla sisuka ezimweni ezingama-25 siye kwezingu-2, kodwa sisabambekile kumanodi amabili.

Ukuphakamisa nokunciphisa inani lamanodi kuqoqo le-Cloud Spanner kungenziwa ngokuzenzakalelayo kusetshenziswa i-REST API. Lokhu kungaba usizo ikakhulukazi ekwehliseni umthwalo owengeziwe ohlelweni ngesikhathi sokusebenza.

Ukusebenza kombuzo we-OLAP?

Ekuqaleni besihlele ukusebenzisa isikhathi esiningi ekuhlaziyeni kwethu i-Spanner kule ngxenye. Ngemuva kwama-KHETHA ambalwa, saqaphela ngokushesha ukuthi ukuhlolwa kuzoba kufushane nokuthi i-Spanner NGEKE ibe injini efanelekile ye-OLAP. Kungakhathalekile inani lamanodi kuqoqo, ukukhetha nje inombolo yemigqa kuthebula lemigqa engu-10M kuthathe imizuzwana engama-55 kuye kwangama-60. Futhi, noma yimuphi umbuzo obudinga inkumbulo eyengeziwe ukuze ugcine imiphumela emaphakathi wehlulekile ngephutha le-OOM.

SELECT COUNT(DISTINCT(field0)) FROM usertable; β€” (10M distinct values)-> SpoolingHashAggregateIterator ran out of memory during new row.

Ezinye izinombolo zemibuzo ye-TPC-H zingatholakala ku-athikili ka-Todd Lipcon nosql-kudu-spanner-slides.html, amaslayidi 42 no-43. Lezi zinombolo zihambisana nemiphumela yethu (ngeshwa).

I-Google Cloud Spanner: Kuhle, Kubi, Kubi

4. Esikutholile

Uma kubhekwa isimo samanje sezici ze-Cloud Spanner, kunzima ukukubona njengokuthatha indawo yesixazululo esikhona se-OLTP, ikakhulukazi uma izidingo zakho zisidlula. Inani elibalulekile lesikhathi kuzodingeka lisetshenziswe ukwakha isixazululo mayelana nokushiyeka kwe-Cloud Spanner.

Ngenkathi siqala ukuhlola i-Cloud Spanner, besilindele ukuthi izici zayo zokuphatha zilingane, noma okungenani zingabi kude, nezinye izixazululo ze-Google SQL. Kodwa kwasimangaza ukuntuleka okuphelele kwezipele kanye nokulawulwa kokufinyelela okulinganiselwe ezinsizeni. Ingasaphathwa eyokubuka, ayikho indawo yokuthuthukiswa kwendawo, ukulandelana okungasekelwe, i-JDBC ngaphandle kosekelo lwe-DML ne-DDL, njalo njalo.

Ngakho-ke, ungaya kuphi kumuntu odinga ukukala isizindalwazi sokuthengiselana? Akubonakali kunesixazululo esisodwa emakethe esilingana nawo wonke amacala okusetshenziswa. Kunezixazululo eziningi ezivaliwe nezivulekile zomthombo (ezinye zazo okukhulunywe ngazo kulesi sihloko), ngasinye sinamandla nobuthakathaka babo, kodwa akekho noyedwa wabo ohlinzeka nge-SaaS nge-99,999% SLA kanye nezinga eliphezulu lokuvumelana. Uma i-SLA ephezulu kuwumgomo wakho oyinhloko futhi ungazimisele ukwakha isixazululo sakho samafu amaningi, i-Cloud Spanner ingase ibe yisixazululo osifunayo. Kodwa kufanele uqaphele yonke imikhawulo yayo.

Ukukhuluma iqiniso, i-Cloud Spanner ikhishwe esidlangalaleni kuphela entwasahlobo ka-2017, ngakho-ke kunengqondo ukulindela ukuthi amanye amaphutha ayo akhona manje angase aphele (ngethemba), futhi uma kwenzeka, kungase kube isishintshi segeyimu. Phela, i-Cloud Spanner akuyona nje iphrojekthi eseceleni ye-Google. I-Google iyisebenzisa njengesisekelo seminye imikhiqizo ye-Google. Futhi ngenkathi i-Google isanda kushintsha i-Megastore ku-Google Cloud Storage nge-Cloud Spanner, ivumele i-Google Cloud Storage ukuthi ihambisane kakhulu nohlu lwezinto esikalini somhlaba (okungakabi njalo Ama-Amazon S3).

Ngakho, lisekhona ithemba... siyethemba.

Yilokho kuphela. Njengombhali walesi sihloko, nathi sisaqhubeka sinethemba, kodwa ucabangani ngalokhu? Bhala emazwaneni

Simema wonke umuntu ukuthi avakashele wethu i-webinar yamahhala lapho sizokutshela khona kabanzi mayelana nesifundo "AWS for Developers" kusuka ku-OTUS.

Source: www.habr.com

Engeza amazwana