Mar a choimheadas tu a-steach do shùilean Cassandra gun a bhith a’ call dàta, seasmhachd agus creideamh ann an NoSQL

Mar a choimheadas tu a-steach do shùilean Cassandra gun a bhith a’ call dàta, seasmhachd agus creideamh ann an NoSQL

Tha iad ag ràdh gur fhiach a h-uile dad nam beatha feuchainn co-dhiù aon turas. Agus ma tha thu cleachdte ri bhith ag obair le DBMSan dàimheach, is fhiach eòlas fhaighinn air NoSQL ann an cleachdadh, an toiseach, co-dhiù airson leasachadh coitcheann. A-nis, mar thoradh air leasachadh luath an teicneòlais seo, tha mòran bheachdan connspaideach agus deasbadan teasachaidh air a ’chuspair seo, a tha gu sònraichte a’ brosnachadh ùidh.
Ma nì thu sgrùdadh air brìgh nan connspaidean sin uile, chì thu gu bheil iad ag èirigh air sgàth an dòigh-obrach ceàrr. Tha an fheadhainn a chleachdas stòran-dàta NoSQL dìreach far a bheil feum orra riaraichte agus a’ faighinn na buannachdan uile bhon fhuasgladh seo. Agus tha luchd-deuchainn a tha an urra ris an teicneòlas seo mar panacea far nach eil e iomchaidh idir air am briseadh-dùil, às deidh dhaibh neartan stòran-dàta dàimh a chall gun a bhith a’ faighinn buannachdan mòra.

Innsidh mi dhut mun eòlas againn ann a bhith a’ cur an gnìomh fuasgladh stèidhichte air an Cassandra DBMS: na bha againn ri aghaidh, mar a fhuair sinn a-mach à suidheachaidhean duilich, an robh e comasach dhuinn buannachd fhaighinn bho bhith a’ cleachdadh NoSQL agus far an robh againn ri oidhirpean / airgead a bharrachd a thasgadh .
Is e a’ chiad obair siostam a thogail a bhios a’ clàradh gairmean ann an seòrsa de stòradh.

Tha prionnsabal obrachadh an t-siostam mar a leanas. Tha an cuir a-steach a’ toirt a-steach faidhlichean le structar sònraichte a bheir cunntas air structar a’ ghairm. Bidh an tagradh an uairsin a’ dèanamh cinnteach gu bheil an structar seo air a stòradh anns na colbhan iomchaidh. Anns an àm ri teachd, thèid na gairmean sàbhalaidh a chleachdadh gus fiosrachadh a thaisbeanadh mu chaitheamh trafaic airson luchd-aontachaidh (cosgaisean, fiosan, eachdraidh cothromachaidh).

Mar a choimheadas tu a-steach do shùilean Cassandra gun a bhith a’ call dàta, seasmhachd agus creideamh ann an NoSQL

Tha e gu math soilleir carson a thagh iad Cassandra - tha i a’ sgrìobhadh mar ghunna-inneal, tha i furasta a scalladh, agus a’ fulang le lochdan.

Mar sin, is e seo an t-eòlas a thug dhuinn

Tha, chan e bròn-chluich a th’ ann an nód a dh’ fhàillig. Is e seo brìgh fulangas lochdan Cassandra. Ach faodaidh nód a bhith beò agus aig an aon àm a 'tòiseachadh a' fulang ann an coileanadh. Mar a thionndaidh e, tha seo sa bhad a 'toirt buaidh air coileanadh a' bhuidheann gu lèir.

Cha dìon Cassandra thu far an do shàbhail Oracle thu leis na cuingeadan aige. Agus mura do thuig ùghdar an tagraidh seo ro-làimh, chan eil an dùbailte a ràinig Cassandra nas miosa na an tè thùsail. Aon uair ‘s gu bheil e air a ruighinn, cuiridh sinn a-steach e.

Cha robh IB gu mòr a’ còrdadh ris an Cassandra an-asgaidh a-mach às a’ bhogsa: Chan eil clàradh ann de ghnìomhan luchd-cleachdaidh, gun eadar-dhealachadh chòraichean. Thathas a’ beachdachadh air fiosrachadh mu ghairmean mar dhàta pearsanta, a tha a’ ciallachadh gum feumar a h-uile oidhirp air iarraidh/atharrachadh ann an dòigh sam bith a bhith air a chlàradh le comas sgrùdadh às dèidh làimh. Cuideachd, feumaidh tu a bhith mothachail air an fheum air còraichean a sgaradh aig diofar ìrean airson diofar luchd-cleachdaidh. Tha diofar dhleastanasan, diofar dhleastanasan agus chomasan aig innleadair obrachaidh sìmplidh agus sàr rianadair as urrainn an inneal-iuchrach gu lèir a dhubhadh às gu saor. Às aonais an leithid de dh’ eadar-dhealachadh air còraichean-slighe, thig ceist mu luach agus ionracas an dàta sa bhad nas luaithe na an ìre cunbhalachd AON.

Cha tug sinn fa-near gu bheil feum aig gairmean an dà chuid air fìor mhion-sgrùdadh agus samplachadh bho àm gu àm airson grunn shuidheachaidhean. Leis gu bheil còir an uairsin na clàran taghte a dhubhadh às agus ath-sgrìobhadh (mar phàirt den obair, feumaidh sinn taic a thoirt don phròiseas ùrachadh dàta nuair a chaidh an dàta a-steach don lùb againn gu ceàrr), chan e Cassandra ar caraid an seo. Tha Cassandra coltach ri banca piggy - tha e goireasach rudan a chuir a-steach, ach chan urrainn dhut cunntadh ann.

Thachair sinn ri duilgheadas a’ gluasad dàta gu sònaichean deuchainn (5 nodan san deuchainn an aghaidh 20 anns a’ phrom). Anns a 'chùis seo, chan fhaodar an dump a chleachdadh.

An duilgheadas le bhith ag ùrachadh sgeama dàta tagradh a’ sgrìobhadh gu Cassandra. Ginidh gluasad air ais mòran chlachan-uaighe, a dh’ fhaodadh call cinneasachd adhbhrachadh ann an dòighean nach gabh a thuigsinn.. Tha Cassandra air a bharrrachadh airson clàradh, agus chan eil e a’ smaoineachadh mòran mus sgrìobh e. Tha obrachadh sam bith leis an dàta a th’ ann mar-thà na chlàradh cuideachd. Is e sin, le bhith a 'cur às do na rudan nach eil riatanach, bidh sinn dìreach a' toirt a-mach eadhon barrachd chlàran, agus chan eil ach cuid dhiubh air an comharrachadh le leacan-uaighe.

Ùineachan nuair a thèid an cur a-steach. Tha Cassandra brèagha anns a’ chlàradh, ach uaireannan faodaidh an t-sruth a tha a' tighinn a-steach dragh mòr a chur oirre. Bidh seo a’ tachairt nuair a thòisicheas an tagradh a’ cuairteachadh grunn chlàran nach gabh a chuir a-steach airson adhbhar air choireigin. Agus bidh feum againn air fìor DBA a bhios a’ cumail sùil air gc.log, siostam agus logaichean deasbaid airson ceistean slaodach, meatrach air teannadh a’ feitheamh.

Grunn ionadan dàta ann am brabhsair. Càite an leugh thu agus càite an sgrìobh thu?
Is dòcha air a roinn ann an leughadh agus sgrìobhadh? Agus ma tha, am bu chòir DC a bhith nas fhaisge air an iarrtas airson sgrìobhadh no leughadh? Agus nach tig sinn gu crìch le fìor eanchainn roinnte ma roghnaicheas sinn an ìre cunbhalachd ceàrr? Tha tòrr cheistean ann, tòrr shuidheachaidhean neo-aithnichte, cothroman a tha thu dha-rìribh ag iarraidh a bhith ag obair leotha.

Mar a cho-dhùin sinn

Gus casg a chuir air an nód bho bhith a’ dol fodha, chaidh SWAP a chiorramachadh. Agus a-nis, ma tha dìth cuimhne ann, bu chòir don nód a dhol sìos agus gun a bhith a’ cruthachadh stadan mòra gc.

Mar sin, chan eil sinn an urra ri loidsig san stòr-dàta tuilleadh. Tha luchd-leasachaidh thagraidhean gan ath-thrèanadh agus tha iad a’ tòiseachadh gu gnìomhach a’ gabhail ceumannan anns a’ chòd aca fhèin. Fìor mhath dealachadh soilleir de stòradh agus giollachd dàta.

Cheannaich sinn taic bho DataStax. Tha leasachadh Cassandra bogsaichte air stad mu thràth (bha an gealladh mu dheireadh sa Ghearran 2018). Aig an aon àm, tha Datastax a 'tabhann seirbheis air leth math agus àireamh mhòr de fhuasglaidhean atharraichte agus atharraichte airson fuasglaidhean IP a th' ann mar-thà.

Tha mi cuideachd airson a thoirt fa-near nach eil Cassandra gu math goireasach airson ceistean taghaidh. Gu dearbh, tha CQL na cheum mòr air adhart dha luchd-cleachdaidh (an taca ri Trift). Ach ma tha roinnean slàn agad a tha cleachdte ri leithid de cheangalaichean goireasach, sìoladh an-asgaidh le raon sam bith agus comasan optimization ceist, agus na roinnean sin ag obair gus gearanan is tubaistean fhuasgladh, tha am fuasgladh air Cassandra a’ coimhead nàimhdeil agus gòrach dhaibh. Agus thòisich sinn a 'co-dhùnadh ciamar a bu chòir ar co-obraichean samples a dhèanamh.

Bheachdaich sinn air dà roghainn. Anns a’ chiad roghainn, bidh sinn a’ sgrìobhadh fiosan chan ann a-mhàin ann an C*, ach cuideachd ann an stòr-dàta tasglainn Oracle. A-mhàin, eu-coltach ri C*, chan eil an stòr-dàta seo a’ gairm ach airson a’ mhìos a tha ann (doimhneachd stòraidh fòn gu leòr airson cùisean ath-lìonadh). An seo chunnaic sinn sa bhad an duilgheadas a leanas: ma sgrìobhas sinn gu sioncronach, bidh sinn a’ call a h-uile buannachd a tha aig C * co-cheangailte ri cuir a-steach luath; ma sgrìobhas sinn gu neo-chinnteach, chan eil gealltanas sam bith ann gun deach a h-uile gairm riatanach a-steach do Oracle idir. Bha aon rud a bharrachd ann, ach fear mòr: airson obrachadh tha an aon leasaiche PL/SQL eòlach fhathast, ie bidh sinn gu practaigeach a’ cur an gnìomh am pàtran “Facade”. Bidh sinn a’ cur an gnìomh uidheamachd a bhios a’ luchdachadh fiosan bho C *, a’ tarraing cuid de dhàta airson beairteas bho na clàran co-fhreagarrach ann an Oracle, a’ tighinn còmhla ris na sampallan a thig às agus a’ toirt dhuinn an toradh, a bhios sinn an uairsin a’ cleachdadh dòigh air choireigin (rolaig air ais, ath-aithris, mion-sgrùdadh, coimhead). Cons: tha am pròiseas gu math ioma-cheum, agus a bharrachd air an sin, chan eil eadar-aghaidh ann airson luchd-obrach obrachaidh.

Aig a 'cheann thall, shocraich sinn air an dàrna roghainn. Chaidh Apache Spark a chleachdadh gus sampall a dhèanamh bho dhiofar jars. Chaidh brìgh an uidheamachd a lughdachadh gu còd Java, a bhios, a ’cleachdadh na h-iuchraichean ainmichte (fo-sgrìobhaiche, ùine gairm - iuchraichean earrann), a’ tarraing a-mach dàta bho C *, a bharrachd air an dàta riatanach airson beairteas bho stòr-dàta sam bith eile. Às deidh sin bidh e gan ceangal mar chuimhne agus a’ taisbeanadh an toradh anns a’ chlàr a thig às. Tharraing sinn aghaidh lìn thairis air an sradag agus thionndaidh e a-mach gu robh e comasach a chleachdadh.

Mar a choimheadas tu a-steach do shùilean Cassandra gun a bhith a’ call dàta, seasmhachd agus creideamh ann an NoSQL

Nuair a dh’ fhuasglas sinn an duilgheadas a thaobh ùrachadh dàta deuchainn gnìomhachais, bheachdaich sinn a-rithist air grunn fhuasglaidhean. Bidh an dà chuid a’ gluasad tro Sstloader agus an roghainn an cruinneachadh anns an raon deuchainn a roinn ann an dà phàirt, gach fear mu seach a’ buntainn ris an aon bhuidheann leis an fhear adhartachaidh, agus mar sin air a stiùireadh leis. Nuair a chaidh an deuchainn ùrachadh, bhathas an dùil an iomlaid: tha am pàirt a bha ag obair anns an deuchainn air a ghlanadh agus air a thoirt a-steach don riochdachadh, agus am fear eile a ’tòiseachadh ag obair leis an dàta air leth. Ach, às deidh dhuinn smaoineachadh a-rithist, rinn sinn measadh nas reusanta air an dàta a b’ fhiach a ghluasad, agus thuig sinn gu bheil na fiosan iad fhèin nan eintiteas neo-chunbhalach airson deuchainnean, air an gineadh gu sgiobalta ma tha sin riatanach, agus gur e an seata dàta adhartachaidh aig nach eil luach sam bith airson a ghluasad chun bhuidheann. deuchainn. Tha grunn rudan stòraidh ann as fhiach gluasad, ach gu litearra tha iad sin nan dà bhòrd, agus chan eil iad gu math trom. Mar sin tha sinn Mar fhuasgladh, thàinig Spark gu teasairginn a-rithist, le cuideachadh a sgrìobh sinn agus thòisich sinn gu gnìomhach a 'cleachdadh sgriobt airson dàta a ghluasad eadar clàran, prom-test.

Tha am poileasaidh cleachdadh gnàthach againn a’ leigeil leinn a bhith ag obair às aonais rollbacks. Ron promo, tha ruith deuchainn èigneachail, far nach eil mearachd cho daor. Ma dh’ fhàilligeas, faodaidh tu an-còmhnaidh am beàrn a leigeil sìos agus an sgeama gu lèir a roiligeadh bhon toiseach.

Gus dèanamh cinnteach gum bi Cassandra ri fhaighinn gu leantainneach, feumaidh tu dba agus chan e a-mhàin e. Feumaidh a h-uile duine a tha ag obair leis an tagradh tuigsinn càite agus ciamar a choimheadas iad air an t-suidheachadh làithreach agus mar a lorgar duilgheadasan ann an deagh àm. Gus seo a dhèanamh, bidh sinn gu gnìomhach a’ cleachdadh DataStax OpsCenter (Rianachd agus sgrùdadh eallach obrach), metrics siostam Cassandra Driver (àireamh ùine airson sgrìobhadh gu C*, an àireamh de dh’ ùine-ama airson leughadh bho C*, an ùine as fhaide, msaa), a’ cumail sùil air an obair den tagradh fhèin, ag obair còmhla ri Cassandra.

Nuair a smaoinich sinn air a’ cheist a bh’ ann roimhe, thuig sinn far am faodadh ar prìomh chunnart a bhith. Is iad seo foirmean taisbeanaidh dàta a sheallas dàta bho ghrunn cheistean neo-eisimeileach chun stòradh. San dòigh seo gheibh sinn fiosrachadh gu math neo-chunbhalach. Ach bhiodh an duilgheadas seo a cheart cho iomchaidh nam biodh sinn ag obair le dìreach aon ionad dàta. Mar sin is e an rud as reusanta an seo, gu dearbh, gnìomh baidse a chruthachadh airson dàta a leughadh air tagradh treas-phàrtaidh, a nì cinnteach gum faighear dàta ann an aon ùine. A thaobh a bhith a’ roinn leughadh is sgrìobhadh a thaobh coileanadh, an seo chaidh stad a chuir oirnn leis a’ chunnart, le beagan call ceangail eadar na DCn, gum faodadh sinn crìoch a chuir air dà chlàr a tha gu tur neo-chunbhalach ri chèile.

Mar thoradh air an sin, airson a-nis stad aig an ìre cunbhalachd airson sgrìobhadh EACH_QUORUM, airson leughadh - LOCAL_QUORUM

Beachdan goirid agus co-dhùnaidhean

Gus measadh a dhèanamh air an fhuasgladh a thig às a thaobh taic obrachaidh agus cothroman airson tuilleadh leasachaidh, chuir sinn romhainn smaoineachadh air càite eile a ghabhadh leasachadh mar seo a chur an sàs.

Dìreach far an ialtag, an uairsin sgòradh dàta airson prògraman mar “Pàigh nuair a tha e goireasach” (bidh sinn a ’luchdachadh fiosrachadh a-steach gu C*, àireamhachadh a’ cleachdadh sgriobtaichean Spark), a ’toirt cunntas air tagraidhean le cruinneachadh a rèir sgìre, a’ stòradh dhleastanasan agus a ’tomhas còraichean-slighe luchd-cleachdaidh stèidhichte air an dreuchd matric.

Mar a chì thu, tha an stòr farsaing agus eadar-dhealaichte. Agus ma roghnaicheas sinn campa luchd-taic / luchd-dùbhlain NoSQL, an uairsin thèid sinn còmhla ris an luchd-taic, leis gun d’ fhuair sinn na buannachdan againn, agus dìreach far an robh sinn an dùil.

Tha eadhon an roghainn Cassandra a-mach às a 'bhogsa a' ceadachadh sgèileadh còmhnard ann an àm fìor, a 'fuasgladh gu tur gun phian air a' chùis mu bhith a 'meudachadh dàta san t-siostam. B’ urrainn dhuinn inneal làn luchdan a ghluasad airson a bhith ag obrachadh a-mach cruinneachaidhean gairm gu cuairt air leth, agus cuideachd sgeama an tagraidh agus an loidsig a sgaradh, a’ faighinn cuidhteas an droch chleachdadh ann a bhith a’ sgrìobhadh obraichean àbhaisteach agus nithean anns an stòr-dàta fhèin. Fhuair sinn an cothrom taghadh agus rèiteachadh, gus a luathachadh, dè na DCan air am bi sinn a’ dèanamh àireamhachadh agus dè an fheadhainn air am bi sinn a’ clàradh dàta, thug sinn àrachas dhuinn fhèin an aghaidh tubaistean an dà chuid nodan fa leth agus an DC gu h-iomlan.

Le bhith a’ cur ar n-ailtireachd an sàs ann am pròiseactan ùra, agus le beagan eòlais mu thràth, bu mhath leam sa bhad aire a thoirt don nuances a tha air am mìneachadh gu h-àrd, agus casg a chuir air cuid de mhearachdan, cuir às do oiseanan biorach nach gabhadh a sheachnadh an toiseach.

Mar eisimpleir, cùm sùil air na h-ùrachaidhean aig Cassandra ann an deagh àmoir bha mòran de na trioblaidean a fhuair sinn aithnichte mu thràth agus air an suidheachadh.

Na cuir an dà chuid an stòr-dàta fhèin agus Spark air na h-aon nodan (no roinneadh gu teann leis an ìre de chleachdadh stòrais a tha ceadaichte), oir faodaidh Spark barrachd OP ithe na bha dùil, agus gu sgiobalta gheibh sinn duilgheadas àireamh 1 bhon liosta againn.

Leasaich comas sgrùdaidh agus obrachaidh aig ìre deuchainn pròiseict. An toiseach, thoir aire cho mòr ‘s as urrainn do luchd-cleachdaidh ar fuasgladh, oir is e seo a bhios structar an stòr-dàta an urra aig a’ cheann thall.

Rothar an cuairteachadh a thig às grunn thursan airson optimization a dh’ fhaodadh a bhith ann. Tagh dè na raointean a ghabhas sreathachadh. Tuig dè na clàran a bharrachd a bu chòir dhuinn a dhèanamh gus an aire as ceart agus as fheàrr a ghabhail, agus an uairsin thoir seachad am fiosrachadh a tha a dhìth ma thèid iarraidh (mar eisimpleir, le bhith a’ gabhail ris gun urrainn dhuinn an aon dàta a stòradh ann an diofar chlàran, a’ toirt aire do dhiofar bhriseadh sìos a rèir diofar shlatan-tomhais, is urrainn dhuinn ùine CPU a shàbhaladh gu mòr airson iarrtasan leughaidh).

Chan eil e dona Dèan ullachadh sa bhad airson TTL a cheangal agus seann dàta a ghlanadh.

Mar a luchdaich thu sìos dàta bho Cassandra Bu chòir do loidsig an tagraidh obrachadh air prionnsapal FETCH, gus nach bi a h-uile sreath air a luchdachadh gu cuimhne aig an aon àm, ach air an taghadh ann an baidsean.

Tha e ciallach am pròiseact a ghluasad chun fhuasgladh a chaidh a mhìneachadh thoir sùil air fulangas locht an t-siostaim le bhith a’ dèanamh sreath de dheuchainnean tubaist, leithid call dàta ann an aon ionad dàta, ath-nuadhachadh dàta millte thar ùine sònraichte, sgaoileadh lìonra eadar ionadan dàta. Leigidh deuchainnean leithid seo chan e a-mhàin aon neach measadh a dhèanamh air na buannachdan agus na h-eas-bhuannachdan bhon ailtireachd a tha san amharc, ach bheir iad cuideachd deagh chleachdadh blàthachaidh dha na h-innleadairean a bhios gan giùlan, agus bidh an sgil a chaidh fhaighinn fada bho bhith iomarcach ma thèid fàilligidhean siostam ath-riochdachadh ann an cinneasachadh.

Ma dh’ obraicheas sinn le fiosrachadh èiginneach (leithid dàta airson cunntas, àireamhachadh fiachan ballrachd), is fhiach cuideachd aire a thoirt do dh’ innealan a lughdaicheas na cunnartan a thig bho fheartan an DBMS. Mar eisimpleir, cleachd an goireas nodesync (Datastax), an dèidh dhut ro-innleachd as fheàrr a leasachadh airson a chleachdadh ann an òrdugh air sgàth cunbhalachd, na cruthaich cus luchd air Cassandra agus cleachd e a-mhàin airson clàran sònraichte ann an ùine shònraichte.

Dè thachras do Cassandra às deidh sia mìosan de bheatha? San fharsaingeachd, chan eil duilgheadasan gun fhuasgladh. Cha do leig sinn cuideachd le droch thubaistean no call dàta. Bha, dh'fheumadh sinn smaoineachadh mu bhith a 'dèanamh dìolaidh airson cuid de dhuilgheadasan nach robh air èirigh roimhe, ach aig a' cheann thall cha do chuir seo dragh mòr air ar fuasgladh ailtireachd. Ma tha thu ag iarraidh agus nach eil eagal ort rudeigin ùr fheuchainn, agus aig an aon àm nach eil thu airson a bhith ro bhriseadh-dùil, an uairsin dèan deiseil airson nach eil dad an-asgaidh. Feumaidh tu tuigsinn, sgrùdadh a dhèanamh air na sgrìobhainnean agus an ràcan fa leth agad fhèin a chruinneachadh nas motha na anns an t-seann fhuasgladh dìleab, agus chan innis teòiridh sam bith dhut ro-làimh dè an ràcan a tha a’ feitheamh riut.

Source: www.habr.com

Cuir beachd ann