Mikor érdemes tranzakciós NTFS-t használni?
Az alkalmazások tranzakciós NTFS (TxF) használatával megőrizhetik a lemezen lévő adatok integritását váratlan hibaállapotok esetén. Általánosságban elmondható, hogy az alkalmazásnak érdemes megfontolnia a TxF használatát, ha az alkalmazás fájlokat ürít ki, és más technikákat használ az adatintegritás fenntartásához. A TxF jobb teljesítményt nyújt, és leegyszerűsíti az alkalmazás hibakezelési kódját, miközben javítja a hibahelyreállítást és a megbízhatóságot. A jelen témakör alábbi szakaszai példákat mutatnak be a TxF használatára vonatkozó forgatókönyvekre.
Fájl frissítése
A fájlok frissítése gyakori és általában egyszerű művelet. Ha azonban a rendszer vagy alkalmazás meghibásodik, miközben egy alkalmazás frissíti az adatokat egy lemezen, az eredmény katasztrofális lehet, mivel a felhasználói adatokat egy részben befejezett fájlfrissítési művelet megsérülheti. A robusztus alkalmazások gyakran összetett fájlmásolatokat és fájl átnevezéseket hajtanak végre, hogy a rendszer meghibásodása esetén ne sérüljenek meg az adatok.
A TxF megkönnyíti az alkalmazások számára a fájlfrissítési műveletek rendszer- vagy alkalmazáshibák elleni védelmét. A fájlok biztonságos frissítéséhez az alkalmazás tranzakciós módban nyitja meg a fájlt, végrehajtja a szükséges frissítéseket, majd véglegesíti a tranzakciót. Ha a rendszer vagy alkalmazás a fájlfrissítés során meghiúsul, a TxF automatikusan visszaállítja a fájlt a fájlfrissítés megkezdése előtti állapotba, ami megakadályozza a fájl sérülését.
Többfájlos frissítések
A TxF még fontosabb, ha egyetlen logikai művelet több fájlt is érint. Ha például egy eszköz használatával szeretné átnevezni a webhely egyik HTML- vagy ASP-lapját, egy jól megtervezett eszköz az összes hivatkozást is kijavítaná az új fájlnév használatához. A művelet során jelentkező hibák azonban inkonzisztens állapotba hagyják a webhelyet, és néhány hivatkozás továbbra is a régi fájlnévre hivatkozik. A fájl átnevezési műveletének és a hivatkozásjavítási műveletnek egyetlen tranzakcióvá tételével a TxF biztosítja, hogy a fájl átnevezése és a csatolás javítása egyetlen műveletként sikeres legyen vagy sikertelen legyen.
Konzisztens egyidejű frissítések
A TxF elkülöníti az egyidejű tranzakciókat. Ha egy alkalmazás megnyit egy fájlt egy tranzakciós olvasáshoz, míg egy másik alkalmazás ugyanazzal a fájllal rendelkezik egy tranzakciós frissítéshez, a TxF elkülöníti a két tranzakció hatásait egymástól. Más szóval a tranzakcióolvasó mindig a fájl egyetlen, konzisztens verzióját tekinti meg, még akkor is, ha a fájlt egy másik tranzakció frissíti.
Az alkalmazások ezzel a funkcióval engedélyezhetik az ügyfeleknek a fájlok megtekintését, miközben más ügyfelek frissítéseket tesznek. A tranzakciós webkiszolgálók például egyetlen, konzisztens nézetet biztosíthatnak a fájlokról, míg egy másik eszköz egyidejűleg frissíti ezeket a fájlokat.
Jegyzet
A TxF nem támogatja a különböző tranzakciókban több író egyidejű frissítéseit. A TxF csak egyetlen írót támogat több egyidejű és konzisztens olvasóval.
Más tranzakciós erőforrás-kezelőkkel való koordináció
Tranzakciós fájlrendszerekkel használt tranzakciók a tranzakciós beállításjegyzékkel is használhatók. A fájl és a beállításjegyzék frissítései egyetlen tranzakcióval vannak összehangolva.
A Elosztott tranzakciókoordinátori (DTC) tranzakciók vagy System.Transactions használatával az SQL, az MSMQ és más tranzakciós erőforrások frissítései koordinálhatók a tranzakciós fájlfrissítésekkel. További információért lásd: DTC IKernelTransaction.
Nem támogatott forgatókönyvek
A TxF nem támogatja a következő tranzakciós forgatókönyveket:
- Tranzakciók hálózati erőforrásokon, például fájlmegosztásokon. A TxF-et a CIFS/SMB protokollok nem támogatják.
- Tranzakciók az NTFS-en kívül bármely fájlrendszeren.
- Az ügyféloldali gyorsítótárazás által tárolt fájlokon végrehajtott tranzakciós műveletek.
- Fájlhozzáférés objektumazonosítókkal.
- Bármely megosztott írói forgatókönyv.
- Minden olyan helyzet, amikor egy fájlt hosszabb ideig (napok vagy hetek) nyitnak meg.