Вместо батарейки можно поставить какой-нибудь, я не знаю, ионистор или конденсатор. Там много не надо: записать очередь операций записи на флешку и всё, винч готов к выключению.
Нынешние HDD гарантируют запись только одного сектора. Поэтому любая транзакция - это куча изменений, которые должны долететь до диска в определённом порядке. Пишем в журнал, flush, пишем в таблицы, flush, чистим журнал, flush. Каждый flush - это 10 мс на позиционирование головок. Ну о какой производительности тут можно говорить? А если бы было резервное питание внутри диска, то писать можно было бы в той последовательности, в которой это удобно делать с точки зрения геометрии диска, а от каких-то операций записи вообще можно было бы отказаться (если у нас есть куча операций записи в один и тот же сектор, можно выполнить только последнюю).
no subject
Date: 2013-11-07 11:20 am (UTC)Нынешние HDD гарантируют запись только одного сектора. Поэтому любая транзакция - это куча изменений, которые должны долететь до диска в определённом порядке. Пишем в журнал, flush, пишем в таблицы, flush, чистим журнал, flush. Каждый flush - это 10 мс на позиционирование головок. Ну о какой производительности тут можно говорить? А если бы было резервное питание внутри диска, то писать можно было бы в той последовательности, в которой это удобно делать с точки зрения геометрии диска, а от каких-то операций записи вообще можно было бы отказаться (если у нас есть куча операций записи в один и тот же сектор, можно выполнить только последнюю).