Bagikan melalui


Konsep TxF Dasar

Isolasi Baca

Transactional NTFS (TxF) menyediakan konsistensi pembacaan yang terjamin.

Penulis tertransaksi mengacu pada handle file yang tertransaksi yang dibuka dengan izin apa pun yang tidak termasuk dalam akses baca generik tetapi termasuk dalam akses tulis generik. Penulis melakukan transaksi melihat versi terbaru dari file yang menyertakan semua perubahan oleh transaksi yang sama. Hanya ada satu penulis yang ditransaksikan per file. Penulis yang tidak terlibat transaksi selalu diblokir oleh penulis yang terlibat transaksi, bahkan jika file dibuka dengan hak tulis bersama.

Pembaca yang ditransaksikan mengacu pada pegangan file yang ditransaksikan yang dibuka dengan izin apa pun, yang termasuk dalam bagian dari akses baca generik namun bukan bagian dari akses tulis generik. Pembaca yang telah menjalankan transaksi melihat versi berkas yang telah dikomit yang ada pada saat handle berkas dibuka. Pembaca yang tertransaksi diisolasi dari efek penulis yang tertransaksi. Ini memberikan tampilan file yang konsisten hanya untuk masa pakai handle file dan memblokir penulis tanpa transaksi.

Nota

Ketika pengendali telah dibuka untuk modifikasi dengan fungsi CreateFileTransacted, semua pembukaan file selanjutnya dalam transaksi tersebut, baik itu untuk baca-saja atau tidak, diubah oleh sistem menjadi penulis transaksional untuk tujuan isolasi dan semantik transaksional lainnya. Ini berarti bahwa kemudian, ketika handle dibuka untuk akses baca saja, handle tidak menerima tampilan file sebelum dimulainya transaksi; handle menerima tampilan transaksi aktif dari file.

Handle file yang tidak ditransaksikan tidak akan melihat perubahan apa pun yang dilakukan dalam transaksi hingga transaksi disahkan. Pegangan berkas yang tidak ditransaksikan menerima tampilan terisolasi yang mirip dengan pembaca berkas yang ditransaksikan, tetapi tidak seperti pembaca berkas yang ditransaksikan, ia menerima pembaruan berkas ketika penulis berkas yang ditransaksikan melakukan transaksi.

Tingkat Isolasi

TxF menyediakan isolasi berkomitmen baca. Ini berarti bahwa pembaruan file tidak terlihat di luar transaksi. Selain itu, jika file dibuka lebih dari sekali saat membaca file dalam transaksi, Anda mungkin melihat hasil yang berbeda dengan setiap pembukaan berikutnya. File yang tersedia pertama kali Anda mengaksesnya mungkin tidak tersedia (karena dihapus), atau sebaliknya.

Penguncian Transaksional

Membuat penulis transaksional pada file mengunci file secara transaksional. Setelah sebuah file dikunci oleh transaksi, operasi sistem file lain yang berada di luar transaksi penguncian dan mencoba memodifikasi file yang telah terkunci secara transaksional akan gagal dengan ERROR_SHARING_VIOLATION atau ERROR_TRANSACTIONAL_CONFLICT.

Tabel berikut ini meringkas penguncian transaksi.

File yang saat ini dibuka oleh

File terbuka dicoba oleh

Ditransaksikan

Tidak Ditransaksikan

Pembaca

Pembaca/Penulis

Pembaca

Pembaca/Penulis

Pembaca yang Melakukan Transaksi

Ya

Ya

Ya

No2

Pembaca/Penulis yang Ditransaksikan

Ya

No2

Ya

No2

Pembaca Yang Tidak Ditransaksikan

Ya

Ya

Ya

Ya

Pembaca/Penulis Yang Tidak Ditransaksikan

No. 1

Nomor 1

Ya

Ya

  1. Gagal dengan kesalahan ERROR_TRANSACTIONAL_CONFLICT
    2. Mengalami kesalahan ERROR_SHARING_VIOLATION

Jika Anda membuka aliran bernama untuk modifikasi yang menggunakan transaksi, seluruh file harus dikunci.

Selain penguncian transaksi, aturan berbagi file NTFS umum berlaku.

Anda perlu mempertimbangkan dua mode berbagi file berikut secara paralel:

  • Modus penguncian transaksi.
  • Mode normal berbagi file.

Mode mana pun yang lebih ketat adalah mode yang berlaku.