Транзакционная NTFS
Транзакционная NTFS (сокращенно TxF [1] ) — компонент, представленный в Windows Vista и присутствующий в более поздних версиях Microsoft Windows операционной системы , который привносит концепцию атомарных транзакций в NTFS файловую систему , позволяя разработчикам приложений Windows писать процедуры вывода файлов, которые гарантированно будут либо полностью успешными, либо полностью провалиться. [2] Основные компоненты операционной системы, включая «Восстановление системы» , «Планировщик задач » и «Центр обновления Windows» , для обеспечения стабильности полагаются на TxF. [1] Во время разработки Windows Vista WinFS также использовала TxF для хранения файлов. [3]
Из-за его сложности и различных нюансов, которые разработчикам необходимо учитывать при разработке приложений, Microsoft объявила TxF устаревшим и заявила, что он может быть удален в будущей версии Windows. [4] Microsoft настоятельно рекомендует разработчикам изучить возможность использования альтернатив, а не использовать платформу Transactional NTFS API, которая может быть недоступна в будущих версиях Windows. [2]
Обзор
[ редактировать ]Транзакционная NTFS позволяет создавать, изменять, переименовывать и удалять файлы и каталоги атомарно. Использование транзакций обеспечивает корректность работы; в серии файловых операций (выполняемых как транзакция) операция будет зафиксирована, если все операции завершатся успешно. В случае любого сбоя вся операция будет отменена и завершится сбоем.
Транзакционная NTFS реализована поверх диспетчера транзакций ядра , который представляет собой компонент ядра Windows, представленный в Windows Vista и обеспечивающий обработку транзакций объектов в ядре. [1] Файловая система NTFS уже поддерживает журналирование низкоуровневых операций, таких как запись блока данных. Транзакционная NTFS расширяет эту возможность и включает в себя:
- Атомарные операции с одним файлом. Типичным примером является сохранение файла из приложения; если приложение или компьютер выйдет из строя во время записи файла, то можно будет записать только часть файла, что может привести к повреждению файла. Это может стать очень серьезной проблемой, если предыдущая версия файла будет перезаписана, поскольку данные, скорее всего, будут потеряны.
- Атомарные операции, охватывающие несколько файлов. Если приложению необходимо обновить несколько файлов одновременно с набором изменений, все необходимые файловые операции могут выполняться как одна транзакция, предотвращая несогласованные обновления в случае сбоя.
- Атомарные операции, охватывающие несколько компьютеров. Выполнение одной и той же операции на нескольких компьютерах является довольно распространенной административной задачей в корпоративной сети; Транзакционная NTFS интегрируется с координатором распределенных транзакций , чтобы гарантировать успешное применение изменения на всех машинах.
За исключением операций чтения, использование транзакционной NTFS для транзакций с файлами зашифрованной файловой системы не поддерживается в Windows Vista до выхода пакета обновления 1 и Windows Server 2008 . [5]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с Олсон, Джейсон (2007). «Расширьте возможности своих приложений с помощью транзакций файловой системы» . Журнал MSDN . Майкрософт . Архивировано из оригинала 30 августа 2008 года . Проверено 30 июня 2015 г.
- ^ Jump up to: а б Майкрософт . «Альтернативы использованию транзакционной NTFS» . MSDN . Проверено 30 июня 2015 г.
- ^ «Стенограмма бета-чата NTFS (12 июля 2006 г.)» . ТехНет . Майкрософт . 20 сентября 2006 года . Проверено 8 апреля 2017 г.
- ^ «О транзакционной NTFS» . Майкрософт. 30 мая 2018 года . Проверено 27 октября 2019 г.
Microsoft настоятельно рекомендует разработчикам использовать альтернативные средства для удовлетворения потребностей вашего приложения. Многие сценарии, для которых был разработан TxF, могут быть реализованы с помощью более простых и доступных методов. Более того, TxF может быть недоступен в будущих версиях Microsoft Windows.
- ^ Майкрософт . «Когда использовать транзакционную NTFS (Windows)» . MSDN . Архивировано из оригинала 17 сентября 2008 года . Проверено 30 июня 2015 г.
Внешние ссылки
[ редактировать ]- Потому что мы можем , блог разработчиков Microsoft, в котором TxF обсуждается как концептуально, так и в коде.
- Документация по диспетчеру транзакций ядра в сети Microsoft Developer Network.