Пакетная блокировка орlоск
Пакетная блокировка орlоск используются там, где обычные программы на клиенте ведут себя таким образом, что объем сетевого трафика растет выше приемлемого уровня для предоставляемой программой функциональности.
Например, командный процессор выполняет команды из командной процедуры, делая следующие шаги:
• Открывает командную процедуру
• Ищет "следующую строку" в файле
• Считывает строку из файла
• Закрывает файл
• Выполняет команду
Этот процесс повторяется для каждой команды, выполняемой из файла командной процедуры. Очевидно, что это приводит к обработке множества файлов, создавая тем самым сетевой трафик, который можно было бы сократить, если бы программа просто оставляла файл открытым, считывала строку, выполняла команду и затем считывала новую строку.
Пакетное блокирование действует именно так, позволяя клиентам пропускать излишние запросы открытия и закрытия. Когда командный процессор запрашивает следующую строку в файле, клиент либо запрашивает сервер, либо уже имеет эти данные в кэше опережающего чтения. В любом случае объем сетевого трафика клиента существенно сокращается.
Если сервер получает запрос для переименования или удаления файла, который имеет пакетную блокировку ор1оск, он информирует клиента, что необходимо удалить ор1оск. Клиент затем переходит в режим открыть и закрыть, описанный ранее.
Клиент А открывает файл и запрашивает орlоск. Если никто не открывал этот файл на сервере, то клиенту А предоставляется ор1оск. В приведенном выше случае клиент А сохраняет файл открытым для своей вызывающей программы для нескольких операций открыть/закрыть. Данные могут читаться для вызывающей программы с опережением; может также использоваться и другая оптимизация, например буферизированная блокировка.
Однако когда другой клиент запрашивает на сервере операцию открытия, переименования или удаления файла, клиент А должен очистить свои буферизированные данные и синхронизироваться с сервером. В большинстве случаев это включает закрытие файла при условии, что вызывающая программа клиента А считает, что она закрыла файл. Когда файл закрыт, может быть завершен запрос клиента В на открытие.
