Чит эксклюзивный доступ к заблокированным файлам в Windows (7) - PullRequest
0 голосов
/ 07 марта 2011

Сейчас я выполняю миссию по загрузке файлов в кэш страниц и хочу также загрузить заблокированные файлы.Целью является не что иное, как активное хранение набора данных в ОЗУ, сокращение времени загрузки в сторонних приложениях.

Теневые копии были моей первой мыслью об этом, но, к сожалению, похоже, что они разделяли кэши страниц.

Так есть ли способ обмана эксклюзивного механизма блокировки?Например, выборка фрагмента файла на диске, доступ к целому диску и прямое чтение (в любом случае, я боюсь, это еще один разделенный кеш страниц)?

Или существует другой подход к управлению кешем страниц, например, некоторый Windows API, который можетсказать загрузить определенный файл в pagecache?

1 Ответ

0 голосов
/ 27 сентября 2011

Вы можете получить доступ к заблокированным файлам в Windows из драйвера режима ядра или с помощью нашего продукта RawDisk. Но для вашей задачи (ускорения доступа к файлам БД) это не будет работать правильно, так как размер кэша файловой системы Windows ограничен (он не будет содержать ГБ данных).

В общем, если бы я разрабатывал большой программный проект (для небольшого приложения необходимый объем работы просто огромен), я бы сделал следующее: создаю виртуальный диск, поддерживаемый хранилищем в памяти, представляем файл БД к приложению через этот виртуальный диск и асинхронно изменяет содержимое диска на диск. Все это должно быть сделано в режиме ядра (здесь время разработки увеличивается до 12-15 человеко-месяцев работы).

Теоретически то же самое можно сделать с помощью одного из наших продуктов виртуального хранилища, но возврат в пользовательский режим для обработки обратного вызова исключит все, что вы получите от перемещения данных в оперативную память.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...