sql >> Database teknologi >  >> NoSQL >> MongoDB

En oversigt over WiredTiger Storage Engine til MongoDB

Ethvert databasesystem har en struktureret komponent, som er ansvarlig for at vedligeholde, hvordan data lagres og serveres både i hukommelse og disk. Dette omtales ofte som en lagermotor. Oftere, når de evaluerer arkitekturen af ​​operationelle databaser, sætter udviklere ind på kontoen på førstehåndsfaktorer såsom datamodellering, reduceret latens, forbedrede gennemløbsoperationer, datakonsistens, nem skalerbarhed og minimal fejltolerance. På trods af det er man nødt til at have en detaljeret og avanceret viden om den underliggende lagermotor for en bedre tuning, så den leverer de fremhævede faktorer effektivt.

En simpel cyklus af en applikation til db-system er illustreret nedenfor...

Eksempel på almindelig applikationsarkitektur

WiredTiger Storage Engine

MongoDB understøtter hovedsageligt 3 lagermotorer, hvis ydeevne er forskellig i overensstemmelse med nogle specifikke arbejdsbelastninger. Lagermotorerne er:

  1. WiredTiger Storage Engine
  2. In-Memory Storage Engine
  3. MMAPv1 Storage Engine

WiredTiger-lagringsmotoren har både konfigurationer af en B-Tree-baseret motor og en log-struktureret flettetræ-baseret motor.

B-Tree Based Engine

Dette er en af ​​de ældgamle lagringsmotorer, som andre sofistikerede opsætninger stammer fra. Det er en selvbalancerende trædatastruktur, der sikrer datasortering og muliggør søgninger, sekventiel adgang, indsættelser og sletninger på en logaritmisk måde. Det er rækkebaseret lagring, således at hver række anses for at være en enkelt post i databasen

Fordele ved en B-Tree Storage Engine

  • Høj gennemløb og lav ventetid. B-Trees har en tendens til at vokse sig brede og overfladiske, således at meget få noder krydses.
  • Holder nøgler i sorteret rækkefølge for sekventiel gennemkøring, og indekser er afbalanceret med en rekursiv algoritme.
  • De indvendige lagernoder holdes altid mindst halvt fyldt, hvilket generelt reducerer spild.
  • Nem at håndtere et stort antal indsættelser og sletninger inden for kort varighed.
  • Hierarkisk indeksering anvendes med det formål at reducere disklæsninger.
  • Fremskynder indsættelser og sletninger gennem brug af delvist fulde blokke.

Begrænsninger for en B-Tree-lagringsmotor

  • Dårlig skriveydelse på grund af behovet for at sikre en velordnet datastruktur med tilfældige skrivninger. Tilfældige skrivninger er dyrere end sekventielle skrivninger til lageret.
  • Klar-modificere-skrive-straf for en hel blok, selv for en mindre opdatering til en række i en blok.

Logstruktureret flettetræbaseret motor

På grund af den dårlige skriveydeevne af B-Tree Based Engine, måtte udviklere finde på en måde at klare større datasæt til DBMS. Log Structured Merge Tree Based Engine (LSM Tree) blev derfor etableret for at forbedre ydeevnen for indekseret adgang til filer med høj skrivevolumen over en længere periode. I dette tilfælde omdannes tilfældige skrivninger på det første trin af den kaskadende hukommelse til sekventielle skrivninger på den diskbaserede første komponent.

Fordele ved en LSM Tree Storage Engine

  • Evnen til hurtig sekventiel skrivning forbedrer hurtig håndtering af store hurtigt voksende data.
  • Velegnet til lagdelt lager, hvilket giver organisationer et bedre udvalg med hensyn til omkostninger og ydeevne. Flash-baserede SSD'er giver fremragende ydeevne i dette tilfælde.
  • Bedre komprimering og lagereffektivitet, hvilket sparer lagerplads og forbedrer næsten fuld lagerplads
  • Data er altid tilgængelig for forespørgsler med det samme.
  • Indsættelser er meget hurtige.

Begrænsninger for en B-Tree-lagringsmotor

Brug mere hukommelse sammenlignet med B-Tree under læseoperationer på grund af læse- og pladsforstærkning. Nogle tilgange, såsom bloom-filtre, har dog mildnet denne effekt i praksis, således at antallet af filer, der skal kontrolleres under en punktforespørgsel, er reduceret.

WiredTiger-teknologien er designet på en måde, så den udnytter både B-Tree- og LSM-fordele, hvilket gør den sofistikeret og den bedste lagringsmotor til MongoDB. IT er faktisk MongoDBs standardlagringsmotor.

Severalnines Bliv en MongoDB DBA - Bring MongoDB to ProductionLær om, hvad du skal vide for at implementere, overvåge, administrere og skalere MongoDBDownload gratis

WiredTiger Storage Engine Architecture

Som nævnt ovenfor involverer det konceptet med to grundlæggende lagringsmotorer, som er B-Tree- og LSM Tree-motorerne, og derfor er det en multiversion concurrency control (MVCC) lagringsmotor. Fordelene ved de to kombinerede gør det muligt for systemet at se et øjebliksbillede af databasen på det tidspunkt, det tilgår en samling. Kontrolpunkter etableres således, at en ensartet visning af data registreres på disken mellem kontrolpunkter. I tilfælde af et nedbrud mellem kontrolpunkter, er det nemt at genoprette med disse kontrolpunkter eller rettere, selvom der ikke er kontrolpunkter for data, kan man gendanne det fra diskjournalfiler.

Omfattende brug af cache i stedet for disk for at forbedre lav latenstid. WiredTiger-lagringsmotoren er stærkt afhængig af OS-sidecachen, således at komprimerede data hentes uden at involvere disken. Desuden slettes de mindst nyligt brugte data fra RAM'en, hvilket bevarer mere plads til cachen.

B-Tree-lagringskonceptet tilbyder højeffektiv læsning og god skriveydelse med lav CPU-udnyttelse. Den har også en låseimplementering på dokumentniveau, der muliggør meget samtidige arbejdsbelastninger, og denne samtidighed gør det derfor lettere for serveren at drage fordel af mange kerne-CPU'er. Generelt forbedrer alle afhandlinger databasens høje skalerbarhed.

Enterprise-udgaven understøtter on-disk-kryptering til WiredTiger-lagringsmotoren, som er en funktion, der i høj grad forbedrer datasikkerheden.

WiredTiger-lagringsmotor muliggør en fremskrivningslogning, som sikrer en automatisk nedbrudsgendannelse og gør skrivningen holdbar.

Fordele ved WiredTiger Storage Engine

  • Effektiv lagring på grund af en mangfoldighed af komprimeringsteknologier, såsom Snapp-, gzip- og præfiks-komprimeringer.
  • Den er meget skalerbar med samtidige læsninger og skrivninger. Dette forbedrer i sidste ende kapaciteten og den generelle databaseydeevne.
  • Sørg for dataholdbarhed med fremskrivningslog og brug af kontrolpunkter.
  • Optimal hukommelsesbrug. WiredTiger bruger både den interne cache og filsystemets cache.
  • Med filsystemcachen kan MongoDB nemt bruge den ledige hukommelse, der ikke bruges af WiredTiger-cachen.

WiredTiger Storage Engine Tilbageslag

Vanskeligheder med at opdatere data. Samtidighedsordningen forhindrer opdateringer på stedet, således at opdatering af en feltværdi i et dokument omskriver hele dokumentet.

Konklusion

WiredTiger lagringsmotor integrerer koncepter fra to store lagringsmotorer, B-Tree og LSM trælagringsmotoren for at opnå maksimal og optimal ydeevne. Ved at afveje fordelene fra begge sager og bruge dem i fællesskab gør WiredTiger til en generel opbevaringsmotor. Af denne grund er det i de nuværende versioner af MongoDB standardlagringsmotoren. Dette indebærer, at hvis du virkelig ikke har en stærk grund til at afsky det, så er det det bedste for dine data. Valget af lagringsmotor afhænger dog i høj grad af dit databrug eller rettere, hvor WiredTiger ikke kan opfylde dine forventninger. Generelt er dette den bedste standardlagermaskine.


  1. Spring boot caching med redis, nøgle har \xac\xed\x00\x05t\x00\x06

  2. Hvordan udfylder man indlejrede enheder i mongoose?

  3. Node.JS objektprototype må kun være et objekt eller null med Redis

  4. Hvordan søger man i redis efter hash-nøgler?