Mark S Rasmussen iPaper ApS improvedk Whois Technical Lead iPaper ApS Udvikler DBA Sysadmin Projektleder M icrosoft D esignated I nformation P rovider Agenda Overblik Resource ID: 563900
Download Presentation The PPT/PDF document "Using Transactional NTFS (TxF) in .NET" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.
Slide1
Using Transactional NTFS (TxF) in .NET
Mark S. Rasmussen
iPaper ApS
improve.dkSlide2
Whois
Technical Lead @
iPaper
ApSUdviklerDBASysadminProjektlederMicrosoft Designated Information ProviderSlide3
Agenda
Overblik
Resource
managersTransaction managersWin32 APILocking / isolationPerformanceSikkerhedI produktionTxRSlide4
Overblik
Transaktionel
understøttelse af alle fil operationer
Reads, writes, rename, move, etc.ACIDHvad gjorde vi før?Skriv, 2 x rename, sletFejlhåndteringSlide5
Overblik
Hvornår
giver
TxF mening?Ændring af filÆndring af flere filerKonsistente samtidige opdateringerKonsistente ændringer på tværs af systemer (fil / DB)TestsKravNTFS
Vista SP1 / Server 2008Slide6
TxF Begrænsninger
Network
shares
– CIFS/SMBCached filerMultiple writersKrypterede filerOg dog – non transaktionel operation, med begrænsningerLangtidsvarige transaktioner (relativ)Slide7
Resource managers
Har ansvaret for ændringen af
en ressource
Typisk brugte durable RMs:SqlConnectionNTFS volumesRegistry hiveSamarbejder med Transaction Managers (MSDTC / KTM / LTM)To typerDurableVolatileSlide8
Resource managers
Flere
måder en RM kan deltage i en transaktion håndteret af en TMTransaction.EnlistDurableTransaction.EnlistVolatileTransaction.EnlistPromotableSinglePhase
PSPE for performanceSlide9
Kernel Transaction Manager
Både
kernel
og user mode servicesSystem.TransactionsEksplicit / ImplicitTransactionTransactionScopeHurtig two phase commit indenfor samme maskineWin32/COM og
System.Transactions interfacesSlide10
DTC / KTM samarbejde
DTC håndterer sammenspillet mellem flere
distribuerede transaktioner
Både lokalt, remote og kombinationerKTM transaktion eskaleres til DTC efter behovKTM eksponerer API for transaction controllereDTC kender til KTM, men ikke omvendtSlide11
DTC / KTM samarbejdeSlide12
DTC / KTM samarbejde
Direkte til KTM
Begrænset til kun
KRMs indenfor samme appdomainKun én durable transactionSlide13
DTC / KTM samarbejde
KTM, via DTC
DTC skaffer et transaktions handle fra KTM til os
Ingen begrænsningerSlide14
DTC / KTM samarbejde
System.Transactions
Samme funktionalitet & fremgangsmåde som KTM via DTC, blot med
managed interfacesSlide15
DTC / KTM samarbejdeSlide16
Win32 fil operationer
Non-transacted
CreateFile
CopyFileMoveFileDeleteFileCreateHardLinkCreateSymbolicLinkCreateDirectoryRemoveDirectorySlide17
Win32 fil operationer
Transacted
CreateFileTransacted
CopyFileTransactedMoveFileTransactedDeleteFileTransactedCreateHardLinkTransactedCreateSymbolicLinkTransactedCreateDirectoryTransactedRemoveDirectoryTransactedSlide18
CreateFileSlide19
TransactedFile.OpenSlide20
TransactedFile.WriteAllTextSlide21
Locking
/
isolation
Read committedNon-transacted writers altid blokeretOgså selvom åbnet med shared-writeTransacted readerSer committed version fra reader handle blev åbnetBlokerer non-transacted writers – men kun så længe handle er åbent!
Non-transacted writer blokerer transacted
reader/writerSlide22
Locking / isolation
Filniveau
ERROR_SHARING_VIOLATION, ERROR_TRANSACTIONAL_CONFLICT
Én gang åbnet for write – altid åbnet som writeIndenfor transaktionSlide23
Performance
Koster kun når vi benytter
transacted
operationerOptimeret for commitsModifikation af eksisterende data = 2 x IO,$TOPSMetadata operationer, nyt data, slet etc – meget lavt overhead (1-2%)Pas på recovery tider ved distribuerede transaktioner! Afhængigheder kan låse filer.Slide24
Sikkerhed
TxF wrapper via
P/Invoke
P/Invoke = implicit FullTrust LinkDemandFullTrust ofte problematisk i webappsGateway assemblies med APTCASlide25
DemoSlide26
TxF i produktion
Nej – vi bruger det ikke... Endnu
SAN
storage via CIFSPå vej - deployment af nye website versionerInterruptions under overskrivelseFlere sites samtidigtMicrosoft bruger det
Windows UpdateSystem RestoreTask
SchedulerWeb Deployment
ToolSlide27
Transactional registry (TxR)
Lignende funktionalitet
KTM / DTC integration
TxR + TxF = nem installer rollbackSlide28
improve.dk