понял, а какую задачу мы решаем?
если мы говорим о простых файлах, то с появления NTFS декларировалось, что файл не будет битым, даже если отключить писание, т.е. он просто не будет считаться записанным.
а если БД, то там обычно есть специальные флаги, которые говорят не использовать кэш ОС
при этом целостность БД обеспечивается исключительно наличием питания. что логично по соотношению производительность/надежность
Ну я что-то типа базы данных пишу. Но вручную заниматься кешированием и чтением/записью в обход кеша ОС - достаточно сложно, ресурсозатратно, чревато серьёзными ошибками. Притом, это далеко не всегда производительный путь. К примеру, у меня есть бенчмарки записи в файл, там 100Мб пишется за 200мск. А без кеширования пару секунд. Если запись в файл нечастая - то есть возможность распараллелить ресурсы: пока что-то пишется на диск - можно спокойно юзать процессор. Если писать это вручную - получается сложно. Кроме того асинхронные функции создают лишние потоки, что наверняка тоже не лучшим образом сказывается на производительности. Можно мутить IOCP - ну там вообще гайки. Вот я и думаю, как найти компромисс, между простотой реализации, скоростью и тем уровнем сохранности данных, который меня интересует.
посмотри, Дима, готовые реализации баз, в смысле исходники, просто уже я думаю над эти поработал народ немало
Это не путь настоящего оптимизатора )
Обсуждают сегодня