Google Cloud Spanner: Da, Drwg, Hyll

Helo, Khabrovites. Yn draddodiadol, rydym yn parhau i rannu deunydd diddorol ar drothwy dechrau cyrsiau newydd. Heddiw, yn arbennig i chi, rydym wedi cyfieithu erthygl am Google Cloud Spanner, wedi'i hamseru i gyd-fynd â lansiad y cwrs "AWS ar gyfer Datblygwyr".

Google Cloud Spanner: Da, Drwg, Hyll

Cyhoeddwyd yn wreiddiol yn Blog Pencadlys Lightspeed.

Fel cwmni sy'n cynnig amrywiaeth o atebion POS yn y cwmwl ar gyfer manwerthwyr, perchnogion bwytai, a masnachwyr ar-lein ledled y byd, mae Lightspeed yn defnyddio sawl math gwahanol o lwyfannau cronfa ddata ar gyfer amrywiaeth o achosion trafodaethol, dadansoddol a defnydd chwilio. Mae gan bob un o'r llwyfannau cronfa ddata hyn ei gryfderau a'i wendidau ei hun. Felly, pan gyflwynodd Google Cloud Spanner i'r farchnad - nodweddion addawol na welwyd erioed o'r blaen yn y byd cronfa ddata perthynol, megis graddadwyedd llorweddol bron yn ddiderfyn a chytundeb lefel gwasanaeth (SLA) 99,999%. , Ni allem basio i fyny y cyfle i gael hi yn ein dwylo!

I roi trosolwg cynhwysfawr o'n profiad gyda Cloud Spanner, yn ogystal â'r meini prawf gwerthuso a ddefnyddiwyd gennym, byddwn yn ymdrin â'r pynciau canlynol:

  1. Ein meini prawf gwerthuso
  2. Cloud Spanner yn gryno
  3. Ein hasesiad
  4. Ein canfyddiadau

Google Cloud Spanner: Da, Drwg, Hyll

1. Ein meini prawf gwerthuso

Cyn plymio i fanylion Cloud Spanner, ei debygrwydd a'i wahaniaethau ag atebion eraill ar y farchnad, gadewch i ni siarad yn gyntaf am y prif achosion defnydd a oedd gennym mewn golwg wrth ystyried ble i ddefnyddio Cloud Spanner yn ein seilwaith:

  • Yn lle'r datrysiad cronfa ddata SQL traddodiadol (cyffredinol).
  • Fel datrysiad OLTP wedi'i alluogi gan OLAP

Nodyn: Er hwylustod, mae'r erthygl hon yn cymharu Cloud Spanner â'r amrywiadau MySQL o deuluoedd datrysiad GCP Cloud SQL ac Amazon AWS RDS.

Defnyddio Cloud Spanner yn lle datrysiad cronfa ddata SQL traddodiadol

Yn yr amgylchedd traddodiadol cronfeydd data, pan fo'r amser ymateb ar gyfer ymholiad cronfa ddata yn nesáu neu hyd yn oed yn fwy na'r trothwyon cais rhagnodedig (yn bennaf oherwydd cynnydd yn nifer y defnyddwyr a/neu geisiadau), mae sawl ffordd o leihau'r amser ymateb i lefelau derbyniol. Fodd bynnag, mae'r rhan fwyaf o'r atebion hyn yn cynnwys ymyrraeth â llaw.

Er enghraifft, y cam cyntaf i'w gymryd yw edrych ar y gosodiadau cronfa ddata amrywiol sy'n gysylltiedig â pherfformiad a'u tiwnio i gyd-fynd orau â phatrymau senario defnydd cymwysiadau. Os nad yw hyn yn ddigon, gallwch ddewis graddio'r gronfa ddata yn fertigol neu'n llorweddol.

Mae cynyddu cymhwysiad yn golygu diweddaru enghraifft y gweinydd, yn nodweddiadol trwy ychwanegu mwy o broseswyr / creiddiau, mwy o RAM, storio cyflymach, ac ati. Mae ychwanegu mwy o adnoddau caledwedd yn arwain at berfformiad cronfa ddata uwch, wedi'i fesur yn bennaf mewn trafodion yr eiliad, a hwyrni trafodion ar gyfer systemau OLTP. Systemau cronfa ddata perthynol (sy'n defnyddio dull aml-edau) fel graddfa MySQL yn dda yn fertigol.

Mae yna nifer o anfanteision i'r dull hwn, ond yr amlycaf yw maint mwyaf y gweinydd ar y farchnad. Unwaith y cyrhaeddir y terfyn Achosion Gweinyddwr mwyaf, dim ond un llwybr sydd ar ôl: graddfa allan.

Mae graddio allan yn ddull sy'n ychwanegu mwy o weinyddion at glwstwr i gynyddu perfformiad yn llinol yn ddelfrydol wrth i fwy o weinyddion gael eu hychwanegu. Mwyafrif traddodiadol nid yw systemau cronfa ddata yn graddio'n dda neu nid ydynt yn graddio o gwbl. Er enghraifft, gall MySQL ehangu ar gyfer gweithrediadau darllen trwy ychwanegu darllenwyr caethweision, ond ni allant raddfa ar gyfer gweithrediadau ysgrifennu.

Ar y llaw arall, oherwydd ei natur, gall Cloud Spanner raddfa'n llorweddol yn hawdd heb fawr o ymyrraeth.

Sylw llawn DBMS fel gwasanaeth rhaid eu gwerthuso o wahanol safbwyntiau. Fel sail, fe wnaethom gymryd y DBMS mwyaf poblogaidd yn y cwmwl - ar gyfer Google, GCP Cloud SQL ac ar gyfer Amazon, AWS RDS. Yn ein gwerthusiad, fe wnaethom ganolbwyntio ar y categorïau canlynol:

  • Mapio nodweddion: maint SQL, DDL, DML; llyfrgelloedd / cysylltwyr cysylltiad, cefnogaeth trafodion, ac ati.
  • Cymorth Datblygu: Rhwyddineb datblygu a phrofi.
  • Cymorth Gweinyddol: Rheoli achosion megis cynyddu/i lawr ac uwchraddio achosion; CLG, copi wrth gefn ac adfer; diogelwch/rheoli mynediad.

Defnyddio Cloud Spanner fel Ateb OLTP wedi'i alluogi gan OLAP

Er nad yw Google yn datgan yn benodol bod Cloud Spanner ar gyfer dadansoddeg, mae'n rhannu rhai priodoleddau â pheiriannau eraill fel Apache Impala & Kudu ac YugaByte sydd wedi'u cynllunio ar gyfer llwythi gwaith OLAP.

Hyd yn oed pe bai ond ychydig o siawns y byddai Cloud Spanner yn cynnwys injan HTAP (Hybrid Transactional/Analytic Processing) gyda set nodwedd OLAP (mwy neu lai) y gellir ei defnyddio, credwn y byddai'n haeddu ein sylw.

Gyda hynny mewn golwg, fe wnaethom edrych ar y categorïau canlynol:

  • Llwytho data, mynegeion a chymorth rhaniad
  • Perfformiad ymholiad a DML

2. Cwmwl Spanner Yn Gryno

Mae Google Spanner yn system rheoli cronfa ddata berthynol glystyrog (RDBMS) y mae Google yn ei defnyddio ar gyfer nifer o'i wasanaethau ei hun. Gwnaeth Google ei fod ar gael yn gyhoeddus i ddefnyddwyr Google Cloud Platform yn gynnar yn 2017.

Dyma rai o briodoleddau Cloud Spanner:

  • Clwstwr RDBMS Cyson iawn, Graddadwy: Yn defnyddio cydamseru amser caledwedd i sicrhau cysondeb data.
  • Cefnogaeth trafodion traws-bwrdd: Gall trafodion rychwantu tablau lluosog - nid o reidrwydd yn gyfyngedig i un tabl (yn wahanol i Apache HBase neu Apache Kudu).
  • Tablau Sylfaenol Seiliedig ar Allwedd: Rhaid i bob tabl gael Allwedd Sylfaenol (PC) datganedig, a all gynnwys colofnau tabl lluosog. Mae data tabl yn cael ei storio mewn trefn PC, sy'n ei gwneud yn effeithlon iawn ac yn gyflym ar gyfer chwiliadau PC. Yn yr un modd â systemau eraill sy'n seiliedig ar PC, rhaid modelu'r gweithrediad yn erbyn achosion defnydd rhagdybiedig er mwyn cyflawni perfformiad gorau.
  • Tablau rhesog: Gall tablau fod â dibyniaethau corfforol ar ei gilydd. Gellir paru rhesi bwrdd y plentyn â rhesi'r bwrdd rhiant. Mae'r dull hwn yn cyflymu'r broses o chwilio am berthnasoedd y gellir eu pennu ar y cam modelu data, er enghraifft, wrth osod cwsmeriaid a'u hanfonebau gyda'i gilydd.
  • Mynegeion: Mae Cloud Spanner yn cefnogi mynegeion eilaidd. Mae mynegai yn cynnwys colofnau wedi'u mynegeio a phob colofn PC. Yn ddewisol, gall y mynegai hefyd gynnwys colofnau eraill nad ydynt wedi'u mynegeio. Gellir rhyngddalennau'r mynegai gyda thabl y rhieni i gyflymu ymholiadau. Mae sawl cyfyngiad yn berthnasol i fynegeion, megis uchafswm nifer y colofnau ychwanegol y gellir eu storio mewn mynegai. Hefyd, efallai na fydd ymholiadau trwy fynegeion mor syml ag mewn RDBMS eraill.

“Dim ond mewn achosion prin y mae Cloud Spanner yn dewis mynegai yn awtomatig. Yn benodol, nid yw Cloud Spanner yn dewis mynegai eilaidd yn awtomatig os yw'r ymholiad yn gofyn am unrhyw golofnau nad ydynt wedi'u storio yn mynegai '.

  • Cytundeb Lefel Gwasanaeth (CLG): Defnydd rhanbarth unigol gyda 99,99% CLG; lleoliadau aml-ranbarth gyda 99,999% CLG. Er mai cytundeb yn unig yw'r CLG ei hun ac nid gwarant o unrhyw fath, credaf fod gan bobl Google rywfaint o ddata caled i wneud hawliad mor gryf. (I gyfeirio ato, mae 99,999% yn golygu 26,3 eiliad o amser segur gwasanaeth y mis.)
  • Mwy: https://cloud.google.com/spanner/

Nodyn: Mae prosiect Apache Tephra yn ychwanegu cefnogaeth trafodion uwch i Apache HBase (hefyd wedi'i weithredu bellach yn Apache Phoenix fel beta).

3. Ein gwerthusiad

Felly, rydym i gyd wedi darllen datganiadau Google am fanteision Cloud Spanner - graddio llorweddol bron yn ddiderfyn tra'n cynnal cysondeb uchel a CLG uchel iawn. Er bod yr honiadau hyn, beth bynnag, yn hynod o anodd eu cyflawni, nid eu gwrthbrofi oedd ein nod. Yn lle hynny, gadewch i ni ganolbwyntio ar bethau eraill y mae'r rhan fwyaf o ddefnyddwyr cronfa ddata yn poeni amdanynt: cydraddoldeb a defnyddioldeb.

Fe wnaethom raddio Cloud Spanner yn lle Sharded MySQL

Mae gan Google Cloud SQL ac Amazon AWS RDS, dau o'r cronfeydd data OLTP mwyaf poblogaidd yn y farchnad cwmwl, set nodwedd fawr iawn. Fodd bynnag, er mwyn graddio'r cronfeydd data hyn y tu hwnt i faint un nod, mae angen i chi rannu cymwysiadau. Mae'r dull hwn yn creu cymhlethdod ychwanegol ar gyfer ceisiadau a gweinyddu. Gwnaethom edrych ar sut mae Spanner yn cyd-fynd â'r senario o gyfuno darnau lluosog mewn un achos a pha nodweddion (os o gwbl) y gallai fod angen eu haberthu.

Cefnogaeth i SQL, DML a DDL, yn ogystal â'r cysylltydd a llyfrgelloedd?

Yn gyntaf, wrth ddechrau gydag unrhyw gronfa ddata, mae angen i chi greu model data. Os ydych chi'n meddwl y gallwch chi gysylltu JDBC Spanner â'ch hoff declyn SQL, fe welwch y gallwch chi ymholi eich data ag ef, ond ni allwch ei ddefnyddio i greu tabl neu ddiweddariad (DDL) nac unrhyw fewnosod / diweddaru / dileu gweithrediadau (DML). Nid yw JDBC swyddogol Google yn cefnogi'r naill na'r llall.

msgstr "Nid yw gyrwyr yn cynnal datganiadau DML neu DDL ar hyn o bryd."
Dogfennaeth Spanner

Nid yw'r sefyllfa'n well gyda chonsol GCP - dim ond ymholiadau SELECT y gallwch chi eu hanfon. Yn ffodus mae yna yrrwr JDBC gyda chefnogaeth DML a DDL gan y gymuned gan gynnwys trafodion github.com/olavloite/spanner-jdbc. Er bod y gyrrwr hwn yn hynod ddefnyddiol, mae absenoldeb gyrrwr JDBC Google ei hun yn syndod. Yn ffodus, mae Google yn cynnig cefnogaeth llyfrgell cleientiaid eithaf eang (yn seiliedig ar gRPC): C#, Go, Java, node.js, PHP, Python, a Ruby.

Mae'r defnydd bron yn orfodol o APIs arferol Cloud Spanner (oherwydd diffyg DDL a DML yn JDBC) yn arwain at rai cyfyngiadau ar gyfer meysydd cod cysylltiedig megis cronni cysylltiadau neu fframweithiau rhwymo cronfa ddata (fel Spring MVC). Yn gyffredinol, wrth ddefnyddio JDBC, rydych chi'n rhydd i ddewis eich hoff bwll cysylltiad (ee HikariCP, DBCP, C3PO, ac ati) sy'n cael ei brofi ac sy'n gweithio'n dda. Yn achos APIs Spanner arferol, mae'n rhaid i ni ddibynnu ar fframweithiau/rhwymo/cronfeydd sesiynau yr ydym wedi'u creu ein hunain.

Mae'r dyluniad sy'n canolbwyntio ar allwedd sylfaenol (PC) yn caniatáu i Cloud Spanner fod yn gyflym iawn wrth gyrchu data trwy'r PC, ond mae hefyd yn cyflwyno rhai materion ymholiad.

  • Ni allwch ddiweddaru gwerth allwedd gynradd; Yn gyntaf rhaid i chi ddileu'r cofnod PC gwreiddiol a'i ail-osod gyda'r gwerth newydd. (Mae hyn yn debyg i beiriannau cronfa ddata/storio cyfrifiaduron personol eraill.)
  • Mae'n rhaid i unrhyw DDIWEDDARAF a datganiadau DILEU nodi'r PC yn y BLE, felly, ni all fod yn wag DILEU pob datganiad - rhaid cael subquery bob amser, er enghraifft: DIWEDDARIAD xxx LLE id FEWN (DEWIS id O dabl 1)
  • Diffyg opsiwn auto-increment neu rywbeth tebyg sy'n gosod y dilyniant ar gyfer y maes PC. Er mwyn i hyn weithio, rhaid creu'r gwerth cyfatebol ar ochr y cais.

Mynegeion eilaidd?

Mae gan Google Cloud Spanner gefnogaeth fewnol ar gyfer mynegeion eilaidd. Mae hon yn nodwedd braf iawn nad yw bob amser yn bresennol mewn technolegau eraill. Ar hyn o bryd nid yw Apache Kudu yn cefnogi mynegeion uwchradd o gwbl, ac nid yw Apache HBase yn cefnogi mynegeion yn uniongyrchol, ond gall eu hychwanegu trwy Apache Phoenix.

Gellir modelu mynegeion yn Kudu a HBase fel tabl ar wahân gyda chyfansoddiad gwahanol o allweddi cynradd, ond rhaid i atomigedd y gweithrediadau a gyflawnir ar y bwrdd rhiant a thablau mynegai cysylltiedig gael eu perfformio ar lefel y cais ac nid yw'n ddibwys i'w weithredu'n gywir.

Fel y crybwyllwyd yn adolygiad Cloud Spanner, gall ei fynegeion fod yn wahanol i fynegeion MySQL. Felly, rhaid cymryd gofal arbennig wrth adeiladu ymholiadau a phroffilio i sicrhau bod y mynegai cywir yn cael ei ddefnyddio lle bo angen.

Cynrychiolaeth?

Gwrthrych poblogaidd a defnyddiol iawn mewn cronfa ddata yw golygfeydd. Gallant fod yn ddefnyddiol ar gyfer nifer fawr o achosion defnydd; fy nau ffefryn yw'r haen tynnu rhesymegol a'r haen diogelwch. Yn anffodus NID yw Cloud Spanner yn cefnogi golygfeydd. Fodd bynnag, dim ond yn rhannol y mae hyn yn ein cyfyngu, gan nad oes unrhyw ronynnedd lefel colofn ar gyfer caniatadau mynediad lle gall golygfeydd fod yn ateb derbyniol.

Gweler dogfennaeth Cloud Spanner am adran sy'n manylu ar gwotâu a therfynau (sbaner/cwotâu), mae un yn benodol a all fod yn broblematig ar gyfer rhai cymwysiadau: mae gan Cloud Spanner allan o'r bocs uchafswm o 100 o gronfeydd data fesul achos. Yn amlwg, gall hyn fod yn rhwystr mawr i gronfa ddata sydd wedi'i chynllunio i raddfa i dros 100 o gronfeydd data. Yn ffodus, ar ôl siarad â'n cynrychiolydd technegol Google, fe wnaethom ddarganfod y gellir cynyddu'r terfyn hwn i bron unrhyw werth trwy Gymorth Google.

Cefnogaeth datblygu?

Mae Cloud Spanner yn cynnig cefnogaeth iaith raglennu eithaf gweddus ar gyfer gweithio gyda'i API. Mae'r llyfrgelloedd a gefnogir yn swyddogol yn ardal C #, Go, Java, node.js, PHP, Python, a Ruby. Mae'r ddogfennaeth yn weddol fanwl, ond fel gyda thechnolegau blaengar eraill, mae'r gymuned yn eithaf bach o'i gymharu â'r technolegau cronfa ddata mwyaf poblogaidd, a all arwain at dreulio mwy o amser ar achosion neu broblemau defnydd llai cyffredin.

Felly beth am gymorth datblygu lleol?

Nid ydym wedi dod o hyd i ffordd i greu enghraifft Cloud Spanner ar y safle. Yr agosaf a gawsom yw delwedd Docker Chwilod Duonsy'n debyg mewn egwyddor, ond yn wahanol iawn yn ymarferol. Er enghraifft, gall CockroachDB ddefnyddio PostgreSQL JDBC. Gan y dylai'r amgylchedd datblygu fod mor agos â phosibl at yr amgylchedd cynhyrchu, nid yw Cloud Spanner yn ddelfrydol oherwydd mae angen i chi ddibynnu ar enghraifft Spanner llawn. Er mwyn arbed costau, gallwch ddewis enghraifft rhanbarth unigol.

Cymorth gweinyddol?

Mae creu enghraifft Cloud Spanner yn syml iawn. Does ond angen i chi ddewis rhwng creu enghraifft aml-ranbarth neu un rhanbarth, nodwch y rhanbarth(au) a nifer y nodau. Mewn llai na munud, bydd yr enghraifft ar waith.

Mae nifer o fetrigau elfennol ar gael yn uniongyrchol ar dudalen Spanner yn y Consol Google. Mae golygfeydd manylach ar gael trwy Stackdriver, lle gallwch hefyd osod trothwyon metrig a pholisïau rhybuddio.

Mynediad i adnoddau?

Mae MySQL yn cynnig gosodiadau caniatâd defnyddiwr/rôl helaeth a gronynnog iawn. Gallwch chi addasu mynediad i dabl penodol yn hawdd, neu hyd yn oed dim ond is-set o'i golofnau. Mae Cloud Spanner yn defnyddio teclyn Google Identity & Access Management (IAM), sydd ond yn caniatáu ichi osod polisïau a chaniatâd ar lefel uchel iawn. Yr opsiwn mwyaf gronynnog yw caniatâd lefel cronfa ddata, nad yw'n cyd-fynd â'r rhan fwyaf o achosion cynhyrchu. Mae'r cyfyngiad hwn yn eich gorfodi i ychwanegu mesurau diogelwch ychwanegol at eich cod, seilwaith, neu'r ddau i atal defnydd anawdurdodedig o adnoddau Spanner.

Copïau wrth gefn?

Yn syml, nid oes unrhyw gopïau wrth gefn yn Cloud Spanner. Er y gall gofynion CLG uchel Google sicrhau na fyddwch yn colli unrhyw ddata oherwydd methiannau caledwedd neu gronfa ddata, gwall dynol, diffygion cymhwyso, ac ati. Rydym i gyd yn gwybod y rheol: nid yw argaeledd uchel yn cymryd lle strategaeth wrth gefn smart. Ar hyn o bryd, yr unig ffordd i wneud copi wrth gefn o ddata yw ei ffrydio'n rhaglennol o'r gronfa ddata i amgylchedd storio ar wahân.

Perfformiad ymholiad?

Defnyddiwyd Yahoo! i lwytho data a phrofi ymholiadau. Meincnod Gwasanaethu Cwmwl. Mae'r tabl isod yn dangos llwyth gwaith B YCSB gyda chymhareb darllen i 95% o 5%.

Google Cloud Spanner: Da, Drwg, Hyll

* Cafodd y prawf llwyth ei redeg ar Beiriant Cyfrifiadurol n1-safonol-32 (CE) (32 vCPUs, cof 120 GB) ac ni fu'r enghraifft prawf erioed yn dagfa yn y profion.
** Uchafswm nifer yr edafedd mewn un achos YCSB yw 400. Yn gyfan gwbl, bu'n rhaid rhedeg chwe achos cyfochrog o brofion YCSB i gael cyfanswm o 2400 o edau.

Gan edrych ar y canlyniadau meincnod, yn enwedig y cyfuniad o lwyth CPU a TPS, gallwn weld yn glir bod graddfeydd Cloud Spanner yn eithaf da. Mae'r llwyth mawr sy'n cael ei greu gan nifer fawr o edafedd yn cael ei wrthbwyso gan nifer fawr o nodau yn y clwstwr Cloud Spanner. Er bod yr hwyrni'n edrych yn eithaf uchel, yn enwedig wrth redeg ar 2400 o edafedd, efallai y bydd angen ailbrofi gyda 6 achos llai o'r injan gyfrifo i gael niferoedd mwy cywir. Bydd pob achos yn rhedeg un prawf YCSB yn lle un enghraifft CE fawr gyda 6 phrawf cyfochrog. Bydd hyn yn ei gwneud hi'n haws gwahaniaethu rhwng oedi wrth wneud cais Cloud Spanner ac oedi a ychwanegir gan y cysylltiad rhwydwaith rhwng Cloud Spanner a'r enghraifft CE sy'n rhedeg y prawf.

Sut mae Cloud Spanner yn perfformio fel OLAP?

Rhaniadu?

Mae rhannu data yn segmentau sy'n gorfforol a/neu'n rhesymegol annibynnol, a elwir yn rhaniadau, yn gysyniad poblogaidd iawn a geir yn y rhan fwyaf o beiriannau OLAP. Gall rhaniadau wella perfformiad ymholiad a chynaladwyedd cronfa ddata yn fawr. Byddai ymchwilio ymhellach i raniad yn erthygl(au) ar wahân, felly gadewch i ni sôn am bwysigrwydd cael cynllun rhaniadu ac isrannu. Mae'r gallu i rannu data yn rhaniadau a hyd yn oed ymhellach yn is-raniadau yn allweddol i berfformiad ymholiadau dadansoddol.

Nid yw Cloud Spanner yn cefnogi rhaniadau fel y cyfryw. Mae'n gwahanu data yn fewnol i'r hyn a elwir rhannu-s yn seiliedig ar ystodau allweddol cynradd. Gwneir y rhaniad yn awtomatig i gydbwyso'r llwyth ar y clwstwr Cloud Spanner. Nodwedd ddefnyddiol iawn o Cloud Spanner yw hollti llwyth sylfaenol bwrdd rhiant (tabl nad yw'n rhyngddalennog ag un arall). Mae Spanner yn canfod yn awtomatig a yw'n cynnwys rhannu data a ddarllenir yn amlach na data mewn eraill rhannu-ah, a gall benderfynu ar wahaniad pellach. Felly, gall mwy o nodau fod yn gysylltiedig â chais, sydd hefyd yn cynyddu trwybwn i bob pwrpas.

Llwytho data?

Mae'r dull Cloud Spanner ar gyfer swmp-ddata yr un peth ag ar gyfer llwytho i fyny yn rheolaidd. I gael y perfformiad mwyaf posibl, mae angen i chi ddilyn rhai canllawiau, gan gynnwys:

  • Trefnwch eich data yn ôl allwedd gynradd.
  • Rhannwch nhw gyda 10*nifer o nodau adrannau unigol.
  • Creu set o dasgau gweithiwr sy'n llwytho data ochr yn ochr.

Mae'r llwyth data hwn yn defnyddio holl nodau Cloud Spanner.

Fe wnaethom ddefnyddio llwyth gwaith A YCSB i gynhyrchu set ddata rhes 10M.

Google Cloud Spanner: Da, Drwg, Hyll

* Cafodd y prawf llwyth ei redeg ar yr injan gyfrifo n1-safonol-32 (32 vCPUs, cof 120 GB) ac ni fu'r enghraifft prawf erioed yn dagfa yn y profion.
** Ni argymhellir gosodiad 1 nod ar gyfer unrhyw lwyth gwaith cynhyrchu.

Fel y soniwyd uchod, mae Cloud Spanner yn prosesu holltau yn awtomatig yn dibynnu ar eu llwyth, felly mae'r canlyniadau'n gwella ar ôl sawl fersiwn olynol o'r prawf. Y canlyniadau a gyflwynir yma yw'r canlyniadau gorau a gawsom. O edrych ar y niferoedd uchod, gallwn weld sut mae Cloud Spanner yn graddio (wel) wrth i nifer y nodau yn y clwstwr gynyddu. Mae’r niferoedd sy’n sefyll allan yn hwyrni cyfartalog isel iawn, sy’n cyferbynnu â chanlyniadau llwythi gwaith cymysg (95% yn darllen a 5% yn ysgrifennu) fel y disgrifir yn yr adran uchod.

Graddio?

Mae cynyddu a lleihau nifer y nodau Cloud Spanner yn dasg un clic. Os ydych chi am lwytho data'n gyflym, efallai y byddwch am ystyried cynyddu'r enghraifft i'r uchafswm (yn ein hachos ni roedd yn 25 nod yn y rhanbarth US-DWYRAIN) ac yna lleihau nifer y nodau sy'n addas ar gyfer eich llwyth arferol ar ôl yr holl ddata yn y gronfa ddata , gan gadw'r terfyn o 2 TB/nod mewn cof.

Cawsom ein hatgoffa o'r cyfyngiad hwn hyd yn oed gyda chronfa ddata llawer llai. Ar ôl sawl rhediad prawf llwyth, roedd ein cronfa ddata tua 155 GB o faint, ac o'i raddio i lawr i enghraifft nod 1, cawsom y gwall canlynol:

Google Cloud Spanner: Da, Drwg, Hyll

Roeddem yn gallu lleihau o 25 i 2 achos, ond rydym yn sownd ar ddau nod.

Gellir awtomeiddio codi a lleihau nifer y nodau mewn clwstwr Cloud Spanner gan ddefnyddio'r API REST. Gall hyn fod yn arbennig o ddefnyddiol ar gyfer lleihau'r llwyth cynyddol ar y system yn ystod oriau prysur.

Perfformiad ymholiad OLAP?

Yn wreiddiol, roeddem yn bwriadu neilltuo cryn dipyn o amser i'n gwerthusiad o Spanner ar y rhan hon. Ar ôl ychydig o SELECT COUNTs, sylweddolom ar unwaith y byddai'r prawf yn fyr ac NA fyddai Spanner yn injan addas ar gyfer OLAP. Waeth beth fo nifer y nodau yn y clwstwr, cymerodd 10 i 55 eiliad ddewis nifer y rhesi mewn tabl rhes 60M. Hefyd, methodd unrhyw ymholiad a oedd yn gofyn am fwy o gof i storio canlyniadau canolradd gyda gwall OOM.

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

Mae rhai rhifau ar gyfer ymholiadau TPC-H i'w gweld yn erthygl Todd Lipcon nosql-kudu-spanner-sleidiau.html, sleidiau 42 a 43. Mae'r niferoedd hyn yn gyson â'n canlyniadau ni (yn anffodus).

Google Cloud Spanner: Da, Drwg, Hyll

4. Ein canfyddiadau

O ystyried cyflwr presennol nodweddion Cloud Spanner, mae'n anodd ei weld fel rhywbeth syml i gymryd lle datrysiad OLTP sy'n bodoli eisoes, yn enwedig pan fydd eich anghenion yn tyfu'n rhy fawr. Byddai'n cymryd cryn dipyn o amser i adeiladu datrysiad o amgylch diffygion Cloud Spanner.

Pan ddechreuon ni werthuso Cloud Spanner, roeddem yn disgwyl i'w nodweddion rheoli fod ar yr un lefel â, neu o leiaf heb fod ymhell oddi wrth, atebion Google SQL eraill. Ond cawsom ein synnu gan y diffyg llwyr o gopïau wrth gefn a rheolaeth gyfyngedig iawn ar fynediad at adnoddau. Heb sôn am ddim golygfeydd, dim amgylchedd datblygu lleol, dilyniannau heb eu cefnogi, JDBC heb gefnogaeth DML a DDL, ac ati.

Felly, ble i fynd i rywun sydd angen graddio cronfa ddata trafodion? Nid yw'n ymddangos bod un ateb ar y farchnad eto sy'n addas i bob achos defnydd. Mae yna lawer o atebion caeedig a ffynhonnell agored (a chrybwyllir rhai ohonynt yn yr erthygl hon), pob un â'i gryfderau a'i wendidau ei hun, ond nid oes yr un ohonynt yn cynnig SaaS gyda CLG 99,999% a lefel uchel o gysondeb. Os mai CLG uchel yw eich prif nod ac nad ydych chi'n dueddol o adeiladu'ch datrysiad eich hun ar gyfer cymylau lluosog, efallai mai Cloud Spanner yw'r ateb rydych chi'n edrych amdano. Ond dylech fod yn ymwybodol o'i holl gyfyngiadau.

A bod yn deg, dim ond yng ngwanwyn 2017 y rhyddhawyd Cloud Spanner i'r cyhoedd, felly mae'n rhesymol disgwyl y gallai rhai o'i ddiffygion presennol fynd i ffwrdd yn y pen draw (gobeithio), a phan fydd yn gwneud hynny, gallai fod yn newidiwr gêm. Wedi'r cyfan, nid prosiect ochr yn unig i Google yw Cloud Spanner. Mae Google yn ei ddefnyddio fel sail ar gyfer cynhyrchion Google eraill. A phan ddisodlodd Google Megastore yn Google Cloud Storage gyda Cloud Spanner yn ddiweddar, roedd yn caniatáu i Google Cloud Storage ddod yn gyson iawn ar gyfer rhestrau gwrthrychau ar raddfa fyd-eang (nad yw'n wir o hyd ar gyfer Amazon's S3).

Felly, mae gobaith o hyd ... gobeithio.

Dyna i gyd. Fel awdur yr erthygl, rydym hefyd yn parhau i obeithio, ond beth yw eich barn am hyn? Ysgrifennwch yn y sylwadau

Rydym yn gwahodd pawb i ymweld â'n gweminar rhad ac am ddim lle byddwn yn dweud wrthych yn fanwl am y cwrs "AWS ar gyfer Datblygwyr" oddi wrth OTUS.

Ffynhonnell: hab.com

Ychwanegu sylw