Оппортунистической блокировки

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

Оппортунистическая блокировка координирует кэширование и согласованность данных между клиентами и серверами и несколькими клиентами. Согласованные данные — это данные, которые являются одинаковыми по сети. Иными словами, если данные согласованы, данные на сервере и все клиенты синхронизируются.

Оппортунистическая блокировки не являются командами клиента на сервере. Они являются запросами от клиента к серверу. С точки зрения клиента они являются уступающей. Другими словами, сервер предоставляет такие блокировки всякий раз, когда другие факторы делают блокировки возможными.

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

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

Максимальное количество одновременно создаваемых гибких блокировок ограничено только объемом доступной памяти.

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

Оппортунистическая блокировки — это очень ограниченное использование для приложений. Единственная практическая работа — Проверка сетевого перенаправителя или оппортунистической блокировки сервера. Как правило, файловые системы реализуют поддержку уступающей блокировки. Как правило, приложения применяют уступающую управление блокировками к драйверам файловой системы. Любой пользователь, реализующий файловую систему, должен использовать набор устанавливаемых файловых систем (IFS). Любой пользователь, разрабатывающих драйвер устройства, отличный от устанавливаемой файловой системы, должен использовать набор драйверов для Windows (WDK).

Уступающей блокировки и связанные с ними операции являются надмножеством части оппортунистической блокировки протокола Интернета (CIFS), Интернет-черновика. Протокол CIFS — это улучшенная версия протокола SMB. Дополнительные сведения см. в статье Обзор протокола SMB и протокола CIFS. Интернет-черновик CIFS явно определяет, что реализация CIFS может реализовать уступающей блокировку, отклонить их.

В следующих разделах описываются уступающей блокировки.

В этом разделе

Раздел Описание
Локальное кэширование
Локальное кэширование данных — это метод, используемый для ускорения сетевого доступа к файлам данных. Он включает кэширование данных на клиентах, а не на серверах, когда это возможно.
Согласование данных
Если данные согласованы, данные на сервере и все клиенты синхронизируются. Один из типов программной системы, обеспечивающей согласованность данных, — это система контроля версий (RCS).
Как запросить уступающую блокировку
Для запроса уступающей блокировки сначала открывается файл с разрешениями и флагами, соответствующими приложению, открывающему файл. Все файлы, для которых будут запрошены уступающей блокировки, должны быть открыты для перекрывающихся (асинхронных) операций.
Ответ сервера на открытые запросы к заблокированным файлам
Вы можете уменьшить влияние приложения на другие клиенты и влияние их на приложение, предоставив максимально возможный общий доступ, запросив минимальный уровень доступа и используя наименее агрессивную оппортунистической блокировку, подходящую для вашего приложения.
Типы уступающей блокировки
Описывает уровень 1, уровень 2, пакетную обработку и фильтрацию уступающей блокировки.
Разбиение уступающей блокировки
Разбиение уступающей блокировки — это процесс снижения блокировки, которую один клиент имеет на файл, чтобы другой клиент мог открыть файл с оппортунистической блокировкой или без нее.
Примеры оппортунистической блокировки
Схемы представлений сетевого трафика для уступающей блокировки уровня 1, оппортунистической блокировки пакетной службы и фильтра оппортунистической блокировки.
Операции оппортунистической блокировки
Если приложение запрашивает уступающую блокировку, все файлы, для которых он запрашивает блокировки, должны быть открыты для перекрывающихся (асинхронных) входных и выходных данных с помощью функции CreateFile с флагом File _ Flag _ OVERLAPPED .

Дополнительные сведения о уступающей блокировке см. в документе Интернет – черновике CIFS. Все расхождения между этой темой и текущим черным черновиком CIFS должны быть разрешены в соответствии с черновиком CIFS Интернета.