Yuav ua li cas saib rau Cassandra lub qhov muag tsis poob cov ntaub ntawv, kev ruaj ntseg thiab kev ntseeg hauv NoSQL

Yuav ua li cas saib rau Cassandra lub qhov muag tsis poob cov ntaub ntawv, kev ruaj ntseg thiab kev ntseeg hauv NoSQL

Lawv hais tias txhua yam hauv lub neej yog tsim nyog sim tsawg kawg ib zaug. Thiab yog tias koj tau siv los ua haujlwm nrog kev sib raug zoo DBMSs, ces nws tsim nyog tau txais kev paub nrog NoSQL hauv kev xyaum, ua ntej ntawm tag nrho cov, tsawg kawg rau kev loj hlob. Tam sim no, vim muaj kev txhim kho sai ntawm cov thev naus laus zis no, muaj ntau qhov kev xav tsis sib haum xeeb thiab kev sib cav sib cav txog cov ncauj lus no, uas tshwj xeeb tshaj yog ua rau muaj kev txaus siab.
Yog tias koj delve rau hauv lub ntsiab lus ntawm tag nrho cov kev tsis sib haum xeeb no, koj tuaj yeem pom tias lawv tshwm sim vim qhov tsis ncaj ncees lawm. Cov neeg siv NoSQL databases raws nraim qhov lawv xav tau yog txaus siab thiab tau txais tag nrho cov txiaj ntsig los ntawm cov tshuaj no. Thiab cov neeg sim uas tso siab rau cov thev naus laus zis no ua panacea qhov twg nws tsis tuaj yeem siv txhua qhov poob siab, tau poob lub zog ntawm kev sib raug zoo databases yam tsis tau txais txiaj ntsig tseem ceeb.

Kuv yuav qhia koj txog peb cov kev paub dhau los hauv kev siv cov kev daws teeb meem raws li Cassandra DBMS: peb yuav tsum tau ntsib li cas, peb tau tawm ntawm cov xwm txheej nyuaj li cas, seb peb puas tuaj yeem tau txais txiaj ntsig los ntawm kev siv NoSQL thiab qhov twg peb yuav tsum nqis peev ntxiv dag zog / nyiaj txiag .
Lub luag haujlwm thawj zaug yog tsim kom muaj lub kaw lus uas sau cov xov tooj hauv qee yam kev cia.

Lub hauv paus ntsiab lus ntawm kev khiav hauj lwm ntawm qhov system yog raws li nram no. Cov tswv yim suav nrog cov ntaub ntawv nrog cov qauv tshwj xeeb uas piav qhia cov qauv ntawm kev hu. Daim ntawv thov tom qab ntawd xyuas kom meej tias cov qauv no tau muab khaws cia rau hauv cov kab tsim nyog. Nyob rau hauv lub neej yav tom ntej, kev khaws cia hu yog siv los tso saib cov ntaub ntawv ntawm kev siv tsheb thauj mus los rau cov neeg siv khoom (tus nqi, hu, tshuav keeb kwm).

Yuav ua li cas saib rau Cassandra lub qhov muag tsis poob cov ntaub ntawv, kev ruaj ntseg thiab kev ntseeg hauv NoSQL

Nws yog qhov tseeb heev vim li cas lawv xaiv Cassandra - nws sau zoo li rab phom tshuab, yooj yim scalable, thiab ua txhaum.

Yog li, qhov no yog qhov kev paub tau muab rau peb

Yog, ib qho kev ua tsis tiav tsis yog qhov xwm txheej. Qhov no yog lub ntsiab lus ntawm Cassandra qhov kev zam txim txhaum. Tab sis ib lub node tuaj yeem ciaj sia thiab tib lub sijhawm pib raug kev txom nyem hauv kev ua haujlwm. Raws li nws tau muab tawm, qhov no tam sim ntawd cuam tshuam rau kev ua haujlwm ntawm tag nrho pawg.

Cassandra yuav tsis tiv thaiv koj qhov twg Oracle cawm koj nrog nws cov kev txwv. Thiab yog hais tias tus sau ntawm daim ntawv thov tsis to taub qhov no ua ntej, ces ob tug uas tuaj txog rau Cassandra yog tsis phem tshaj qhov qub. Thaum nws tuaj txog, peb yuav muab tso rau hauv.

IB tsis nyiam Cassandra dawb tawm ntawm lub thawv: Tsis muaj kev nkag los ntawm cov neeg siv kev ua, tsis muaj kev sib txawv ntawm txoj cai. Cov ntaub ntawv hais txog kev hu yog suav tias yog cov ntaub ntawv tus kheej, uas txhais tau hais tias txhua qhov kev sim thov / hloov nws hauv txhua txoj kev yuav tsum tau nkag mus nrog qhov ua tau ntawm kev tshuaj xyuas tom ntej. Tsis tas li ntawd, koj yuav tsum paub txog qhov yuav tsum tau cais cov cai ntawm qib sib txawv rau cov neeg siv sib txawv. Tus kws tshaj lij kev lag luam yooj yim thiab tus thawj tswj hwm tus thawj tswj hwm uas tuaj yeem tshem tawm tag nrho cov ntsiab lus tseem ceeb yog lub luag haujlwm sib txawv, lub luag haujlwm sib txawv, thiab kev muaj peev xwm. Yog tias tsis muaj qhov sib txawv ntawm cov cai nkag mus, tus nqi thiab kev ncaj ncees ntawm cov ntaub ntawv tam sim ntawd tuaj rau hauv nqe lus nug sai dua nrog rau txhua qib sib xws.

Peb tsis tau xav txog tias kev hu xov tooj yuav tsum muaj kev tshuaj ntsuam xyuas hnyav thiab ntsuas lub sijhawm rau ntau yam xwm txheej. Txij li thaum cov ntaub ntawv xaiv yuav tsum tau muab tshem tawm thiab rov sau dua (raws li ib feem ntawm txoj haujlwm, peb yuav tsum txhawb cov txheej txheem hloov kho cov ntaub ntawv thaum cov ntaub ntawv pib nkag mus rau peb lub voj tsis raug), Cassandra tsis yog peb tus phooj ywg ntawm no. Cassandra zoo li lub txhab nyiaj piggy - nws yooj yim los tso rau hauv, tab sis koj tsis tuaj yeem suav rau hauv nws.

Peb ntsib teeb meem hloov cov ntaub ntawv mus rau qhov chaw sim (5 nodes nyob rau hauv qhov kev xeem piv rau 20 nyob rau hauv lub prom). Hauv qhov no, lub pob tseg tsis tuaj yeem siv.

Qhov teeb meem nrog kev hloov kho cov ntaub ntawv schema ntawm daim ntawv thov sau rau Cassandra. Ib qho rollback yuav tsim kom muaj ntau qhov chaw tombstones, uas tuaj yeem ua rau cov khoom lag luam poob rau hauv txoj kev tsis tuaj yeem pom.. Cassandra yog optimized rau cov ntaubntawv povthawj siv, thiab tsis xav ntau npaum li cas ua ntej sau ntawv, txhua yam kev khiav hauj lwm nrog cov ntaub ntawv uas twb muaj lawm nyob rau hauv nws kuj yog ib tug kaw. Ntawd yog, los ntawm kev rho tawm qhov tsis tsim nyog, peb tsuas yog tsim cov ntaub ntawv ntau dua, thiab tsuas yog qee qhov ntawm lawv yuav raug cim nrog tombstones.

Timeouts thaum tso. Cassandra zoo nkauj nyob rau hauv cov ntaubntawv povthawj siv, tab sis Qee zaum cov dej ntws tuaj yeem ua rau nws nyuaj siab heev. Qhov no tshwm sim thaum daim ntawv thov pib voj voog nyob ib ncig ntawm ntau cov ntaub ntawv uas tsis tuaj yeem muab tso rau qee qhov laj thawj. Thiab peb yuav xav tau ib tus DBA tiag tiag uas yuav saib xyuas gc.log, qhov system thiab debug cav rau cov lus nug qeeb, kev ntsuas ntawm kev cog lus tseem tos.

Muaj ntau cov ntaub ntawv chaw nyob hauv ib pawg. Nyeem los ntawm qhov twg thiab sau qhov twg?
Tej zaum faib rau kev nyeem ntawv thiab sau ntawv? Thiab yog tias muaj, puas yuav tsum muaj DC ze rau daim ntawv thov kev sau ntawv lossis kev nyeem ntawv? Thiab peb yuav tsis xaus nrog lub hlwb sib cais tiag tiag yog tias peb xaiv qhov tsis ncaj ncees lawm theem? Muaj ntau cov lus nug, ntau qhov chaw tsis paub, muaj peev xwm uas koj xav tau tinker nrog.

Peb txiav txim siab li cas

Txhawm rau tiv thaiv cov node los ntawm sinking, SWAP tau ua tsis taus. Thiab tam sim no, yog tias tsis muaj lub cim xeeb, cov node yuav tsum mus thiab tsis tsim cov gc loj loj.

Yog li, peb tsis cia siab rau logic hauv database. Cov neeg tsim khoom siv tau rov qhia lawv tus kheej thiab tab tom pib ua haujlwm ceev faj hauv lawv tus kheej cov cai. Qhov zoo tshaj plaws kev sib cais ntawm cov ntaub ntawv khaws cia thiab ua tiav.

Peb yuav kev txhawb nqa los ntawm DataStax. Txoj kev loj hlob ntawm lub thawv Cassandra twb tau tso tseg (qhov kev cog lus zaum kawg yog thaum Lub Ob Hlis 2018). Nyob rau tib lub sijhawm, Datastax muaj cov kev pabcuam zoo heev thiab ntau cov kev hloov kho thiab hloov kho rau cov kev daws teeb meem IP uas twb muaj lawm.

Kuv kuj xav kom nco ntsoov tias Cassandra tsis yooj yim heev rau cov lus nug xaiv. Tau kawg, CQL yog ib kauj ruam loj rau cov neeg siv (piv rau Trift). Tab sis yog tias koj muaj tag nrho cov chaw haujlwm uas tau siv rau qhov yooj yim koom nrog, kev lim dej dawb los ntawm txhua qhov chaw thiab kev nug txog kev ua kom zoo dua qub, thiab cov chaw haujlwm no tau ua haujlwm los daws cov kev tsis txaus siab thiab xwm txheej, ces qhov kev daws teeb meem ntawm Cassandra zoo li ua siab phem thiab ruam rau lawv. Thiab peb pib txiav txim siab seb peb cov npoj yaig yuav tsum ua li cas.

Peb xav txog ob txoj kev xaiv, hauv thawj qhov kev xaiv, peb sau hu tsis yog hauv C * nkaus xwb, tab sis kuj tseem nyob hauv Oracle cov ntaub ntawv khaws tseg. Tsuas yog, tsis zoo li C *, qhov chaw khaws ntaub ntawv no tsuas yog hu rau lub hli tam sim no (tsawg hu rau qhov tob rau cov ntaub ntawv rov qab). Ntawm no peb tam sim ntawd pom cov teeb meem hauv qab no: yog tias peb sau synchronously, ces peb poob tag nrho cov txiaj ntsig ntawm C * cuam tshuam nrog nrawm nrawm; yog tias peb sau asynchronously, tsis muaj kev lees paub tias txhua qhov tsim nyog hu tau txais rau hauv Oracle txhua. Muaj ib qho ntxiv, tab sis ib qho loj: rau kev ua haujlwm tib yam paub PL / SQL Developer tseem nyob, piv txwv li peb xyaum siv tus qauv "Facade". Peb siv cov txheej txheem uas tshem tawm hu los ntawm C *, rub qee cov ntaub ntawv rau kev txhawb nqa los ntawm cov rooj sib tham hauv Oracle, koom nrog cov qauv uas tau tshwm sim thiab muab cov txiaj ntsig rau peb, uas peb siv qee yam (rov qab, rov ua dua, txheeb xyuas, qhuas). Cons: tus txheej txheem yog heev multi-kauj ruam, thiab tsis tas li ntawd, tsis muaj interface rau cov neeg ua hauj lwm ua hauj lwm.

Thaum kawg, peb txiav txim siab rau qhov kev xaiv thib ob. Apache Spark tau siv los ua piv txwv los ntawm cov thawv sib txawv. Lub ntsiab lus ntawm lub tshuab tau raug txo qis rau Java code, uas, siv cov yuam sij tshwj xeeb (tus neeg siv npe, lub sijhawm hu - ntu cov yuam sij), rub tawm cov ntaub ntawv los ntawm C *, nrog rau cov ntaub ntawv tsim nyog rau kev txhawb nqa los ntawm lwm cov ntaub ntawv. Tom qab ntawd nws koom nrog lawv hauv nws lub cim xeeb thiab nthuav tawm cov txiaj ntsig hauv lub rooj ua haujlwm. Peb kos ib lub ntsej muag lub ntsej muag hla lub txim thiab nws ua tau zoo heev.

Yuav ua li cas saib rau Cassandra lub qhov muag tsis poob cov ntaub ntawv, kev ruaj ntseg thiab kev ntseeg hauv NoSQL

Thaum daws qhov teeb meem ntawm kev hloov kho cov ntaub ntawv kuaj kev lag luam, peb rov xav txog ntau txoj kev daws teeb meem. Ob qho kev hloov ntawm Sstloader thiab cov kev xaiv ntawm kev faib cov pawg hauv thaj chaw sim ua ob ntu, txhua qhov sib txuas ua ke rau tib pawg nrog kev txhawb nqa, yog li tau siv los ntawm nws. Thaum hloov kho qhov kev xeem, nws tau npaj los sib pauv lawv: qhov uas ua haujlwm hauv qhov kev xeem tau raug tshem tawm thiab nkag mus rau hauv kev tsim khoom, thiab lwm qhov pib ua haujlwm nrog cov ntaub ntawv sib cais. Txawm li cas los xij, tom qab xav dua, peb muaj kev soj ntsuam ntau dua cov ntaub ntawv uas tsim nyog hloov pauv, thiab pom tau tias kev hu lawv tus kheej yog qhov tsis sib haum xeeb rau kev sim, sai sai yog tias tsim nyog, thiab nws yog cov ntaub ntawv tshaj tawm uas tsis muaj nuj nqis rau kev hloov mus rau lub xeem. Muaj ntau cov khoom khaws cia uas tsim nyog txav mus los, tab sis cov no yog ob peb lub rooj, thiab tsis hnyav heev. Yog li ntawd peb raws li kev daws teeb meem, Spark rov tuaj rau kev cawm, nrog kev pab los ntawm qhov peb tau sau thiab pib nquag siv tsab ntawv rau kev hloov cov ntaub ntawv ntawm cov ntxhuav, prom-test.

Peb txoj cai xa tawm tam sim no tso cai rau peb ua haujlwm yam tsis muaj rollbacks. Ua ntej qhov kev tshaj tawm, muaj qhov yuav tsum tau ua kev sim, qhov twg yuam kev tsis yog kim heev. Nyob rau hauv cov ntaub ntawv ntawm tsis ua hauj lwm, koj yeej ib txwm tso lub casespace thiab yob tag nrho cov tswv yim los ntawm qhov pib.

Txhawm rau kom muaj kev muaj nyob tas li ntawm Cassandra, koj xav tau dba thiab tsis yog nws xwb. Txhua tus neeg ua haujlwm nrog daim ntawv thov yuav tsum nkag siab qhov twg thiab yuav ua li cas saib qhov xwm txheej tam sim no thiab yuav kuaj xyuas cov teeb meem li cas raws sijhawm. Txhawm rau ua qhov no, peb nquag siv DataStax OpsCenter (Kev tswj hwm thiab saib xyuas cov haujlwm ua haujlwm), Cassandra Driver system metrics (tus naj npawb ntawm lub sijhawm sau ntawv rau C *, pes tsawg lub sijhawm nyeem ntawv los ntawm C *, siab tshaj latency, thiab lwm yam), saib xyuas kev ua haujlwm. ntawm daim ntawv thov nws tus kheej, ua haujlwm nrog Cassandra.

Thaum peb xav txog lo lus nug dhau los, peb paub tias qhov twg peb qhov kev pheej hmoo tseem ceeb yuav dag. Cov no yog cov ntaub ntawv tso saib cov ntaub ntawv uas tso saib cov ntaub ntawv los ntawm ntau cov lus nug ywj pheej mus rau qhov chaw cia. Li no peb tuaj yeem tau txais cov ntaub ntawv tsis sib xws. Tab sis qhov teeb meem no yuav yog ib qho tseem ceeb yog tias peb ua haujlwm nrog tsuas yog ib lub chaw khaws ntaub ntawv. Yog li qhov tsim nyog tshaj plaws ntawm no yog, ntawm chav kawm, los tsim cov haujlwm batch rau kev nyeem cov ntaub ntawv ntawm daim ntawv thov thib peb, uas yuav xyuas kom meej tias cov ntaub ntawv tau txais hauv ib lub sijhawm. Raws li kev faib rau kev nyeem ntawv thiab sau ntawv hauv cov ntsiab lus ntawm kev ua tau zoo, ntawm no peb tau nres los ntawm kev pheej hmoo tias nrog qee qhov kev sib txuas ntawm DCs, peb tuaj yeem xaus nrog ob pawg uas tsis sib haum nrog ib leeg.

Yog li ntawd, rau tam sim no nres ntawm qib sib xws rau kev sau ntawv EACH_QUORUM, rau kev nyeem ntawv - LOCAL_QUORUM

Luv impressions thiab xaus

Txhawm rau ntsuas qhov kev daws teeb meem los ntawm qhov pom ntawm kev ua haujlwm txhawb nqa thiab kev cia siab rau kev txhim kho ntxiv, peb txiav txim siab xav txog qhov twg ntxiv qhov kev txhim kho no tuaj yeem siv tau.

Txoj cai tawm ntawm lub bat, tom qab ntawd cov ntaub ntawv qhab nia rau cov kev pab cuam xws li "Them thaum nws yooj yim" (peb thauj cov ntaub ntawv rau hauv C *, suav nrog Spark scripts), suav rau kev thov nrog kev sib sau los ntawm cheeb tsam, khaws cov luag haujlwm thiab suav cov neeg siv cov cai raws li lub luag haujlwm. matrix.

Raws li koj tau pom, lub repertoire yog dav thiab varied. Thiab yog tias peb xaiv lub camp ntawm cov neeg txhawb nqa / cov neeg tawm tsam ntawm NoSQL, ces peb yuav koom nrog cov neeg txhawb nqa, vim peb tau txais peb qhov zoo, thiab raws nraim qhov peb xav tau.

Txawm tias qhov kev xaiv Cassandra tawm ntawm lub thawv tso cai rau kab rov tav scaling nyob rau hauv lub sij hawm, tsis mob kiag li daws qhov teeb meem ntawm nce cov ntaub ntawv nyob rau hauv lub system. Peb muaj peev xwm txav tau lub tshuab ua haujlwm siab heev rau kev suav cov xov tooj sib txuas rau hauv ib qho kev sib cais, thiab tseem cais cov ntawv thov schema thiab logic, tshem tawm qhov kev coj ua phem ntawm kev sau cov haujlwm thiab cov khoom hauv cov ntaub ntawv nws tus kheej. Peb tau txais lub sijhawm los xaiv thiab teeb tsa, kom nrawm, uas DCs peb yuav ua cov lej ntawm thiab cov twg peb yuav sau cov ntaub ntawv, peb tau pov hwm peb tus kheej tiv thaiv kev sib tsoo ntawm ob tus tib neeg thiab DC tag nrho.

Siv peb cov qauv tsim rau cov haujlwm tshiab, thiab twb muaj qee qhov kev paub dhau los, kuv xav tam sim ntawd coj mus rau hauv tus account lub nuances tau piav qhia saum toj no, thiab tiv thaiv qee qhov yuam kev, du tawm qee qhov ntse ntse uas tsis tuaj yeem zam thaum xub thawj.

Piv txwv li, taug qab Cassandra qhov hloov tshiab raws sijhawmvim hais tias ob peb ntawm cov teeb meem peb tau twb paub thiab kho.

Tsis txhob muab ob qho tib si database nws tus kheej thiab Spark rau tib lub nodes (los yog nruj me ntsis faib los ntawm tus nqi ntawm kev tso cai siv), txij li Spark tuaj yeem noj OP ntau dua li qhov xav tau, thiab peb yuav sai sai tau txais qhov teeb meem 1 los ntawm peb daim ntawv teev npe.

Txhim kho kev saib xyuas thiab kev ua haujlwm muaj peev xwm ntawm theem kev sim ua haujlwm. Thaum pib, coj mus rau hauv tus account kom ntau li ntau tau tag nrho cov neeg siv khoom muaj peev xwm ntawm peb cov kev daws teeb meem, vim qhov no yog dab tsi cov qauv database yuav kawg nyob ntawm.

Tig lub resulting Circuit Court ob peb zaug rau optimization tau. Xaiv cov teb twg tuaj yeem serialized. Nkag siab txog cov rooj ntxiv dab tsi peb yuav tsum ua kom zoo tshaj plaws thiab ua kom zoo rau hauv tus account, thiab tom qab ntawd muab cov ntaub ntawv xav tau raws li kev thov (piv txwv li, los ntawm kev xav tias peb tuaj yeem khaws cov ntaub ntawv tib yam hauv cov rooj sib txawv, suav nrog kev sib txawv raws li cov txheej txheem sib txawv, peb tuaj yeem txuag tau ntau lub sijhawm CPU rau kev nyeem ntawv thov).

Tsis yog phem Tam sim ntawd muab rau txuas TTL thiab ntxuav cov ntaub ntawv tsis tu ncua.

Thaum rub tawm cov ntaub ntawv los ntawm Cassandra Daim ntawv thov logic yuav tsum ua haujlwm ntawm FETCH hauv paus ntsiab lus, yog li tsis yog txhua kab raug thauj mus rau hauv lub cim xeeb ib zaug, tab sis raug xaiv hauv pawg.

Nws yog ib qho tsim nyog ua ntej hloov qhov project mus rau cov lus piav qhia tshawb xyuas qhov kev ua txhaum ntawm lub cev los ntawm kev ua cov kev xeem sib tsoo, xws li cov ntaub ntawv poob hauv ib lub chaw cov ntaub ntawv, rov qab kho cov ntaub ntawv puas nyob rau ib lub sijhawm, kev poob hauv lub network ntawm cov chaw zov me nyuam. Cov kev ntsuam xyuas no yuav tsis tsuas yog tso cai rau ib tus los ntsuas qhov zoo thiab qhov tsis zoo ntawm cov qauv tsim, tab sis kuj tseem yuav muab kev sov siab ua haujlwm zoo rau cov kws ua haujlwm ua haujlwm, thiab cov txuj ci tau txais yuav nyob deb ntawm qhov tsis txaus ntseeg yog tias qhov kev ua tsis tiav raug tsim tawm hauv kev tsim khoom.

Yog tias peb ua haujlwm nrog cov ntaub ntawv tseem ceeb (xws li cov ntaub ntawv rau kev them nqi, suav cov nuj nqis ntawm cov neeg siv khoom), ces nws tseem tsim nyog yuav tsum tau them nyiaj rau cov cuab yeej uas yuav txo qhov kev pheej hmoo tshwm sim vim cov yam ntxwv ntawm DBMS. Piv txwv li, siv nodesync utility (Datastax), tau tsim ib lub tswv yim zoo rau nws siv nyob rau hauv kev txiav txim. rau lub hom phiaj ntawm kev sib xws, tsis txhob tsim ib qho kev thauj khoom ntau dhau ntawm Cassandra thiab siv nws tsuas yog rau qee lub rooj hauv ib lub sijhawm.

Yuav ua li cas rau Cassandra tom qab rau lub hlis ntawm lub neej? Feem ntau, tsis muaj teeb meem daws teeb meem. Peb kuj tsis pub muaj xwm txheej loj lossis cov ntaub ntawv poob. Yog lawm, peb yuav tsum xav txog kev them nyiaj rau qee qhov teeb meem uas tsis tau tshwm sim yav dhau los, tab sis thaum kawg qhov no tsis zoo heev rau peb cov kev daws teeb meem. Yog tias koj xav tau thiab tsis ntshai sim qee yam tshiab, thiab tib lub sijhawm tsis xav ua kom poob siab, ces npaj txhij rau qhov tseeb tias tsis muaj dab tsi pub dawb. Koj yuav tsum to taub, delve rau hauv cov ntaub ntawv thiab sib sau ua ke koj tus kheej rake ntau dua li cov qub qub kev daws teeb meem, thiab tsis muaj txoj kev xav yuav qhia koj ua ntej uas rake tos koj.

Tau qhov twg los: www.hab.com

Ntxiv ib saib