Minnebufring (ofte bare referert til som caching) Er en teknikk der dataprogrammer midlertidig lagrer data i datamaskinens hovedminne (dvs. random access memory ELLER RAM) for å aktivere rask henting av dataene. RAM-EN som brukes til midlertidig lagring, kalles hurtigbufferen. Siden tilgang TIL RAM er betydelig raskere enn å få tilgang til andre medier som harddisker eller nettverk, hjelper caching programmer til å kjøre raskere på grunn av raskere tilgang til data. Caching er spesielt effektiv når programmet viser et felles mønster der det gjentatte ganger får tilgang til data som tidligere ble åpnet. Bufring er også nyttig for å lagre data beregninger som ellers er tidkrevende å beregne. Ved å lagre beregningene i en cache, sparer systemet tid ved å unngå gjentakelse av beregningen.

Minne Caching Diagram.
En Oversikt Over Minnebufring

Hvordan Fungerer Minnebufring?

Minnebufring fungerer ved først å sette til side en DEL RAM som skal brukes som cache. Som et program prøver å lese data, vanligvis fra et datalagringssystem som en database, sjekker den for å se om den ønskede posten allerede finnes i hurtigbufferen. Hvis det gjør det, vil programmet lese dataene fra hurtigbufferen, og dermed eliminere den langsommere tilgangen til databasen. Hvis den ønskede posten ikke er i hurtigbufferen, leser programmet posten fra kilden. Når den henter dataene, skriver den også dataene til hurtigbufferen, slik at når programmet trenger de samme dataene i fremtiden, kan det raskt få det fra hurtigbufferen.

siden hurtigbufferen er begrenset i størrelse, må noen data som allerede er i hurtigbufferen, til slutt fjernes for å gi plass til nye data som programmet sist åpnet. Dette betyr at caching systemet trenger en strategi som poster for å fjerne for å gjøre plass. Strategien vil avhenge av arten av programmets datatilganger, og vil generelt prøve å fjerne poster som ikke forventes å bli åpnet igjen snart. FOR eksempel vil EN LRU-strategi (minst nylig brukt) fjerne posten hvis siste tilgang var før en annen post i hurtigbufferen. Forutsetningen her er at hvis det har vært lang tid siden posten ble åpnet, vil den sannsynligvis ikke bli åpnet igjen snart. Eller for å si det på en annen måte, postene som ble mest brukt nylig vil trolig bli brukt igjen snart. En lfu-strategi (least-frequently-used) innebærer å spore antall tilganger for hver post i hurtigbufferen og fjerne posten med minst tilgang. Forutsetningen her er at en sjelden brukt rekord ikke vil trolig bli brukt igjen snart.

utfordringen med cacher er hvordan man minimerer «cache misses», dvs., forsøkt leser av programmet for poster som ikke er i hurtigbufferen. Hvis du har for mange savner, reduseres effektiviteten til hurtigbufferen din. Et program som bare leser nye data ville ikke ha nytte av en cache, og faktisk ville vise lavere ytelse på grunn av det ekstra arbeidet med å sjekke cachen, men ikke å finne den ønskede posten i den. En måte denne utfordringen kan reduseres er ved å utnytte større cacher. Dette er ofte ikke praktisk på en enkelt datamaskin, og derfor er distribuerte cacher populære valg for å øke hastigheten på applikasjoner som trenger tilgang til større datasett. En distribuert hurtigbuffer samler SAMMEN RAM-en til flere datamaskiner som er koblet til i en klynge, slik at du kan opprette en større hurtigbuffer som kan fortsette å vokse ved å legge til flere datamaskiner i klyngen. Teknologier som Hazelcast IMDG kan brukes som en distribuert klynge for å akselerere store applikasjoner.

en annen utfordring med cacher er risikoen for å lese» foreldede » data, der dataene i hurtigbufferen ikke gjenspeiler de nyeste dataene i den underliggende kilden. Ofte er denne risikoen en akseptabel avveining av hensyn til applikasjonsytelse. I tilfeller der det ikke er det, er det opp til programmet som oppdaterer den underliggende datakilden for å oppdatere den aktuelle posten i hurtigbufferen.

Eksempelbrukstilfeller

en bred brukstilfelle for minnebufring er å akselerere databaseprogrammer, spesielt de som utfører mange databaselesninger. Ved å erstatte en del av databasen leser med leser fra hurtigbufferen, kan programmer fjerne ventetid som oppstår fra hyppige databasetilganger. Denne brukstilfelle er vanligvis funnet i miljøer der et høyt volum av datatilgang er sett, som i en høy trafikk webområde som har dynamisk innhold fra en database.

En annen brukstilfelle innebærer spørringsakselerasjon, der resultatene av en kompleks spørring til en database er lagret i hurtigbufferen. Komplekse spørringer som kjører operasjoner som gruppering og ordre, kan ta betydelig tid å fullføre. Hvis spørringer kjøres gjentatte ganger, slik tilfellet er i et dashbord for business intelligence (BI) som mange brukere får tilgang til, vil lagring av resultater i en hurtigbuffer gi større respons i disse dashbordene.

Relaterte Emner

Jcache / Java Cache

Cache Miss

Hibernate Andre Nivå Cache

Videre Lesing

Caching Bruk Case

Database Caching

Hazelcast Cloud

Caching Gjort Bootiful: Våren Cache + Hazelcast

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.