Новости и события » Hi-Tech » Для Linux представлена файловая система TxFS с поддержкой ACID-транзакций

Для Linux представлена файловая система TxFS с поддержкой ACID-транзакций

Для Linux представлена файловая система TxFS с поддержкой ACID-транзакций

Как сообщает opennet.ru группа исследователей из Техасского университета в Остине разработала новую файловую систему TxFS, предоставляющую встроенную поддержку транзакций, удовлетворяющих требованиям ACID (атомарность, согласованность, изолированность, надежность). Код ФС доступен только в виде модифицированных исходных текстов ядра Linux 3.18, патчей для других версий пока нет.

TxFS дает возможность выполнить атомарное применение сразу группы операций над файлами. Например, в рамках изолированной транзакции можно выполнить несколько операций записи в разные файлы, а затем атомарно применить все накопленные изменения, используя синтаксис begin/commit, похожий на транзакции в СУБД. Или можно откатить все внесенные в разные файлы изменения в случае, если в процессе обработки данных были выявлены какие-то проблемы.

ret = fs_tx_begin; fd1 = open("file1.txt", O_RDWR | O_APPEND, 0644); fd2 = open("file2.txt", O_RDWR | O_APPEND, 0644); write(fd1, "foo&92;n", 4); write(fd2, "bar&92;n", 4); ret = fs_tx_commit; // или fs_tx_abort для отмены транзакции

ФС TxFS построена поверх штатной инфраструктуры журналирования jbd2 (Journaling block device) и файловой системы Ext4. Производительность системы сопоставима с производительностью обычной файловой системы Ext4. Реализация достаточно компактная и включает в себя всего 5200 строк кода, из которых 1300 составляет внутренний код (разрешение конфликтов, реализация системных вызовов), 1600 - изменения в VFS, 900 - изменения кода журналирования JBD2, 1200 - изменения в ext4 и 200 - изменения кода управления памятью. Помимо кода для расширения ext4 и jbd2 все остальные компоненты универсальны и в будущем могут быть использованы для адаптации TxFS для других ФС, таких как ZFS.

API для управления транзакциями реализован через надстройку над тремя новыми системными вызовами, обеспечивающими открытие, фиксацию и отмену транзакций. В настоящее время подготовлены порты SQLite и Git, использующие TxFS для обеспечения гарантированной устойчивости к сбоям. Благодаря упрощению логики обеспечения атомарности в приложениях и сокращению числа сбросов буферов через fsync, порт SQLite на базе TxFS показал в тесте TPC-C увеличение производительности в 1.6 раза. Пропускная способность приложения Android Mail при использовании порта SQLite возросла в 2.3 раза. Порт Git продемонстрировал существенное увеличение надежности и способность предотвращать повреждения данных и нарушения целостности при сбоях во время выполнения операций с репозиторием.

Android


Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх