2011-12-14 3 views
1

Сегодняшние жесткие диски используют все более агрессивное кэширование с переупорядочением и иногда даже полностью игнорируют кеш-флеши для повышения производительности.Как вы гарантируете атомарность транзакций и согласованность в файловой системе с агрессивным кэшированием жесткого диска и переупорядочением?

Можно ли гарантировать атомарность (транзакции) и согласованность в таких случаях? Существуют ли какие-либо известные методы для устранения проблем с кешем?

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

ответ

1

Это очень поздний ответ, но я думал, что отвечу, если кто-то другой столкнется с той же проблемой.

Я являюсь одним из аспирантов, которые работали над выпуском Coerced Cache Eviction (CCE). Я был бы рад ответить на любые ваши вопросы. Я согласен, что для накопителей со сложными кэшами CCE может занять много времени, чтобы очистить кеш.

Мы разработали новую файловую систему под названием файловая система No-Order (NoFS), которая позволяет избежать проблемы по дизайну. В этой файловой системе вы можете иметь согласованность даже тогда, когда файловая система запускается поверх дисков, которые не соблюдают команду flush. Вы можете прочитать об этом здесь: http://pages.cs.wisc.edu/~vijayc/nofs.htm

К сожалению, NoFS не предоставляет транзакции в настоящее время. Сейчас мы работаем над этой проблемой в UW Madison.