Hjem Personlig finansiering Håndtering av partisjoner i NoSQL-dummies

Håndtering av partisjoner i NoSQL-dummies

Innholdsfortegnelse:

Video: Hvordan installere en ny SSD disk | Tips og Triks 2024

Video: Hvordan installere en ny SSD disk | Tips og Triks 2024
Anonim

Ordpartisjonen brukes til to forskjellige begreper i NoSQL-land. En datadeling er en mekanisme for å sikre at dataene blir jevnt fordelt over en klynge. På den annen side oppstår en nettverkspartisjon når to deler av den samme databaseklyngen ikke kan kommunisere.

På svært store klyngesystemer er det stadig mer sannsynlig at en feil på ett utstyr vil skje. Hvis en nettverksbryter mellom servere i en klynge feiler, oppstår et fenomen som kalles (i datarjargong) delt hjerne . I dette tilfellet mottar enkelte servere fortsatt forespørsler, men de kan ikke kommunisere med hverandre.

Dette scenariet kan føre til inkonsekvens av data eller bare til redusert kapasitet i datalagring, da nettverkspartisjonen med de minste serverne fjernes fra klyngen (eller "avstemt av" i sann Big Brother-mote).

Tolerere partisjoner

Du har to valg når en nettverkspartisjon skjer:

  • Fortsett på noe nivå for å betjene lese- og skriveoperasjoner.

  • "Stem av" en del av partisjonen og bestem deg for å fikse dataene senere når begge delene kan kommunisere. Dette innebærer vanligvis at klyngen stemmer med en lese-kopi som den nye masteren for hver manglende hovedpartisjonskode.

Riak gir deg mulighet til å bestemme hvor mange ganger dataene blir replikert (tre kopier, som standard - det vil si n = 3) og hvor mange servere som skal forespørres for at en leser skal lykkes. Dette betyr at hvis primærmasteren til en nøkkel er på feil side av en nettverkspartisjon, kan lesoperasjoner fortsatt lykkes hvis de to andre serverne er tilgjengelige (det vil si r = 2 lese tilgjengelighet).

Riak-håndtak skriver når den primære partisjonsserveren går ned ved å bruke et system kalt antydet handoff . Når data repliseres opprinnelig, skrives den første noden for en bestemt nøkkelpartisjon til, sammen med (som standard) to av de følgende nabo noder.

Hvis primæren ikke kan skrives til, skrives neste knutepunkt i ringen til. Disse skrivene leveres effektivt til neste knutepunkt. Når den primære serveren kommer opp igjen, blir skrivene gjengitt til den noden før den tar over primære skriveoperasjoner igjen.

I begge disse operasjonene kan versjonsforstyrrelser forekomme fordi forskjellige replikas kan være i forskjellige versjonstilstander, selv om det bare er noen få millisekunder.

Riak benytter enda et system kalt aktiv anti - entropi for å lindre dette problemet. Dette systemet trawls gjennom oppdaterte verdier og sikrer at replikas oppdateres på et tidspunkt, helst raskere enn senere.Dette bidrar til å unngå konflikter i å lese mens du opprettholder en høy inntakshastighet, noe som unngår en tofasetilførsel brukt av andre NoSQL-databaser med master-slave, delt-ingenting-klyngerstøtte.

Hvis en konflikt på lesing skjer, bruker Riak lese reparasjon for å forsøke å returnere bare de nyeste dataene. Til slutt, og avhengig av konsistens- og tilgjengelighetsinnstillingene du bruker, kan klientprogrammet bli presentert med flere versjoner og bedt om å bestemme seg selv.

I noen situasjoner er denne avviket ønskelig, og mange applikasjoner kan intuitivt vite, basert på dataene som presenteres, hvilken versjon som skal brukes og hvilken versjon som skal kasseres.

Sekundær indeksering

Sekundære indekser er indekser på spesifikke data innenfor en verdi. De fleste nøkkelverdier lagrer denne indekseringen opp til applikasjonen. Imidlertid er Riak annerledes, og bruker en ordning kalt dokument - basert partisjonering som tillater sekundær indeksering.

Dokumentbasert partisjonering forutsetter at du skriver JSON-strukturer til Riak-databasen. Du kan deretter sette opp indekser på bestemte navngitte egenskaper i denne JSON-strukturen, som vist:

{"bestillings-id": 5001, "kunde-ID": 1429857, "bestillingsdato": "2014-09-24 "," Totalt ": 134. 24}

Hvis du har et program som viser kundens ordre for den forrige måneden, vil du spørre alle postene, som vist, hvor kundens ID er en fast verdi (1429857) og bestillingsdatoen er innenfor et bestemt område (begynnelsen og slutten av måneden).

I de fleste nøkkelverdibutikker lager du en annen bøtte, hvis nøkkel er det kombinerte kundenummeret og måneden, og verdien er en liste over ordreinnstillinger. Men i Riak legger du ganske enkelt til en sekundær indeks på både kunde-id (heltall) og ordre-dato (dato), som tar opp ekstra lagringsplass, men har fordelen av å være transparent for applikasjonsutvikleren.

Disse indeksene oppdateres også live - noe som betyr at det ikke er noe lag mellom å oppdatere en dokumentverdi i Riak og indeksene er oppdaterte. Denne levende tilgangen til data er vanskeligere å trekke av enn det virker. Tross alt, hvis indeksene er inkonsekvente, vil du aldri finne de konsekvent lagrede dataene!

Evaluering av Riak

Basho, den kommersielle enheten bak Riak, sier at den kommende versjonen 2. 0 NoSQL-databasen alltid har sterk konsistens, et krav som andre NoSQL-leverandører gjør. Påstand fra NoSQL-leverandører til å alltid ha sterk konsistens er som å hevde å være en sterk vegetarianer … unntatt på søndager når du har roastbiff.

Riak er ikke en ACID-kompatibel database. Dens konfigurasjon kan ikke endres slik at den går i ACID-kompatibilitetsmodus. Klienter kan få inkonsekvente data under normale operasjoner eller under nettverkspartisjoner. Riak handler absolutt konsistens for økt tilgjengelighet og partisjonstoleranse.

Running Riak i sterk konsistensmodus betyr at dets lesereplikater oppdateres samtidig med primærmasteren. Dette innebærer en tofase-forpliktelse - i utgangspunktet skriver hovednoden til de andre noderne før den bekrefter at skrivingen er fullført.

På tidspunktet for denne skrivingen støtter ikke Riaks sterke konsistensmodus sekundære indekser eller komplekse datatyper (for eksempel JSON). Forhåpentligvis vil Basho fikse dette problemet i kommende utgivelser av databasen.

Riak Search (en rebranded og integrert Apache Solr søkemotor bruker en slutt konsistent oppdateringsmodell) kan gi falske positiver når du bruker sterk konsistens. Denne situasjonen oppstår fordi data kan skrives og transaksjonen forlates, men dataene brukes fortsatt til indeksering - etterlater et "falskt positivt" søkeresultat - resultatet er faktisk ikke lenger gyldig for søket.

Riak bruker også en separat sentinelprosess for å bestemme hvilken node som blir en mester i failover-forhold. Denne prosessen er imidlertid ikke tilgjengelig, noe som betyr at det i noen sekunder er mulig at en ny kopi av sentinelprosessen blir hentet på nettet, ikke kan legges til en ny node eller en ny mestervalgt. Du må være oppmerksom på denne muligheten i høyspenningsfeilforhold.

Riak har noen fine funksjoner for applikasjonsutviklere, for eksempel sekundær indeksering og innebygd JSON-verdi støtte. Databasereplikasjon for katastrofegjenoppretting til andre datacentre er bare tilgjengelig i den betalt for versjonen, hvis pris kan bli funnet på deres hjemmeside (utleiepriser vist, evigvarende lisenspriser gitt kun på søknad).

Riak Control-klyngen overvåking verktøyet er heller ikke høyt ansett på grunn av sin lagringstid når overvåking av klynger. Riak har mye løfte, og hvis Basho vil legge til flere enterprise - nivå klyngestyringsfasiliteter i fremtidige versjoner, blir det et førsteklasses produkt.

Håndtering av partisjoner i NoSQL-dummies

Redaktørens valg

Speil Lockup (MUP) på Nikon D7100-dummies

Speil Lockup (MUP) på Nikon D7100-dummies

En komponent i det optiske systemet til din Nikon D7100 kamera er et speil som beveger seg hver gang du trykker på lukkerknappen. Den lille vibrasjonen som følge av speilets handling kan føre til svak utryddelse av bildet når du bruker en veldig langsom lukkerhastighet, skyter med en lang teleobjektiv, ...

Opptaksmuligheter på Nikon D5300 - dummies

Opptaksmuligheter på Nikon D5300 - dummies

Du kan styre noen få aspekter av din filmoppgave på din Nikon D5300. Du kan manipulere videoen din for å skape en rekke effekter. Følgende liste går gjennom disse alternativene: Eksponeringsmodus: Du kan ta opp filmer i hvilken som helst eksponeringsmodus (Auto, Scenemodus, Effektmodus, P, M, og så videre). Som med fortsatt ...

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Hvordan man manipulerer eksponering og kontroll på Nikon D5600-dummies

Følgende retusjonsverktøy på din Nikon D5600 kamerajustering eksponering og farge: D-Lighting, Quick Retouch, Filter Effects og Monochrome. Selv om disse verktøyene ikke får deg til å velge ett kamera over en annen, hvis du allerede har en Nikon D5600, er de tilgjengelige, så du kan også lære å bruke dem! D-Lighting: Active D-Lighting ...

Redaktørens valg

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

DOs og DON'Ts of Fantasy Basketball Draft Picks - dummies

Hvis du vurderer bli med i en fantasy basketball liga, må du ta hensyn til følgende DOs og DON'Ts før du vurderer spillerne du vil utarbeide på laget ditt. Kreditt: © iStockphoto. com / IS_ImageSource Fantasy basketball draft pick DOS I de fleste fantasy basketball ligaer bestemmer kommisjonen (personen som setter opp ligaen) bestillingen i ...

Linjene og dimensjonene til en basketballbane - dummies

Linjene og dimensjonene til en basketballbane - dummies

En basketballbane har symmetri; Den ene halvdelen av retten er et speilbilde av den andre. Hele basketballbanen (se figur 1) er 94 fot med 50 fot. På hver halvplass viser malte linjer fritt korsbanen og sirkelen, samt trepunktsbuen, hvis avstand fra kurven varierer basert ...

Kjøp av gratis agenter i fantasy fotball - dummies

Kjøp av gratis agenter i fantasy fotball - dummies

I løpet av fantasy fotball sesongen, spillere som ikke blir utarbeidet bli gratis agenter - spillere tilgjengelig for enhver ligamatch villig til å slippe en eid spiller. Bruk gratis agentbassenget til å erstatte en skadet spiller eller noen som bare ikke lever opp til dine forventninger. Bruk disse tipsene for å finne en gratis agent for å ...

Redaktørens valg

Grunnleggende for din iOS-app - dummies

Grunnleggende for din iOS-app - dummies

Heldigvis mesteparten av det du trenger å gjøre så langt som iOS animasjon er opptatt er allerede bygd inn i rammen. Noen visningsegenskaper kan animeres, noe som betyr at du bare må fortelle visningen hvor du skal begynne og hvor du skal avslutte flyttingen, og noen få andre valgfrie parametere, og du er ferdig. ...

Montering av verktøylinjen for Android App Development - dummies

Montering av verktøylinjen for Android App Development - dummies

Når du vet at du er klar til være en Android-utvikler, ta tak i datamaskinen din og få sprekker på å installere verktøyene og rammene som er nødvendige for å bygge ditt første blockbuster-program. Linux-kjernen Android ble opprettet på toppen av åpen kildekode Linux-kjernen. Android-teamet valgte å bruke denne kjernen fordi den ga bevist ...

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Grunnleggende om Cocoa Touch i iOS Apps - dummies

Cocoa Touch-laget inneholder det meste av objektet -orientert utvikler-vendt rammer for å bygge iOS applikasjoner. Det er ditt eneste utgangspunkt for app-utvikling. Apple-guiderne oppfordrer deg til å undersøke teknologiene i dette laget for å se om de oppfyller dine behov, før du ser på de andre lagene. Med andre ord, Apple har til hensikt å ...