Raws li lub tuam txhab uas muaj ntau yam huab-raws li POS kev daws teeb meem rau cov khw muag khoom, cov chaw noj mov, thiab cov tub lag luam hauv online thoob ntiaj teb, Lightspeed siv ntau hom kev sib txawv ntawm cov chaw khaws ntaub ntawv rau ntau yam kev lag luam, tshuaj xyuas, thiab kev tshawb nrhiav siv cov ntaub ntawv. Txhua qhov ntawm cov databases platforms muaj nws tus kheej lub zog thiab qhov tsis muaj zog. Yog li ntawd, thaum Google qhia Cloud Spanner rau kev ua lag luam - cov yam ntxwv zoo tsis pom nyob hauv lub ntiaj teb ntawm kev sib raug zoo databases, xws li zoo li tsis muaj kev txwv kab rov tav scalability thiab 99,999% kev pom zoo qib kev pabcuam (SLA) , Peb tsis tuaj yeem hla lub sijhawm kom muaj nws hauv peb txhais tes!
Txhawm rau muab cov ntsiab lus dav dav ntawm peb qhov kev paub dhau los nrog Cloud Spanner, nrog rau cov qauv ntsuas peb siv, peb yuav hais txog cov ncauj lus hauv qab no:
Peb cov txheej txheem ntsuas
Huab Spanner nyob rau hauv ib tug nutshell
Peb qhov kev ntsuam xyuas
Peb qhov kev tshawb pom
1. Peb cov qauv ntsuas
Ua ntej dhia mus rau qhov tshwj xeeb ntawm Cloud Spanner, nws qhov zoo sib xws thiab qhov sib txawv nrog lwm cov kev daws teeb meem ntawm kev ua lag luam, cia peb tham txog qhov tseem ceeb ntawm kev siv peb lub siab thaum xav txog qhov twg yuav xa Cloud Spanner hauv peb cov infrastructure:
Raws li kev hloov pauv rau (tiav) ib txwm siv SQL database daws teeb meem
Raws li kev daws teeb meem OLAP-enabled OLTP
Nco ntsoov: Kom yooj yim ntawm kev sib piv, kab lus no piv Cloud Spanner nrog MySQL variants ntawm GCP Cloud SQL thiab Amazon AWS RDS daws cov tsev neeg.
Siv Cloud Spanner ua ib qho kev hloov pauv rau ib txwm siv SQL database daws teeb meem
Hauv ib puag ncig tsoos databases, thaum lub sij hawm teb rau ib tug database query mus kom ze los yog txawm tshaj li predefined daim ntawv thov pib (feem ntau yog vim ib tug nce nyob rau hauv tus naj npawb ntawm cov neeg siv thiab / los yog thov), muaj ob peb txoj kev los txo lub sij hawm teb rau qib uas tau txais. Txawm li cas los xij, feem ntau ntawm cov kev daws teeb meem no suav nrog kev cuam tshuam ntawm phau ntawv.
Piv txwv li, thawj kauj ruam uas yuav tsum tau ua yog saib ntawm ntau yam kev ua haujlwm ntsig txog cov chaw khaws ntaub ntawv thiab kho lawv kom zoo tshaj plaws kev sib tw siv cov qauv siv scenario. Yog tias qhov no tsis txaus, koj tuaj yeem xaiv ntsuas cov ntaub ntawv vertically lossis horizontally.
Scaling up a application entailing update the server instance, feem ntau yog los ntawm kev ntxiv cov processors / cores ntau dua, ntau RAM, ceev ceev, thiab lwm yam. Ntxiv cov khoom siv kho vajtse ntau ntxiv ua rau muaj kev ua tau zoo ntawm cov ntaub ntawv, ntsuas feem ntau hauv kev lag luam ib ob, thiab kev lag luam latency rau OLTP systems. Relational database systems (uas siv ntau txoj xov zoo) xws li MySQL nplai zoo vertically.
Muaj ob peb qhov tsis zoo rau txoj hauv kev no, tab sis qhov pom tseeb tshaj plaws yog qhov siab tshaj plaws server loj ntawm kev ua lag luam. Thaum qhov loj tshaj plaws Server Instance txwv tau mus txog, tsuas muaj ib txoj hauv kev sab laug: teev tawm.
Scale-out yog ib txoj hauv kev uas ntxiv cov servers ntau dua rau ib pawg los ua kom muaj kev ua tau zoo linearly raws li ntau cov servers ntxiv. Feem coob tsoos database systems tsis scale zoo los yog tsis scale txhua. Piv txwv li, MySQL tuaj yeem ntsuas tawm rau kev nyeem los ntawm kev ntxiv qhev nyeem, tab sis nws tsis tuaj yeem ntsuas tawm rau kev sau.
Thaum Google tsis tau hais meej meej tias Huab Spanner yog rau kev tshuaj xyuas, nws qhia qee tus cwj pwm nrog lwm lub cav xws li Apache Impala & Kudu thiab YugaByte uas tau tsim los rau OLAP cov haujlwm ua haujlwm.
Txawm hais tias tsuas muaj lub caij nyoog me me uas Huab Spanner suav nrog HTAP (Hybrid Transactional/Analytic Processing) lub cav nrog (ntau dua lossis tsawg dua) siv tau OLAP teeb tsa, peb xav tias nws yuav zoo rau peb cov kev xav.
Nrog rau qhov ntawd hauv siab, peb tau saib ntawm cov pawg hauv qab no:
Google Spanner yog pawg tswj hwm kev sib raug zoo (RDBMS) uas Google siv rau ntau yam ntawm nws cov kev pabcuam. Google tau tshaj tawm rau cov neeg siv Google Cloud Platform thaum ntxov 2017.
Nov yog qee qhov ntawm Cloud Spanner tus cwj pwm:
Kev Ua Tau Zoo, Scalable RDBMS Cluster: Siv lub sijhawm kho vajtse synchronization los xyuas kom meej cov ntaub ntawv sib xws.
Kev them nyiaj yug hla rooj: Kev lag luam tuaj yeem hla ntau lub rooj - tsis tas yuav txwv rau ib lub rooj (tsis zoo li Apache HBase lossis Apache Kudu).
Thawj Cov Ntsiab Lus Tseem Ceeb: Txhua lub rooj yuav tsum muaj lub ntsiab lus tseem ceeb (PC), uas tuaj yeem muaj ntau kab lus. Tabular cov ntaub ntawv khaws cia hauv PC kev txiav txim, uas ua rau nws ua haujlwm tau zoo thiab nrawm rau kev tshawb nrhiav PC. Raws li nrog rau lwm cov txheej txheem PC-raws li, qhov kev siv yuav tsum tau ua qauv tiv thaiv kev siv ua ntej kom ua tiav kev ua tau zoo tshaj plaws.
Cov ntxhuav kab txaij: Cov ntxhuav tuaj yeem muaj lub cev nyob ntawm ib leeg. Cov kab ntawm tus me nyuam lub rooj tuaj yeem ua ke nrog cov kab ntawm niam txiv lub rooj. Txoj hauv kev no ua kom nrawm rau kev tshawb nrhiav kev sib raug zoo uas tuaj yeem txiav txim siab ntawm cov ntaub ntawv qauv, piv txwv li, thaum muab cov neeg siv khoom thiab lawv cov ntawv xa tuaj ua ke.
Indexs: Huab Spanner txhawb nqa qhov ntsuas thib ob. Ib qho Performance index muaj cov kab indexed thiab tag nrho cov kab PC. Optionally, qhov Performance index kuj tseem muaj lwm cov kab uas tsis yog indexed. Qhov ntsuas tau tuaj yeem cuam tshuam nrog cov lus niam txiv kom nrawm cov lus nug. Ntau qhov kev txwv siv rau qhov ntsuas ntsuas, xws li qhov siab tshaj plaws ntawm cov kab ntxiv uas tuaj yeem khaws cia hauv qhov ntsuas. Tsis tas li, cov lus nug los ntawm kev ntsuas yuav tsis ncaj nraim li hauv lwm RDBMS.
"Cloud Spanner xaiv qhov ntsuas tau tsuas yog nyob rau qee qhov tsis tshua muaj. Tshwj xeeb, Huab Spanner tsis cia li xaiv qhov ntsuas thib ob yog tias cov lus nug thov txhua kab uas tsis khaws cia hauv qhov ntsuas ".
Daim Ntawv Pom Zoo Qib Kev Pabcuam (SLA): Ib cheeb tsam xa tawm nrog 99,99% SLA; Kev xa tawm ntau thaj tsam nrog 99,999% SLA. Thaum SLA nws tus kheej tsuas yog kev pom zoo thiab tsis yog kev lees paub ntawm txhua yam, Kuv ntseeg tias Google cov neeg muaj qee cov ntaub ntawv nyuaj los ua qhov kev thov muaj zog. (Rau kev siv, 99,999% txhais tau tias 26,3 vib nas this ntawm kev pabcuam poob haujlwm ib hlis.)
Koj tsis tuaj yeem hloov kho tus nqi ntawm tus yuam sij tseem ceeb; Koj yuav tsum xub rho tawm qhov qub PC nkag thiab rov ntxig nws nrog tus nqi tshiab. (Qhov no zoo ib yam li lwm lub PC taw qhia cov ntaub ntawv / khaws cia xyaw.)
Ib qho kev hloov tshiab thiab DELETE cov lus yuav tsum qhia lub PC nyob rau hauv qhov twg, yog li ntawd, tsis tuaj yeem khoob DELETE tag nrho cov nqe lus - yuav tsum muaj ib qho lus nug, piv txwv li: HLOOV xxx qhov twg id IN (SELECT id FROM table1)
Tsis muaj qhov kev xaiv pib nce ntxiv lossis qee yam zoo sib xws uas teeb tsa cov kab ke rau lub PC. Txhawm rau ua qhov no, tus nqi sib thooj yuav tsum tau tsim rau ntawm daim ntawv thov sab.
Txheeb koj cov ntaub ntawv los ntawm tus yuam sij tseem ceeb.
Faib lawv los ntawm 10 *tus naj npawb ntawm cov nodes ib feem.
Tsim cov txheej txheem ntawm cov neeg ua haujlwm ua haujlwm uas thauj cov ntaub ntawv sib luag.
Cov ntaub ntawv no thauj khoom siv tag nrho Cloud Spanner nodes.
Peb siv A YCSB workload los tsim 10M kab dataset.
* Kev ntsuas kev thauj khoom tau khiav ntawm n1-txheej txheem-32 lub tshuab xam zauv (32 vCPUs, 120 GB nco) thiab qhov piv txwv ntawm qhov kev sim no yeej tsis muaj qhov cuam tshuam hauv kev sim.
** A 1 node teeb tsis pom zoo rau ib qho kev ua haujlwm ntau lawm.
Raws li tau hais los saum toj no, Huab Spanner cia li ua cov txheej txheem sib cais nyob ntawm lawv cov khoom thauj, yog li cov txiaj ntsig tau txhim kho tom qab ob peb sib law liag ntawm qhov kev xeem. Cov txiaj ntsig tau nthuav tawm ntawm no yog cov txiaj ntsig zoo tshaj plaws uas peb tau txais. Saib ntawm cov lej saum toj no, peb tuaj yeem pom tias huab Spanner ntsuas li cas (zoo) raws li tus naj npawb ntawm cov nodes hauv pawg nce. Cov naj npawb uas sawv tawm yog qhov nruab nrab qis qis heev, uas sib piv nrog cov txiaj ntsig los ntawm kev sib xyaw ua haujlwm (95% nyeem thiab 5% sau) raws li tau piav qhia hauv nqe lus saum toj no.
Scaling?
Kev nce thiab txo tus lej ntawm Cloud Spanner nodes yog ib txoj haujlwm nyem. Yog tias koj xav thauj cov ntaub ntawv sai sai, koj tuaj yeem xav txog kev txhawb nqa qhov piv txwv mus rau qhov siab tshaj plaws (hauv peb cov ntaub ntawv nws yog 25 nodes hauv thaj tsam US-EAST) thiab tom qab ntawd txo tus naj npawb ntawm cov nodes tsim nyog rau koj li qub load tom qab tag nrho cov ntaub ntawv. nyob rau hauv lub database, nco ntsoov 2 TB / node txwv.
Peb tau ceeb toom txog qhov txwv no txawm tias muaj cov ntaub ntawv me dua. Tom qab ob peb lub sijhawm ua haujlwm, peb cov ntaub ntawv muaj txog li 155 GB hauv qhov loj me, thiab thaum ntsuas qis rau 1 ntawm qhov piv txwv, peb tau txais qhov yuam kev hauv qab no:
Peb tuaj yeem ntsuas los ntawm 25 mus rau 2 zaus, tab sis peb tau daig ntawm ob lub pob.
Kev nce thiab txo tus naj npawb ntawm cov nodes hauv Cloud Spanner pawg tuaj yeem ua haujlwm siv REST API. Qhov no tuaj yeem muaj txiaj ntsig tshwj xeeb rau kev txo qis kev thauj khoom ntawm lub cev thaum lub sijhawm tsis khoom.
OLAP nug kev ua haujlwm?
Peb thawj zaug tau npaj los siv sijhawm ntau rau peb qhov kev ntsuam xyuas ntawm Spanner ntawm qhov no. Tom qab ob peb SELECT COUNTs, peb tam sim ntawd pom tau tias qhov kev xeem yuav luv luv thiab tias Spanner yuav TSIS yog lub cav tsim nyog rau OLAP. Txawm hais tias tus naj npawb ntawm cov nodes hauv pawg, tsuas yog xaiv tus lej ntawm kab hauv 10M kab lus coj 55 mus rau 60 vib nas this. Tsis tas li, cov lus nug uas xav tau ntau lub cim xeeb los khaws cov txiaj ntsig nruab nrab ua tsis tiav nrog OOM yuam kev.
SELECT COUNT(DISTINCT(field0)) FROM usertable; β (10M distinct values)-> SpoolingHashAggregateIterator ran out of memory during new row.