Транзакционная NTFS - Transactional NTFS
Транзакционная NTFS (сокращенно TxF[1]) - компонент, введенный в Виндоус виста и присутствует в более поздних версиях 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 интегрируется с Координатор распределенных транзакций чтобы гарантировать, что изменение успешно применено ко всем машинам.
За исключением операций чтения, использование Transactional NTFS для транзакций на Шифрованная файловая система файлы не поддерживаются в Windows Vista, пока Пакет обновления 1 и Windows Server 2008.[5]
Смотрите также
Рекомендации
- ^ а б c Олсон, Джейсон (2007). «Расширьте свои приложения с помощью транзакций файловой системы». Журнал MSDN. Microsoft. Архивировано из оригинал 30 августа 2008 г.. Получено 30 июня, 2015.
- ^ а б Microsoft. «Альтернативы использованию транзакционной NTFS». MSDN. Получено 30 июня, 2015.
- ^ «Стенограмма бета-чата NTFS (12 июля 2006 г.)». TechNet. Microsoft. 20 сентября 2006 г.. Получено 8 апреля, 2017.
- ^ «О транзакционной NTFS». Microsoft. 30 мая 2018 г.. Получено 2019-10-27.
Microsoft настоятельно рекомендует разработчикам использовать альтернативные средства для удовлетворения потребностей вашего приложения. Многие сценарии, для которых был разработан TxF, могут быть реализованы с помощью более простых и доступных методов. Кроме того, TxF может быть недоступен в будущих версиях Microsoft Windows.
- ^ Microsoft. «Когда использовать транзакционную NTFS (Windows)». MSDN. Архивировано из оригинал 17 сентября 2008 г.. Получено 30 июня, 2015.
внешняя ссылка
- Потому что мы можем, блог разработчиков Microsoft, в котором концептуально и в коде обсуждается TxF.
- Диспетчер транзакций ядра документация в Microsoft Developer Network.