Dela via


Datakoherency

Data som är sammanhängande är data som är desamma i nätverket. Med andra ord, om data är sammanhängande synkroniseras data på servern och alla klienter. En typ av programvarusystem som tillhandahåller datasammansekvens är ett system för revisionskontroll (RCS). Ett sådant system är vanligtvis ganska enkelt, med endast en användare tillåten att ändra en angiven fil i taget. Andra kan läsa filen men kan inte ändra den.

Användaren som kan ändra en fil sägs ha checkat ut den. Användaren checkar sedan in den ändrade filen så att andra kan se ändringarna. Först när användaren har checkat in en fil igen kan en annan användare checka ut den.

En RCS kräver att användarna aktivt ingriper för att fungera på ett användbart sätt. Ett filsystem som fungerar i ett nätverk bör hantera problemet automatiskt.

Det är ganska enkelt att tillhandahålla lokal cachelagring av sammanhängande data när du har en tråd på en klient som kommer åt en fil i nätverket i taget. I de flesta fall kan dock många olika trådar på en eller flera datorer läsa samma fil. Denna situation är fortfarande ganska enkel. Eftersom data i filen är statiska kan varje klientdator ha en egen lokal kopia utan att det påverkar datasammansekvensen.

En vanligare situation är en tråd som ändrar filen och många andra trådar som läser den. När en skrivåtgärd inträffar är alla lokala cacheminnen i filen föråldrade. Servern måste meddela varje klient att överge sin cache. Alla efterföljande läsåtgärder för filen måste utföras i nätverket.

I en annan vanlig situation kan flera trådar på en eller flera nätverksklienter försöka skriva till samma fil. Den här situationen liknar en situation där flera RCS-användare alla vill göra ändringar i samma fil. Varje användare i sekvens måste checka ut filen, göra ändringar och sedan checka in filen igen. På samma sätt måste servern i ett lokalt cachelagringsschema lämna över behörigheten att skriva till en fil till en klienttråd i taget.