Bagikan melalui


Kapan Menggunakan Transactional NTFS

Aplikasi dapat menggunakan Transactional NTFS (TxF) untuk mempertahankan integritas data pada disk selama kondisi kesalahan yang tidak terduga. Secara umum, aplikasi harus mempertimbangkan untuk menggunakan TxF jika aplikasi membersihkan file dan menggunakan teknik lain untuk menjaga integritas data. TxF dapat berkinerja lebih baik dan menyederhanakan kode penanganan kesalahan aplikasi sambil meningkatkan pemulihan dan keandalan kesalahan. Bagian berikut dalam topik ini menyediakan contoh skenario bagi Anda untuk menggunakan TxF.

Memperbarui File

Pembaruan file adalah operasi umum dan biasanya sederhana. Namun, jika sistem atau aplikasi gagal saat aplikasi memperbarui informasi pada disk, hasilnya bisa menjadi bencana, karena data pengguna dapat rusak oleh operasi pembaruan file yang sebagian selesai. Aplikasi yang kuat sering melakukan urutan salinan file dan penggantian nama file yang kompleks untuk memastikan bahwa data tidak rusak jika sistem gagal.

TxF memudahkan aplikasi untuk melindungi operasi pembaruan file dari kegagalan sistem atau aplikasi. Untuk memperbarui file dengan aman, aplikasi membuka file dalam mode bertransaksi, membuat pembaruan yang diperlukan, lalu melakukan transaksi. Jika sistem atau aplikasi gagal selama pembaruan file, maka TxF secara otomatis memulihkan file ke status sebelum pembaruan file dimulai, yang menghindari kerusakan file.

Updates Multi-File

TxF bahkan lebih penting ketika satu operasi logis mempengaruhi beberapa file. Misalnya, jika Anda ingin menggunakan alat untuk mengganti nama salah satu halaman HTML atau ASP di situs web, alat yang dirancang dengan baik juga akan memperbaiki semua tautan untuk menggunakan nama file baru. Namun, kegagalan selama operasi ini membuat situs web dalam keadaan tidak konsisten, dengan beberapa tautan masih mengacu pada nama file lama. Dengan membuat operasi penggantian nama file dan operasi perbaikan tautan menjadi satu transaksi, TxF memastikan bahwa file mengganti nama dan perbaikan tautan berhasil atau gagal sebagai satu operasi.

Updates Bersamaan yang Konsisten

TxF mengisolasi transaksi bersamaan. Jika aplikasi membuka file untuk baca transaksional sementara aplikasi lain memiliki file yang sama terbuka untuk pembaruan transaksional, TxF mengisolasi efek dari dua transaksi satu sama lain. Dengan kata lain, pembaca transaksional selalu melihat satu versi file yang konsisten, bahkan saat file tersebut sedang dalam proses diperbarui oleh transaksi lain.

Aplikasi dapat menggunakan fungsionalitas ini untuk memungkinkan pelanggan melihat file saat pelanggan lain membuat pembaruan. Misalnya, server web transaksional dapat menyediakan satu tampilan file yang konsisten sementara alat lain secara bersamaan memperbarui file-file tersebut.

Catatan

TxF tidak mendukung pembaruan bersamaan oleh beberapa penulis dalam transaksi yang berbeda. TxF hanya mendukung satu penulis dengan beberapa pembaca bersamaan dan konsisten.

 

Berkoordinasi Dengan Resource Manager Lain yang Ditransaksikan

Transaksi yang digunakan dengan sistem file yang ditransaksikan juga dapat digunakan dengan registri yang ditransaksikan. Updates ke file dan registri dikoordinasikan dengan satu transaksi.

Dengan menggunakan transaksi Koordinator Transaksi Terdistribusi (DTC) atau System.Transactions, pembaruan yang dilakukan pada SQL, MSMQ, dan sumber daya transaksi lainnya dapat dikoordinasikan dengan pembaruan file yang ditransaksikan. Untuk informasi selengkapnya, lihat IKernelTransaction DTC.

Skenario yang Tidak Didukung

TxF tidak mendukung skenario transaksi berikut:

  • Transaksi pada volume jaringan, misalnya pada berbagi file. TxF tidak didukung oleh protokol CIFS/SMB.
  • Transaksi pada sistem file apa pun selain NTFS.
  • Operasi yang ditransaksikan terhadap file yang di-cache oleh penembolokan sisi klien.
  • Akses file menggunakan ID objek.
  • Skenario penulis bersama apa pun.
  • Situasi apa pun di mana file dibuka untuk jangka waktu yang lama (hari atau minggu).