Как базы данных выполняют атомарный ввод-вывод?

Базы данных, такие как Oracle, SQL Server и т. Д., Очень хороши в обеспечении целостности данных. Если бы я хотел написать хранилище данных, которое, как я знал, либо сохранит некоторые данные, либо откажет (т.е. будет ACID), я бы использовал базу данных, подобную MySQL, под ним в качестве фактического хранилища, потому что эти проблемы уже решены.

Однако, как выпускник без компьютерных наук, мне остается только гадать, как ACID на самом деле работает на очень низком уровне. Я знаю, что Oracle, например, все время записывает данные в «оперативные журналы повторов», а затем выполняет «фиксацию» в какой-то момент, когда приложение сигнализирует о том, что транзакция должна быть зафиксирована.

Это этап «фиксации», который я хочу подробно рассмотреть и понять. Это случай просто записи «еще одного байта» на диск или преобразования 0 в 1 , чтобы сказать, что данная строка была успешно сохранена?

18
задан Neil Barnwell 9 February 2012 в 12:18
поделиться