A tranzakciós NTFS használatának alternatívái
- Absztrakt
- Bevezetés
- TxF alternatívái különböző forgatókönyvekhez
- Alkalmazások egyetlen fájlt frissítenek "dokumentumszerű" adatokkal
- Több fájl és/vagy a beállításjegyzék-hive frissítését végző alkalmazások
- Strukturált adathalmazt kezelő alkalmazások
- helyi NTFS-kötet fájljait és külső SQL-adatbázis tábláit tartalmazó tranzakciókat tartalmazó alkalmazások
- Bezárás & Javasolt művelet
Összefoglaló
A Microsoft határozottan azt javasolja a fejlesztőknek, hogy a Windows jövőbeli verzióiban esetleg nem elérhető API-platform bevezetése helyett vizsgálja meg a tárgyalt alternatívákat (vagy bizonyos esetekben más alternatívákat).
Bevezetés
A TxF-et a Windows Vista használatával vezették be az atomi fájltranzakciók windowsos bevezetésének eszközeként. Lehetővé teszi a Windows-fejlesztők számára, hogy tranzakciós atomisággal rendelkezzenek a fájlműveletekhez egyetlen fájllal végzett tranzakciókban, több fájlt érintő tranzakciókban, valamint több forrást felölelő tranzakciókban , például a beállításjegyzékben (TxR-en keresztül) és adatbázisokban (például SQL). Bár a TxF az API-k hatékony készlete, a Windows Vista óta rendkívül korlátozott fejlesztői érdeklődés mutatkozott ebben az API-platformban, elsősorban annak összetettsége és a fejlesztők által az alkalmazásfejlesztés részeként figyelembe veendő különböző árnyalatok miatt. Ennek eredményeképpen a Microsoft fontolgatja a TxF API-k elavulását a Windows egy későbbi verziójában, hogy a fejlesztési és karbantartási erőfeszítéseket más olyan funkciókra és API-kra összpontosítsa, amelyek az ügyfelek nagyobb többsége számára nagyobb értéket képviselnek. A következő szakasz a mintául szolgáló alternatív módszereket ismerteti, amelyek hasonló eredményeket érnek el, mint a TxF számos alkalmazási forgatókönyv esetében.
A TxF alternatívái forgatókönyv szerint
A fentiekben ismertetett korlátozásokkal a fejlesztőknek meg kell vizsgálniuk a TxF alternatíváit, hogy lefedjék a TxF által nem teljesített alkalmazásforgatókönyveket. Az alábbiakban néhány javasolt alternatívát ismertetünk a TxF fejlesztők számára történő gyakori felhasználási módjaihoz. Vegye figyelembe, hogy ez a lista nem kimerítő és nem teljes.
Egyetlen fájlt "dokumentumszerű" adatokkal frissítő alkalmazások
A "dokumentumszerű" adatokkal foglalkozó alkalmazások közül sok általában a teljes dokumentumot betölti a memóriába, működteti, majd visszaírja a módosításokat. A szükséges atomiság itt az, hogy a módosítások vagy teljesen alkalmazzák, vagy egyáltalán nem alkalmazzák, mivel egy inkonzisztens állapot rontaná a fájlt. Gyakori módszer a dokumentum új fájlba írása, majd az eredeti fájl lecserélése az újra. Ennek egyik módszere a ReplaceFile API.
Több fájl és/vagy a beállításjegyzék hive-jének frissítését végző alkalmazások
Számos alkalmazásnak kell atomi módon frissítenie egy fájlkészletet és a beállításjegyzéket. Ez a forgatókönyv leggyakrabban egy telepítőalkalmazáson keresztül érhető el, például a Windows Installeren keresztül. A Windows Installerről további információt Windows Installercímű cikkben talál.
Strukturált adatokat kezelő alkalmazások
Számos alkalmazás különböző típusú védett adatstruktúrák bizonyos készletét kezeli az adatok tárolásának eszközeként. Ezeknek az alkalmazásoknak jelentős kihívást jelent a belső mutatók/hivatkozások integritásának fenntartása, ha hiba történik egy frissítési művelet során. Ennek a mechanizmusnak a létrehozása valóban "nehéz probléma", ezért a legtöbb alkalmazás egy valódi adatbázis-kiszolgálóra támaszkodik az adathalmaz kezeléséhez.
Két javaslat a strukturált adatok kezelésére:
- A Microsoft biztosítja az Extensible Storage Engine (ESE) beérkezett üzeneteket a Windowsban, hogy lehetővé tegye az alkalmazások számára a tranzakciós adatfrissítési és -lekérési műveletek végrehajtását. Az bővíthető tárolómotorral (ESE) kapcsolatos további információkért lásd https://msdn.microsoft.com/library/gg269259.aspx.
- A hatékonyabb, robusztusabb és méretezhetőbb adatbázis-szolgáltatót igénylő alkalmazások esetében javasoljuk, hogy az ügyfelek fontolja meg a Microsoft SQL Serverrel elérhető Filestream funkció használatát. Az SQL Filestreams szolgáltatással kapcsolatos további információkért lásd: https://technet.microsoft.com/library/bb933993.aspx.
Helyi NTFS-kötet fájljait és külső SQL-adatbázisban lévő táblákat tartalmazó tranzakciókat tartalmazó alkalmazások
Vannak olyan alkalmazásosztályok, amelyeknek nagy adatkészletre van szükségük, vagy tranzakciós atomitással kell rendelkezniük egy külső adatbázist és helyi tárolót tartalmazó műveletben. Ebben a forgatókönyvben erősen ajánlott, hogy a fejlesztők az SQL Filestreams használatával végezhessenek tranzakciós fájlműveleteket. Az SQL Filestreams szolgáltatással kapcsolatos további információkért lásd: https://technet.microsoft.com/library/bb933993.aspx.
A & javasolt művelet bezárása
A TxF az API-k összetett és árnyalt készlete, amelyet külső alkalmazások gyakran nem használnak. Mivel előfordulhat, hogy ezek az API-k nem lesznek elérhetők a Windows jövőbeli verzióiban, és mivel a TxF által kifejlesztett forgatókönyvek közül számosnak egyszerűbb alternatív eszközök állnak rendelkezésre, a Microsoft határozottan javasolja a fejlesztőknek, hogy vizsgáljanak meg ilyen alternatív eszközöket ahelyett, hogy függőséget hozna létre a TxF-ről az alkalmazásaikban.