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 kesalahan dan keandalan. 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 dapat 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 yang ditransaksikan, membuat pembaruan yang diperlukan, lalu melakukan transaksi. Jika sistem atau aplikasi gagal selama pembaruan file, maka TxF secara otomatis memulihkan file ke status yang dimilikinya sebelum pembaruan file dimulai, yang menghindari kerusakan file.

Pembaruan Multi-File

TxF bahkan lebih penting ketika satu operasi logis memengaruhi 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 meninggalkan 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 menautkan perbaikan berhasil atau gagal sebagai operasi tunggal.

Pembaruan Bersamaan yang Konsisten

TxF mengisolasi transaksi yang berlangsung bersamaan. Jika satu aplikasi membuka file untuk pembacaan transaksional sedangkan aplikasi lainnya membuka file yang sama untuk pembaruan transaksional, TxF mengisolasi efek dari kedua transaksi tersebut secara terpisah. 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 memberikan satu tampilan file yang konsisten sementara alat lain memperbarui file tersebut secara bersamaan.

Nota

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 Pengelola Sumber Daya Lain yang Ditangani

Transaksi yang digunakan dengan sistem berkas transaksional juga dapat digunakan dengan registri transaksional. Pembaruan pada 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 DTC's IKernelTransaction.

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 disimpan sementara oleh penyimpanan sisi klien.
  • Akses file menggunakan ID objek.
  • Skenario apa pun dengan penulis bersama
  • Situasi apa pun di mana file dibuka untuk jangka waktu yang lama (hari atau minggu).