Na MongoDB e tšehetsa litšebelisano?
Lefatšeng tsa databases, transactions ke karolo ea bohlokoa ho netefatsa botšepehi le botsitso ba data. E lumella lits'ebetso tse ngata ho hlophisoa hore e be karolo e le 'ngoe e utloahalang ea mosebetsi e etsoang ka mokhoa o sa arohaneng. Le hoja ka nako e telele MongoDB e ne e tsejoa ka ho hloka tšehetso ea transaction, liphetolelong tsa morao-rao e kenyelelitse tsamaiso ea transaction e tšepisang ho tiea le ho tšepahala. Sehloohong sena, re tla hlahloba potso "Na MongoDB e tšehetsa litšebelisano?" 'me re tla sekaseka hore na ts'ebetso ena e ka tsoela batho ba ntlafatsang le basebelisi ba database ena e tsebahalang ea NoSQL joang.
Pele u kenella ka har'a ts'ehetso ea khoebo ea MongoDB, ho bohlokoa ho utloisisa hore na hantle transaction ke eng le melemo eo e fanang ka eona. Ts'ebetso e na le ts'ebetso e fapaneng, joalo ka lintho tse kenngoeng, lintlafatso, le ho hlakola, tse tlamehang ho etsoa ka mokhoa o ts'oanang le ka mokhoa oa atomo. Sena se bolela hore lits'ebetso tsohle tse ka har'a transaction li ka sebetsa ka katleho kapa ha li etsoe ho hang. Ho feta moo, litšebelisano li netefatsa hore liphetoho tse entsoeng ts'ebetsong li bonahala litšebelisanong tse ling feela ka mor'a hore khoebo e atlehe. Sena se tiisa hore data e lula e le boemong bo nepahetseng le bo tsitsitseng.
MongoDB e hlahisitse ts'ehetso ea molao bakeng sa litšebelisano tsa mofuta oa 4.0., e tšoaeang mohato oa bohlokoa oa ho iphetola ha eona e le polokelo ea boitsebiso. Karolo ena e ipapisitse le enjene ea polokelo e bitsoang WiredTiger, e fanang ka lisebelisoa tse hlokahalang bakeng sa ho sebetsana le litšebelisano. Ka sistimi ena e ncha, bahlahisi ba ka hlophisa lits'ebetso tse amanang le tsona hore e be litšebelisano 'me ba netefatse hore kaofela li sebetsa ka nepo kapa li khutlisetsoa morao ka botlalo ha ho ka ba le phoso. Sena se fokotsa haholo kotsi ea ho se lumellane kapa data e senyehileng lits'ebetsong tsa lichelete tse phahameng.
Ho bohlokoa ho hlokomela hore ts'ehetso ea transaction ea MongoDB ha e sebetse ka mokhoa o ikhethileng mme e tlameha ho etsoa ka mokhoa o hlakileng bakeng sa lits'ebetso tse hlokang ts'ebetso ena. Litšebelisano li ka sebelisoa katiso le ho arola maemo ka lihlopha, ho fana ka botsitso ba lefats'e tikolohong e ajoang. Leha ho le joalo, ho bohlokoa hape ho nahana ka tšusumetso eo ho hlahisa litšebelisano ho ka bang le eona ts'ebetsong ea database, kaha e ka ama scalability e otlolohileng le karabelo maemong a itseng.
1. Ho lekola bokhoni ba MongoDB ba ho ts'ehetsa lipapatso
Tlhahlobo ea bokhoni ba MongoDB ho ts'ehetsa litšebelisano Ke taba ea bohlokoa haholo bakeng sa ba hlokang sistimi e matla le e tšepahalang ea database. Le hoja liphetolelong tsa eona tsa pele MongoDB e ne e se na tšehetso ea tlhaho bakeng sa lik'hamphani tsa ACID (Atomicity, Consistency, Isolation le Durability), version 4.0 e hlahisitse tšobotsi ea ACID transactions. ditransekshene tsa litokomane tse ngata e ntlafalitseng haholo bokhoni ba MongoDB ba ho sebetsana le ts'ebetso ea transaction.
ea transaction ho MongoDB lumella bahlahisi ho etsa ts'ebetso ea ho bala le ho ngola data ka mokhoa oa atom, ho netefatsa hore lits'ebetso tsohle lia atleha kapa ha ho le e 'ngoe e atlehang. Sena se bohlokoa haholo-holo maemong ao ho 'ona ho hlokahalang hore ho be le litšebetso tse ngata, tse amanang, tseo bohle ba finyellang boemo ba katleho ka kakaretso.
Ke habohlokoa ho hopola hore tšehetso ea Litšebelisano ho MongoDB e ka ama ts'ebetso ea sistimi, haholo ha e etsa lits'ebetso tse ngata ka nako e le 'ngoe. Ka hona, ho bohlokoa ho ntlafatsa lipotso le ho rala schema ea database ka nepo ho netefatsa ts'ebetso e nepahetseng. Leha ho le joalo, ka kenyelletso ea litšebelisano tsa litokomane tse ngata ho MongoDB 4.0, hona joale ho ka khoneha ho nka monyetla oa melemo ea ho tsitsa ka holimo le bokhoni ba ho laola data ea transaction ho database e le 'ngoe.
2. Ho utloisisa mohopolo oa transactions ho databases
Ts'ebetso ea database ke mohopolo oa mantlha lefats'eng la taolo ea data. Ha e le hantle, transaction ke sehlopha sa ts'ebetso se tlamehang ho etsoa ka athomo, eona ho bolelang hore e tlameha ho etsoa ka botlalo kapa che ho hang. Ke hore, haeba opereishene efe kapa efe e hloleha, lits'ebetso tsohle tse entsoeng ka har'a transaction li tlameha ho khutlisoa.
Khopolo ea litšebelisano ke ea bohlokoa ka ho khetheha libakeng tseo basebelisi ba bangata ba ka fihlelang le ho etsa liphetoho ho data database ka nako e le 'ngoe. Sena se qoba mathata a kang ho bala ditshila (ha mosebelisi a bona lintlha tse fosahetseng tse so netefatsoang) kapa mongolo o ditshila (ha mosebelisi a etsa liphetoho tse tla khutlisetsoa morao ke mosebelisi e mong).
MongoDB ke sistimi ea taolo ea li-database NoSQL e tumme haholo ebile e sebelisoa haholo. Leha ho le joalo, mona ho tla potso: Na MongoDB e tšehetsa litšebelisano? Ho fihlela haufinyane tjena, litšebelisano tse felletseng tsa ACID li ne li sa tšehetsoe ho mofuta oa 3.6 le pejana. Leha ho le joalo, ho mofuta oa 4.0, MongoDB e hlahisitse tšehetso bakeng sa litšebelisano tsa litokomane tse ngata. Sena se bolela hore o ka hlophisa lits'ebetso tse ngata hore e be transaction e le 'ngoe, ka hona ho netefatsa hore data e tšepahala.
3. Phetoho ea MongoDB mabapi le bokhoni ba transaction
Pele o kenella ka har'a tlhahlobo ea , ho bohlokoa ho hlakisa hore na MongoDB e tšehetsa mofuta ona oa ts'ebetso kapa che. Ho theosa le lilemo, khaello ea ts'ehetso ea lehae bakeng sa litšebelisano e bile e 'ngoe ea mefokolo ea mantlha ea MongoDB. Leha ho le joalo, ha theknoloji ena e ntse e tsoela pele, MongoDB e ntse e kenya ts'ebetsong lintlafatso tse kholo karolong ena, e ntse e atamela haufi le tsamaiso e feletseng ea transaction.
Bokhoni ba ho etsa litšebelisano ho MongoDB bo ntlafalitsoe ka likhatiso tse 'maloa. Ho 4.0, MongoDB e ile ea hlahisa litšebelisano tsa litokomane tse ngata, ho fa ba ntlafatsang bokhoni ba ho etsa ts'ebetso ea liathomo tse ngata ka transaction e le 'ngoe.. Sena se bolela hore ts'ebetso eohle e teng ka har'a thekisetsano e phethiloe ka katleho kapa e khutlisetsoa morao ka botlalo haeba ts'ebetso efe kapa efe e hloleha. Sena se fana ka botsitso bo boholo le ho netefatsa botšepehi ba data maemong a rarahaneng.
Empa e ne e se ho fihlela mofuta oa MongoDB 4.2 moo bokhoni ba transaction bo fihletseng bokhoni ba bona bo felletseng. Ka kenyelletso ea litšebelisano tse ajoang, MongoDB e lumelletse ts'ebetso hore e etsoe litokomaneng le pokellong e fapaneng ho pholletsa le li-replica node tse ngata sehlopheng.. Sena se bohlokoa haholo lits'ebetsong tse phahameng tsa concurrency le libakeng tse ajoang moo ts'ebetso e tlamehang ho hokahanngoa lits'ebetsong tse ngata. libaka tsa phihlelloKa litšebelisano tse ajoang, bahlahisi ba ka etsa bonnete ba hore data e tsitsitse le ho tšoarella, esita le maemong a fumanehang haholo.
4. Melemo le mathata a ho sebelisa transactions MongoDB
Pele re ikakhela ka setotsoana ho tsona, ho bohlokoa ho utloisisa hore na sistimi ena ea polokelo ea litaba ea li tšehetsa. MongoDB e hlahisitse litšebelisano ka mofuta oa eona oa 4.0, e neng e le tsoelo-pele e kholo ha e bapisoa le ka liphetolelo tse fetileng. Basebelisi joale ba ka sebelisa ACID (atomicity, consistency, isolation, le durability) ho likopo tsa hau, ho fana ka tiiso ea botšepehi ba data le ho nolofalletsa ts'ebetso e rarahaneng ka ho etsa liketso tse ngata ho yuniti e le 'ngoe.
E 'ngoe ea melemo ea mantlha ea ho sebelisa litšebelisano ho MongoDB ke bokhoni ba ho netefatsa botšepehi ba data. Ts'ebetsong ea ACID, ekaba lits'ebetso tsohle li etsoa kapa ha ho le e 'ngoe e etsoang ho hang, ho bolelang hore haeba ts'ebetso e hloleha, liketso tsohle tse fetileng li tla etsolloa ka bo eona. Sena se thibela ho se lumellane ha data le ho netefatsa ho ts'oara ho boloka boitsebiso.
Ka lehlakoreng le leng, ho bohlokoa hape ho nahana ka mathata a ho sebelisa litšebelisano ho MongoDB. Litšebelisano li ka ama ts'ebetso ea database. ka lebaka la tlhokeho ya ho notlela mehlodi nakong ya ho phethahatsa. Sena se ka fella ka ho fokotseha ha ts'ebetso ea ho bala le ho ngola, haholo-holo maemong a nang le sephethephethe se phahameng. Ka mokhoa o ts'oanang, ts'ebeliso e sa nepahalang ea litšebelisano e ka lebisa mathateng a lichelete le nako e telele ea karabelo.
5. Lintlha tsa bohlokoa tse lokelang ho nahanoa pele u kenya tšebetsong litšebelisano ho MongoDB
Pele o kenya tšebetsong litšebelisano ho MongoDB, ho bohlokoa ho nahana ka lintlha tse 'maloa tsa bohlokoa tse ka amang ts'ebetso le bots'epehi ba data ea hau.
E 'ngoe ea lintlha tsa bohlokoa ka ho fetisisa tse lokelang ho eloa hloko ke mofuta oa MongoDB tseo u li sebelisang. Ho qala ka mofuta oa 4.0, MongoDB e ts'ehetsa phetiso ea litokomane tse ngata bakeng sa ts'ebetso ea ho bala le ho ngola ho li-replica sets. Leha ho le joalo, ho bohlokoa ho netefatsa hore u sebelisa mofuta o tšehetsoeng pele u qala ho romella.
Ntlha e 'ngoe e amehang ke mohlala oa data tseo u li sebelisang molemong oa hau. Hobane MongoDB ke database ea NoSQL, ho bohlokoa ho hlokomela hore litšebelisano ho MongoDB li sebetsa hantle ha u sebelisa mefuta ea data e nang le litokomane tse ngata tse amanang. Ho feta moo, ho etsa qeto ea likamano lipakeng tsa pokello le hore na data e tlameha ho nchafatsoa joang ke ea bohlokoa ho netefatsa ts'ebetso e ts'oanang lipakeng tsa litšebelisano.
6. Maano a khothalelitsoeng a ho fumana molemo ka ho fetisisa litšebelisanong tsa MongoDB
MongoDB ke setsi sa data NoSQL e 'nileng ea sebelisoa haholo bakeng sa scalability ea eona e phahameng le tshebetso. E 'ngoe ea lipotso tse botsoang khafetsa ke hore na MongoDB e ts'ehetsa litšebelisano. Le ha MongoDB e ne e sena ts'ehetso bakeng sa phetisetso ea litokomane tse ngata ho fihlela morao tjena, e se e na le bokhoni ba ho etsa litšebelisano tse fapaneng tsa liphetolelo tse fetang 4.0. Ena e bile ntlafatso e kholo bakeng sa lits'ebetso tse ngata tse hlokang ts'ebetso ea athomo le e tsitsitseng.
Ho fumana molemo ka ho fetisisa litšebelisanong tsa MongoDB, ho bohlokoa ho latela maano a itseng:
1. Hlalosa lits'ebetso tse hlokang ho etsoa: Ha se lits'ebetso tsohle tse lokelang ho ba tsa transaction. Hlalosa lits'ebetso tse hlokang ho etsoa ka ho felletseng le ka mokhoa o ts'oanang, joalo ka tse kenyelletsang liphetoho litokomaneng tse ngata. Sena se tla u lumella ho ba le taolo e ntle mabapi le ts'ebeliso ea litšebelisano 'me u qobe ho feta ha tsona ho sa hlokahaleng.
2. Sebelisa boemo bo loketseng ba ho koala: MongoDB e fana ka maemo a fapaneng a ho itšehla thajana, ho kenyeletsoa ho bala ntle le boitlamo, ho bala ka boitlamo, le snapshot. Khetha boemo bo loketseng ba ho itšehla thajana bakeng sa litlhoko tsa hau, u ela hloko ts'ebetso le litlhoko tsa ts'ebetso ea kopo ea hau. Hopola hore maemo a phahameng a ho itšehla thajana a ka ama ts'ebetso hampe.
3. Etsa litšebelisano tse sebetsang hantle: Ho bohlokoa ho rala litšebelisano tsa tsela e sebetsang ho ntlafatsa tshebetso. Qoba litšebelisano tse kenyelletsang palo e kholo ea litokomane kapa likoleke, kaha sena se ka ama ts'ebetso hampe. Hape, etsa bonnete ba hore litšebelisano li khutšoanyane ka hohle kamoo u ka khonang 'me u qobe ts'ebetso e sa hlokahaleng ka hare ho tsona.
7. Ntlafatso ea Ts'ebetso: Malebela a Sebetsang bakeng sa Liphetoho tsa MongoDB
Ho MongoDB, ts'ebetso ea ts'ebetso e bohlokoa ho netefatsa litšebelisano tse sebetsang hantle. Mona ke malebela a sebetsang a ho ntlafatsa ts'ebetso ea transaction ho MongoDB:
1. Khetha boemo bo nepahetseng ba insulation: MongoDB e ts'ehetsa maemo a 'maloa a ho itšehla thajana a khethollang boemo ba concurrency le ho tsitsana ha litšebelisano. Ho bohlokoa ho khetha boemo bo loketseng ba ho itšehla thajana ho leka-lekanya ts'ebetso le ts'ebetso ea data. Mohlala, haeba ho hlokahala chelete e ngata empa tumellano e se ntho e tlang pele, ho ka sebelisoa boemo ba ho itšehla thajana ba "read uncommitted". Ka lehlakoreng le leng, haeba ho tsitsa ho le bohlokoa, ho khothaletsoa boemo ba "serialisable" ba ho itšehla thajana.
2. Etsa moralo o sebetsang hantle: Moralo o nepahetseng oa schema oa data ho MongoDB o ka ba le tšusumetso e kholo ts'ebetsong ea transaction. Ha u rala schema ea hau, ho bohlokoa ho nahana ka mofuta oa lipotso tseo u li botsang khafetsa le ho netefatsa hore li-index tsa hau li hlalositsoe hantle. E boetse e khothaletsoa ho qoba lits'ebetso tsa data tse tebileng haholo, kaha sena se ka ama ts'ebetso ea transaction hampe.
3. Sebelisa indexing e loketseng: Indexing e nepahetseng ke senotlolo sa ho ntlafatsa ts'ebetso ea transaction ho MongoDB. Ho sebelisa li-index tse nepahetseng ho ka potlakisa lipotso le ho fokotsa mojaro oa seva. Ke mohopolo o motle ho khetholla lipotso tsa hau tse atileng haholo le ho theha li-index bakeng sa tsona. Ho bohlokoa hape ho beha leihlo boholo ba index ea hau, kaha li-index tse kholo haholo li ka ama ts'ebetso ea sistimi e mpe.
Ke 'na Sebastián Vidal, moenjiniere oa k'homphieutha ea chesehelang theknoloji le DIY. Ho feta moo, ke 'na moetsi oa tecnobits.com, moo ke arolelanang lithupelo ho etsa hore theknoloji e fumanehe le ho utloisisoa ke motho e mong le e mong.