Dela via


Serversvar på öppna begäranden på låsta filer

Livet för ett opportunistiskt lås innehåller tre distinkta tidsintervall. Under var och en avgör servern på olika sätt hur den reagerar på en begäran från en klient om att öppna en fil som är låst av en annan klient. I allmänhet kan du minimera hur ditt program påverkar andra klienter och vilken inverkan de har på ditt program genom att bevilja så mycket delning som möjligt, begära den lägsta åtkomstnivå som krävs och använda det minst påträngande opportunistiska låset som är lämpligt för ditt program.

Först är perioden efter att servern öppnar en fil för en klient men innan den beviljar ett lås. Under den här tiden finns det inget lås på filen och servern är beroende av delning, åtkomstlägen och vilken typ av opportunistiskt lås du begär för att fastställa dess reaktion på en annan begäran om att öppna samma fil. Om du till exempel öppnar filen i fråga för skrivåtkomst kan du förhindra att opportunistiska lås beviljas som tillåter läscacheåtkomst till andra klienter. Tidsintervallet innan servern beviljar ett lås ligger vanligtvis i millisekundersintervallet men kan vara längre.

När det opportunistiska låset har beviljats undersöker servern låset för att fastställa serverns reaktion på en öppen begäran på en låst fil. Återigen påverkar hur programmet öppnade filen och vilken typ av lås den innehåller hur servern svarar. Mer information om hur servern svarar i varje fall finns i typer av opportunistiska lås.

Slutligen finns det spannet efter att servern har fastställt att låset ska brytas (avslutas) men innan programmet slutför sin reaktion på pausen. Beroende på typen av lås kan ditt program nedgradera låset till en lägre nivå eller till ingen alls. Programmet kan också stänga filen och låset. Under den här tiden rymmer servern eventuella begäranden från andra klienter för att öppna den tidigare låsta filen. Det här tidsintervallet kan variera från millisekunder till tiotals sekunder. Mer information finns i Breaking Opportunistic Locks.