Kusvika nguva pfupi yadarika, Odnoklassniki yakachengeta inosvika makumi mashanu TB yedata yakagadziriswa munguva chaiyo muSQL Server. Kune vhoriyamu yakadaro, hazvigoneke kupa nekukurumidza uye kwakavimbika, uye kunyange data centre kutadza-kushivirira kuwana uchishandisa SQL DBMS. Kazhinji, mumamiriro ezvinhu akadaro, imwe yeNoSQL storages inoshandiswa, asi hazvisi zvose zvinogona kuendeswa kuNoSQL: mamwe masangano anoda ACID transaction guarantees.
Izvi zvakatitungamirira kukushandiswa kweNewSQL kuchengetedza, kureva, DBMS inopa kukanganisa kushivirira, scalability uye kushanda kweNoSQL systems, asi panguva imwechete kuchengetedza ACID inovimbisa inozivikanwa kune classical systems. Kune mashoma anoshanda maindasitiri masisitimu eiyi kirasi nyowani, saka isu takaita yakadaro sisitimu isu tikaiisa mukushanda kwekutengesa.
Iyo inoshanda sei uye chii chakaitika - verenga pasi pekucheka.
Nhasi, vateereri vemwedzi weOdnoklassniki vanopfuura mamirioni makumi manomwe vakasiyana vashanyi. Isu
Tanga tichishandisa Cassandra kubvira 2010, kutanga neshanduro 0.6. Nhasi kune gumi nemaviri masumbu ari kushanda. Iyo inokurumidza cluster inoita zvinopfuura 4 miriyoni mashandiro pasekondi, uye zvitoro zvikuru 260 TB.
Nekudaro, aya ese akajairwa NoSQL masumbu anoshandiswa kuchengetedza
Kuti tigovane data paSQL Server node, takashandisa zvese zvakadzika uye zvakachinjika
Kutenda kusharding uye nekumhanyisa SQL:
- Isu hatishandise makiyi ekune dzimwe nyika zvipingamupinyi, sezvo kana sharding iyo ID ID inogona kunge iri pane imwe sevha.
- Isu hatishandise maitiro akachengetwa uye zvinokonzeresa nekuda kwekuwedzera mutoro paDBMS CPU.
- Isu hatishandise maJOIN nekuda kwezvose zviri pamusoro uye zvakawanda zvakaerekana kuverenga kubva kudhisiki.
- Kunze kwekutengeserana, isu tinoshandisa iyo Read Uncommitted yekuzviparadzanisa nevamwe nhanho kudzikisa deadlocks.
- Isu tinoita chete mapfupi kutengeserana (paavhareji ipfupi pane 100 ms).
- Isu hatishandise akawanda-mutsara UPDATE uye DELETE nekuda kwehuwandu hukuru hweakafa - isu tinovandudza rekodhi rimwe chete panguva.
- Isu tinogara tichiita mibvunzo chete pama indexes - mubvunzo une yakazara tafura scan plan yedu zvinoreva kuwandisa dhatabhesi uye kuita kuti itandike.
Matanho aya akatibvumira kudzvanya kunenge kwakanyanyisa kuita kunze kwemaseva eSQL. Zvisinei, zvinetso zvacho zvakaramba zvichiwanda. Ngativatarise.
Matambudziko neSQL
- Sezvo isu takashandisa-yakanyorwa sharding, kuwedzera shards nyowani kwakaitwa nemaoko nevatungamiriri. Nguva yese iyi, scalable data replicas yanga isiri kuita zvikumbiro.
- Sezvo huwandu hwemarekodhi mutafura huchikura, kumhanya kwekuisa nekugadzirisa kunodzikira; kana uchiwedzera indexes kune tafura iripo, iyo yekumhanyisa inodonha nechinhu; kusikwa uye kugadzira patsva kwe indexes kunoitika nekuderera.
- Kuve nehuwandu hudiki hweWindows yeSQL Server mukugadzira kunoita kuti manejimendi ezvivakwa zviome
Asi dambudziko guru ndere
kukanganisa kushivirira
Iyo yekirasi SQL server ine kutadza kushivirira kukanganisa. Ngatiti iwe une imwe chete dhatabhesi server, uye inokundikana kamwe chete makore matatu. Munguva iyi saiti iri pasi kwemaminitsi makumi maviri, izvo zvinogamuchirwa. Kana iwe uine maseva makumi matanhatu nemana, saka saiti iri pasi kamwe pamavhiki matatu. Uye kana uine 20 maseva, saka saiti haishande svondo rega rega. Iri idambudziko.
Chii chingaitwa kuvandudza kukanganisa kushivirira kweSQL server? Wikipedia inotikoka kuvaka
Izvi zvinoda boka remidziyo inodhura: kudzokorora kwakawanda, optical fiber, kuchengetwa kwakagovaniswa, uye kuiswa kwenzvimbo yekuchengetera hakushande zvakavimbika: nezve 10% yekuchinja inopera nekutadza kweiyo backup node sechitima kuseri kwenode huru.
Asi kukanganisa kukuru kweboka rakadaro rinowanikwa zvikuru ndeye zero kuwanikwa kana data data iyo iripo ikakundikana. Odnoklassniki ine mana data data, uye isu tinofanirwa kuve nechokwadi chekushanda muchiitiko chekutadza kwakakwana mune imwe yacho.
Nokuti izvi tinogona kushandisa
Matambudziko ose aya aida mhinduro huru, uye takatanga kuaongorora zvakadzama. Pano tinofanira kujairana neSQL Server inonyanya kuita - kutengeserana.
Kutengeserana kuri nyore
Ngatifungei nezve yakapfava kutengeserana, kubva pakuona kweyakashandiswa SQL programmer: kuwedzera mufananidzo kune album. Albums nemifananidzo zvinochengetwa mumahwendefa akasiyana. The album ine public photo counter. Zvadaro kutengeserana kwakadaro kunokamurwa kuita zvinotevera:
- Isu tinovhara iyo album nekiyi.
- Gadzira chinyorwa mutafura yemifananidzo.
- Kana iyo foto iine chimiro cheruzhinji, wobva wawedzera iyo yeruzhinji pikicha counter kune iyo albhamu, gadziridza rekodhi uye ita kutengeserana.
Kana mune pseudocode:
TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(β¦);
if (photo.status == PUBLIC ) {
album.incPublicPhotosCount();
}
album.update();
TX.commit();
Isu tinoona kuti yakajairika mamiriro ekutengeserana bhizinesi kuverenga data kubva kudhatabhesi kuenda kundangariro ye server yekushandisa, shandura chimwe chinhu uye chengetedza hutsva hutsva kudhatabhesi. Kazhinji mukutengeserana kwakadaro isu tinogadziridza akati wandei masangano, akati wandei matafura.
Paunenge uchiita kutengeserana, kugadziridzwa kwakafanana kweiyo data kubva kune imwe system inogona kuitika. Semuenzaniso, Antispam inogona kusarudza kuti mushandisi ane imwe nzira yekufungira uye saka mapikicha ese emushandisi haafanire kuve pachena, anofanirwa kutumirwa kune mwero, izvo zvinoreva kushandura photo.status kune imwe kukosha uye kudzima zviverengero zvinoenderana. Zviripachena, kana kuvhiya uku kukaitika pasina vimbiso yeatomicity yekushandisa uye kuparadzaniswa kwemakwikwi ekugadzirisa, semu.
Yakawanda yekodhi yakafanana, kugadzirisa akasiyana bhizinesi masangano mukati mekutengesa kumwe, yakanyorwa mukati mehupenyu hwese hweOdnoklassniki. Kubva pane ruzivo rwekutamira kuNoSQL kubva
Zvimwe, zvisinganyanyi kukosha, zvaidiwa zvaive:
- Kana iyo data data ikakundikana, zvese kuverenga nekunyora kune nyowani yekuchengetedza kunofanirwa kuwanikwa.
- Kuchengetedza ikozvino kukurumidza kukurumidza. Ndokunge, kana uchishanda neiyo nyowani repository, huwandu hwekodhi hunofanirwa kunge hwakafanana; hapafanirwe kuve nechikonzero chekuwedzera chero chinhu kune repository, gadzira algorithms ekugadzirisa kusawirirana, kuchengetedza yechipiri indexes, nezvimwe.
- Kumhanya kwenzvimbo yekuchengetera kutsva kwaifanira kunge kwakakwira zvakanyanya, zvese kana uchiverenga data uye kana uchigadzira kutengeserana, izvo zvainyatsoreva kuti mudzidzo yakaoma, yepasirese, asi inononoka mhinduro, senge, semuenzaniso, yaisashanda.
maviri-phase anoita . - Otomatiki pa-the-fly scaling.
- Kushandisa yakachipa maseva, pasina chikonzero chekutenga exotic hardware.
- Mikana yekuvandudzwa kwekuchengetedza nevagadziri vekambani. Mune mamwe mazwi, kukoshesa kwakapihwa kune varidzi kana kuvhurika sosi mhinduro, zviri nani muJava.
Sarudzo, zvisarudzo
Tichiongorora mhinduro dzinogoneka, takasvika kune mbiri sarudzo dzezvivakwa:
Yekutanga ndeyekutora chero SQL server uye kushandisa inodiwa kukanganisa kushivirira, scaling mechanism, failover cluster, kugadzirisa kusawirirana uye kugoverwa, yakavimbika uye nekukurumidza ACID transaction. Isu takatara iyi sarudzo seisina diki uye inoshanda zvakanyanya.
Yechipiri sarudzo ndeyekutora yakagadzirira-yakagadzirwa NoSQL chengetedzo ine yakamisikidzwa chiyero, failover cluster, kugadzirisa kusawirirana, uye kuita matranseksheni uye SQL iwe pachako. Pakutanga kuona, kunyange basa rekushandisa SQL, tisingatauri ACID transactions, rinoratidzika sebasa rinotora makore. Asi takazoona kuti iyo SQL ficha seti yatinoshandisa mukuita iri kure neANSI SQL se
Cassandra uye CQL
Saka, chii chinonakidza pamusoro peCassandra, chii chaainacho?
Chekutanga, pano iwe unogona kugadzira matafura anotsigira akasiyana emhando dzedata; unogona kuita SARUDZA kana UPDATE pakiyi yekutanga.
CREATE TABLE photos (id bigint KEY, owner bigint,β¦);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET β¦ WHERE id=?;
Kuita kuti replica data ifanane, Cassandra inoshandisa
Nzira iyo patinobata node nhatu togamuchira mhinduro kubva kune mbiri inodanwa
Imwe bhenefiti yeCassandra iBatchlog, chigadziriso chinova nechokwadi chekuti batch yeshanduko yaunoita inogona kushandiswa zvizere kana kusaiswa zvachose. Izvi zvinotibvumira kugadzirisa A muACID - atomicity kunze kwebhokisi.
Chinhu chepedyo chekutengeserana muCassandra ndizvo zvinonzi "
Zvatakanga tisina kuCassandra
Saka, taifanira kuita chaiyo ACID transactions muCassandra. Kushandisa izvo zvataigona kuita zviri nyore zvimwe zviviri zviri nyore maficha ekare eDBMS: inowirirana inokurumidza indexes, iyo yaizotitendera kuita sarudzo dzedata kwete chete nekiyi yekutanga, uye jenareta yenguva dzose ye monotonic auto-incrementing ID.
C* Imwe
Nokudaro DBMS itsva yakazvarwa C* Imwe, ine marudzi matatu emaseva node:
- Kuchengeta - (inenge) akajairwa Cassandra maseva ane basa rekuchengetedza data pamadhisiki emunharaunda. Sezvo mutoro uye vhoriyamu yedata ichikura, huwandu hwavo hunogona kuyerwa nyore kusvika makumi nemazana.
- Transaction coordinators - chengetedza kuitwa kwekutengeserana.
- Vatengi maseva ekushandisa anoshandisa bhizinesi mashandiro uye anotanga kutengeserana. Panogona kuva nezviuru zvevatengi vakadaro.
Masevha emhando dzese chikamu cheboka rakajairika, shandisa iyo yemukati Cassandra meseji protocol kutaurirana uye
Vatengi
Panzvimbo pevatyairi vakajairwa, Fat Client mode inoshandiswa. Node yakadaro haichengetedzi data, asi inogona kuita semurongi wekuita chikumbiro, kureva kuti, Mutengi pachake anoita semurongi wezvikumbiro zvake: inobvunza zvinyorwa zvekuchengetedza uye inogadzirisa kusawirirana. Izvi hazvisi kungovimbika uye nekukurumidza kupfuura mutyairi akajairwa, izvo zvinoda kutaurirana nemurongi ari kure, asi zvakare inobvumidza iwe kudzora kutapurirana kwezvikumbiro. Kunze kwekutengeserana kwakavhurika pane mutengi, zvikumbiro zvinotumirwa kune repositori. Kana mutengi akavhura kutengeserana, saka zvikumbiro zvese mukati mekutengesa zvinotumirwa kumurongi wekutengesa.
C * Imwe Transaction Coordinator
Murongi chimwe chinhu chatakashandisira C * Imwe kubva pakutanga. Iro rine basa rekutonga matransaction, makiyi, uye marongero anoitwa matransaction.
Pakutengeserana kwega kwega, murongi anogadzira chidhindo chenguva: chimwe nechimwe chinotevera kutengeserana ukuru pane chapfuura. Sezvo Cassandra's gakava rekugadzirisa system rakavakirwa pazvitambi zvenguva (zvezvinyorwa zviviri zvinopokana, iyo ine chitambi chenguva ichangoburwa ichionekwa seyazvino), kunetsana kunogara kuchigadziriswa mukufarira kutengeserana kunotevera. Saka takashandisa
Locks
Kuti tive nechokwadi chekuzviparadzanisa nevamwe, takasarudza kushandisa nzira yakapusa - yekukiya makiyi zvichienderana nekiyi yekutanga rekodhi. Mune mamwe mazwi, mukutengeserana, rekodhi inofanira kutanga yakavharwa, chete ipapo kuverenga, kugadziridzwa, uye kuchengetwa. Chete mushure mekuita kwakabudirira rekodhi inogona kuvhurwa kuitira kuti makwikwi ekutengeserana anogona kuishandisa.
Kushandisa kuvhara kwakadaro kuri nyore munzvimbo isina kugoverwa. Muchirongwa chakagovaniswa, pane maviri makuru sarudzo: shandisa kukiya kukiyiwa pane cluster, kana kugovera matransaction kuitira kuti matransaction anosanganisira rekodhi imwechete agare achishandirwa nemurongi mumwechete.
Sezvo kwatiri isu data yakatogoverwa pakati pemapoka ekutengeserana emunharaunda muSQL, zvakasarudzwa kugovera mapoka ekutengeserana emunharaunda kune varongi: murongi mumwe anoita kutengeserana kwese nezviratidzo kubva ku0 kusvika ku9, yechipiri - nezviratidzo kubva ku10 kusvika ku19, zvichingoenda zvakadaro. Nekuda kweizvozvo, imwe neimwe yezviitiko zvemurongi inova tenzi weboka rekutengesa.
Ipapo makiyi anogona kuitwa muchimiro cheBanal HashMap mundangariro yemurongi.
Coordinator kukundikana
Sezvo murongi mumwe chete anoshandira boka rekutengeserana chete, zvakakosha kukurumidza kuona chokwadi chekukundikana kwayo kuitira kuti kuedza kwechipiri kuita kutengeserana kuchapera. Kuti tiite izvi nekukurumidza uye zvakavimbika, takashandisa yakazara yakabatana quorum heartbeat protocol:
Imwe neimwe nzvimbo yedata inobata angangoita maviri coordinator node. Nguva nenguva, murongi mumwe nemumwe anotumira meseji yekurova kwemoyo kune vamwe varongi uye anovaudza nezvekushanda kwayo, pamwe neapi mameseji ekurohwa kwemoyo aakagamuchira kubva kune varongi vari musumbu kekupedzisira.
Vachigamuchira ruzivo rwakafanana kubva kune vamwe sechikamu chemashoko avo ekurohwa kwemoyo, murongi wega wega anozvisarudzira kuti ndeapi masumbu emasumbu ari kushanda uye asiri, achitungamirwa neiyo quorum musimboti: kana node X yakagamuchira ruzivo kubva kuruzhinji rwemanodhi musumbu nezve yakajairika. kugamuchira mameseji kubva node Y, ipapo, Y inoshanda. Uye zvakapesana, kana ruzhinji ruchingotaura rusipo mameseji kubva node Y, ipapo Y aramba. Zvinoda kuziva kuti kana quorum ichizivisa node X kuti haisisiri kugamuchira mameseji kubva kwairi, ipapo node X pachayo inozviona sekunge yakundikana.
Mharidzo yemoyo inotumirwa nepamusoro-soro, kanokwana makumi maviri pasekondi, ine nguva ye20 ms. MuJava, zvakaoma kuvimbisa mhinduro yekushandisa mukati me50 ms nekuda kwehurefu hwakafanana hwekumira kunokonzerwa nemuunganidzi wemarara. Isu takakwanisa kuwana iyi nguva yekupindura tichishandisa G50 muunganidzi wemarara, izvo zvinotitendera kudoma chinangwa chenguva yekumira kweGC. Nekudaro, dzimwe nguva, kashoma, muunganidzi anomira anopfuura 1 ms, izvo zvinogona kutungamirira mukuonekwa kwenhema. Kuti izvi zvisaitike, murongi haatauri kukundikana kwenode iri kure kana meseji yekutanga kurova kwemoyo kubva kwairi inonyangarika, chete kana akati wandei anyangarika mumutsara.Izvi ndizvo zvatakakwanisa kuona kutadza kweiyo coordinator node muna 50. ms.
Asi hazvina kukwana kukurumidza kunzwisisa kuti ndeipi node yakamira kushanda. Tinofanira kuita chimwe chinhu pamusoro peizvi.
Reservation
The classic scheme inosanganisira, kana chiitiko chekukundikana kukuru, kutanga sarudzo itsva uchishandisa imwe ye
Ngatitii tinoda kuita kutengeserana muboka 50. Ngatitarisei mberi kwechirongwa chekutsiviwa, ndiko kuti, iyo nodes ichaita kutengeserana muboka re50 kana chiitiko chekukundikana kwemurongi mukuru. Chinangwa chedu ndechekuchengetedza mashandiro ehurongwa muchiitiko chekutadza kwedata center. Ngationei kuti yekutanga kuchengetedza ichava node kubva kune imwe nzvimbo yedata, uye yechipiri chengetedzo ichava node kubva kune yechitatu. Ichi chirongwa chinosarudzwa kamwe chete uye hachichinje kusvikira iyo topology yesumbu yachinja, ndiko kuti, kusvikira node itsva dzapinda mairi (izvo zvinoitika kashoma). Maitiro ekusarudza tenzi mutsva anoshanda kana yekare akakundikana anogara ari akadai: yekutanga chengetedzo ichava tenzi anoshanda, uye kana yakamira kushanda, yechipiri chengetedzo ichava tenzi anoshanda.
Ichi chirongwa chakavimbika kupfuura algorithm yepasirese, sezvo kumisa tenzi mutsva zvakakwana kuona kutadza kweiyo yekare.
Asi vatengi vanozonzwisisa sei kuti ndeupi tenzi ari kushanda izvozvi? Hazvibviri kutumira ruzivo kuzviuru zvevatengi mu50 ms. Mamiriro ezvinhu anogoneka kana mutengi akatumira chikumbiro chekuvhura kutengeserana, asati aziva kuti tenzi uyu haasisiri kushanda, uye chikumbiro chichapera. Kudzivirira izvi kuti zvisaitike, vatengi vanofungidzira kutumira chikumbiro chekuvhura kutengeserana kune tenzi weboka uye ese ari maviri matura ake kamwechete, asi iye chete ari tenzi anoshanda panguva ino achapindura kuchikumbiro ichi. Mutengi achaita zvese zvinotevera kutaurirana mukati mekutengesa chete neanoshanda tenzi.
Backup masters nzvimbo yakagashira zvikumbiro zvekutengeserana zvisiri zvavo mumutsara wezvinoitika zvisati zvazvarwa, uko zvinochengetwa kwenguva yakati. Kana tenzi anoshanda akafa, tenzi mutsva anoita zvikumbiro zvekuvhura kutengeserana kubva pamutsetse wayo uye anopindura mutengi. Kana mutengi atovhura kutengeserana natenzi wekare, ipapo mhinduro yechipiri inoregeredzwa (uye, zviri pachena, kutengeserana kwakadaro hakuzopedzi uye kunodzokororwa nemutengi).
Kuti kutengeserana kunoshanda sei
Ngatitii mutengi akatumira chikumbiro kune murongi kuti avhure kutengeserana kune chakadaro nechakadaro chine kiyi yekutanga. Murongi anokiya chinhu ichi ochiisa mutafura yekukiya mundangariro. Kana zvichidikanwa, murongi anoverenga chikamu ichi kubva mudura uye anochengeta data rinobuda muchiitiko chekutengeserana mundangariro yemurongi.
Kana mutengi achida kushandura data mukutengeserana, inotumira chikumbiro kune murongi kuti agadzirise mubatanidzwa, uye murongi anoisa iyo data nyowani mutafura yemamiriro ekutengeserana mundangariro. Izvi zvinopedzisa kurekodha - hapana kurekodha kunoitwa kunzvimbo yekuchengetedza.
Kana mutengi achikumbira yake yakashandurwa data sechikamu cheanoshanda transaction, murongi anoita sezvizvi:
- kana iyo ID yatova mukutengeserana, ipapo data inotorwa kubva mundangariro;
- kana iyo ID isiri muchirangaridzo, ipapo iyo inoshaikwa data inoverengwa kubva munzvimbo dzekuchengetedza, yakabatanidzwa neaya atove mundangariro, uye mhedzisiro inopiwa kune mutengi.
Nokudaro, mutengi anogona kuverenga kuchinja kwayo, asi vamwe vatengi havaoni kuchinja uku, nokuti vanochengetwa chete muchiyeuchidzo chemurongi; havasati vari muCassandra nodes.
Kana mutengi achitumira chibvumirano, iyo nyika yaive mundangariro yesevhisi inochengetwa nemurongi mubatch rakadhindwa, uye inotumirwa sebheti rakarogwa kuCassandra kuchengetedza. Zvitoro zvinoita zvese zvinodiwa kuti ive nechokwadi chekuti pasuru iyi yaiswa atomu (yakazara), uye inodzosera mhinduro kumurongi, anoburitsa makiyi uye anosimbisa budiriro yekutengeserana kumutengi.
Uye kudzosera kumashure, murongi anongoda chete kusunungura ndangariro inogarwa nemamiriro ekutengeserana.
Nekuda kwekuvandudzwa kuri pamusoro, takaita misimboti yeACID:
- Atomicity. Ichi chivimbiso chekuti hapana kutengeserana kucharekodhwa muchidimbu muhurongwa; ingave yese mashandisirwo ayo achapedzwa, kana kuti hapana ichapedzwa. Isu tinonamatira kune iyi musimboti kuburikidza neyakagadzika batch muCassandra.
- Kuenderana. Imwe neimwe yakabudirira kutengeserana, netsanangudzo, inorekodha chete mibairo inoshanda. Kana, mushure mekuvhura kutengeserana uye kuita chikamu chekushanda, zvakaonekwa kuti mhedzisiro haina kukodzera, rollback inoitwa.
- Kuiswa kwemurwere kwake ega. Kana kutengeserana kuchiitwa, kutengeserana kwakafanana hakufanire kukanganisa mhedzisiro yayo. Makwikwi ekutengeserana akaiswa ega pachishandiswa pessimistic kiyi pamurongi. Zvekuverenga kunze kwekutengeserana, musimboti wekuzviparadzanisa unocherechedzwa padanho reRead Committed.
- Sustainability. Pasinei nezvinetso pamazinga akaderera-kudzima kwehurongwa, kutadza kwehardware-shanduko dzakaitwa nekutengeserana kwakapedzwa zvakabudirira dzinofanira kuramba dzakachengetedzwa kana mashandiro atangazve.
Kuverenga nendekisi
Ngatitorei tafura iri nyore:
CREATE TABLE photos (
id bigint primary key,
owner bigint,
modified timestamp,
β¦)
Iyo ine ID (kiyi yekutanga), muridzi uye zuva rekugadzirisa. Iwe unofanirwa kuita chikumbiro chakareruka - sarudza data pane muridzi nezuva rekuchinja "kwezuva rekupedzisira".
SELECT *
WHERE owner=?
AND modified>?
Kuti mubvunzo wakadaro ugadziriswe nekukurumidza, mune yekare SQL DBMS iwe unofanirwa kuvaka index nemakoramu (muridzi, akagadziridzwa). Tinogona kuita izvi zviri nyore, sezvo isu tava ne ACID garandi!
Indexes muC * Imwe
Kune sosi tafura ine mafoto umo rekodhi ID ndiyo kiyi yekutanga.
Kune index, C * Imwe inogadzira tafura nyowani iri kopi yepakutanga. Kiyi yacho yakafanana neiyo index expression, uye inosanganisirawo kiyi yekutanga rekodhi kubva patafura yekutangira:
Zvino mubvunzo we "muridzi wezuva rekupedzisira" unogona kunyorwa zvakare sesarudzo kubva kune imwe tafura:
SELECT * FROM i1_test
WHERE owner=?
AND modified>?
Iko kuenderana kweiyo data mune sosi tafura mafoto uye iyo index tafura i1 inochengetwa otomatiki nemurongi. Kubva pane data schema chete, kana shanduko yakagamuchirwa, murongi anogadzira uye anochengetedza shanduko kwete chete mutafura huru, asiwo mumakopi. Hapana zviito zvekuwedzera zvinoitwa patafura ye index, matanda haaverengeki, uye hapana makiyi anoshandiswa. Ndokunge, kuwedzera ma indexes kunodya zvinenge zvisina zviwanikwa uye hazvina kana mhedzisiro pakumhanya kwekushandisa shanduko.
Tichishandisa ACID, takakwanisa kushandisa SQL-like indexes. Iwo anowirirana, anokura, anokurumidza, anogona kuumbwa, uye akavakirwa muCQL yemubvunzo mutauro. Hapana shanduko kukodhi yekushandisa inodiwa kutsigira indexes. Zvese zviri nyore sezviri muSQL. Uye zvinonyanya kukosha, indexes haikanganisi kukurumidza kwekuita kwekugadzirisa kune yekutanga tafura yekutengeserana.
Chii chaitika
Isu takagadzira C * Imwe makore matatu apfuura uye takaitanga mukushanda kwekutengesa.
Chii chatakawana pakupedzisira? Ngationgororei izvi tichishandisa muenzaniso weiyo mafoto kugadzirisa uye kuchengetedza subsystem, imwe yemhando dzakakosha dze data musocial network. Hatisi kutaura nezvemitumbi yemifananidzo pachayo, asi nezve marudzi ese e-meta-ruzivo. Iye zvino Odnoklassniki ine mabhiriyoni makumi maviri ezvinyorwa zvakadaro, iyo system inoshandisa zviuru makumi masere zvekuverenga zvikumbiro pasekondi imwe neimwe, kusvika ku20 ACID transactions pasekondi yakabatana nekugadzirisa data.
Patakashandisa SQL ine replication factor = 1 (asi muRAID 10), iyo metainformation yemufananidzo yakachengetwa paboka rinowanikwa kwazvo remichina makumi matatu nembiri inoshandisa Microsoft SQL Server (pamwe negumi nerimwe backups). 32 maseva akagoverwawo kuchengetedza ma backups. Huwandu hwemotokari dzinodhura makumi mashanu. Panguva imwecheteyo, iyo sisitimu yakashanda pane yakatarwa mutoro, isina kuchengetwa.
Mushure mekutamira kuhurongwa hutsva, takagamuchira replication factor = 3 - kopi mune imwe neimwe data data. Iyo sisitimu ine 63 Cassandra yekuchengetedza node uye 6 coordinator michina, yehuwandu hwemasevha makumi matanhatu nepfumbamwe. Asi michina iyi yakachipa zvakanyanya, mutengo wayo wese ungangoita 69% yemutengo weSQL system. Panguva imwecheteyo, mutoro unochengetwa pa30%.
Nekuunzwa kweC * Imwe, latency zvakare yakadzikira: muSQL, basa rekunyora rakatora anenge 4,5 ms. MuC * Imwe - inenge 1,6 ms. Nguva yekutengeserana iri paavhareji isingasviki makumi mana ms, kuzvipira kunopedzwa mu40 ms, nguva yekuverenga nekunyora iri paavhareji 2 ms. 2th percentile - chete 99-3 ms, nhamba yenguva yakadzikira nezana nguva - zvese nekuda kwekushandiswa kwakapararira kwekufungidzira.
Parizvino, mazhinji eSQL Server node akadzimwa; zvigadzirwa zvitsva zviri kuvandudzwa chete uchishandisa C * Imwe. Isu takagadzirisa C * Imwe kuti ishande mugore redu
Ikozvino tiri kushanda kuendesa zvimwe zvivakwa zvedu zvekuchengetera kune gore - asi iyo inyaya yakasiyana zvachose.
Source: www.habr.com