Bloqueos oportunistas

Un bloqueo oportunista (llamado también oplock) es un bloqueo colocado por un cliente en un archivo que reside en un servidor. En la mayoría de los casos, un cliente solicita un bloqueo oportunista para almacenar los datos en la caché local y así reducir el tráfico y mejorar el tiempo de respuesta aparente. Los redirectores de red en los clientes con servidores remotos y las aplicaciones cliente en servidores locales usan bloqueos oportunistas.

Nota

Los artículos sobre bloqueos oportunistas que se encuentran en esta sección pertenecen principalmente a las aplicaciones cliente, aunque se proporciona cierta información para los redireccionadores de red. Puede encontrar más información sobre el interbloqueo para los redireccionadores de red en los artículos Oplocks de Windows WDK.

Información general

Los bloqueos oportunistas coordinan el almacenamiento en caché de datos y la coherencia entre clientes y servidores, y entre varios clientes. Los datos coherentes son los datos que no varían en la red. Es decir, si los datos son coherentes, se sincronizan los datos del servidor y todos los clientes.

Los bloqueos oportunistas no son comandos del cliente al servidor. Son solicitudes del cliente al servidor. Desde el punto de vista del cliente, son oportunistas. En otras palabras, el servidor concede estos bloqueos siempre que otros factores los hacen posibles.

Cuando una aplicación local solicita acceso a un archivo remoto, la implementación de bloqueos oportunistas es transparente para la aplicación. El redirector de red y el servidor implicado abren y cierran automáticamente los bloqueos oportunistas. Sin embargo, los bloqueos oportunistas también se pueden usar cuando una aplicación local solicita acceso a un archivo local y se debe delegar el acceso de otras aplicaciones y procesos para evitar daños en el archivo. En este caso, la aplicación local solicita directamente un bloqueo oportunista desde el sistema de archivos local y almacena en la caché local el archivo. Cuando se usa de esta manera, el bloqueo oportunista es efectivamente un semáforo administrado por el servidor local, y se utiliza principalmente para los fines de coherencia de datos en el archivo y la notificación de acceso al archivo.

Para usar bloqueos oportunistas en la aplicación, debe estar familiarizado con los modos de acceso y uso compartido de archivos descritos en Creación y apertura de archivos.

El número máximo de bloqueos oportunistas simultáneos que se puede crear solo está limitado por la cantidad de memoria disponible.

Las aplicaciones locales no deben intentar solicitar bloqueos oportunistas desde servidores remotos. DeviceIoControl devolverá un error si lo intentan.

El uso de los bloqueos oportunistas por parte de las aplicaciones es muy limitado. El único uso práctico es probar un redirector de red o un controlador de bloqueo oportunista del servidor. Normalmente, los sistemas de archivos implementan la compatibilidad con los bloqueos oportunistas. Las aplicaciones generalmente dejan la administración de los bloqueos oportunistas a los controladores del sistema de archivos. Cualquier persona que implemente un sistema de archivos debe usar el Kit de Sistema de archivos instalables (IFS). Cualquier persona que desarrolle un controlador de dispositivo que no sea un sistema de archivos instalables debe usar el Kit de controlador de Windows (WDK).

Los bloqueos oportunistas y las operaciones asociadas son un superconjunto de la parte de bloqueo oportunista del protocolo Sistema de archivos de Internet común (CIFS), un borrador de Internet. El protocolo CIFS es una versión mejorada del protocolo Bloque de mensajes del servidor (SMB). Para más información, consulte Introducción a los protocolos CIFS y SMB de Microsoft. El borrador de Internet de CIFS identifica explícitamente que una implementación de CIFS puede implementar bloqueos oportunistas negándose a concederlos.

En los temas siguientes se identifican bloqueos oportunistas.

En esta sección

Tema Descripción
Almacenamiento en caché local El almacenamiento en caché local de datos es una técnica que se usa para acelerar el acceso de red a los archivos de datos. Implica el almacenamiento en caché de datos en clientes en lugar de en servidores, siempre que sea posible.
Coherencia de datos Si los datos son coherentes, se sincronizan los datos del servidor y todos los clientes. Un tipo de sistema de software que proporciona coherencia de datos es un sistema de control de revisiones (RCS).
Cómo solicitar un bloqueo oportunista Los bloqueos oportunistas se solicitan abriendo primero un archivo con los permisos y las marcas adecuados para la aplicación que abre el archivo. Todos los archivos para los que se vayan a solicitar bloqueos oportunistas deben abrirse para la operación superpuesta (asincrónica).
Respuesta del servidor a solicitudes de apertura de archivos bloqueados Puede minimizar el impacto que tiene la aplicación en otros clientes y el impacto que ellos tienen en la aplicación al conceder tanto uso compartido como sea posible, solicitar el nivel de acceso mínimo necesario y usar el bloqueo oportunista menos intrusivo adecuado para la aplicación.
Tipos de bloqueos oportunistas Describe los bloqueos oportunistas de nivel 1 y 2, por lotes y de filtro.
Interrupción de un bloqueo oportunista Interrumpir un bloqueo oportunista es el proceso de degradar el bloqueo que un cliente tiene sobre un archivo para que otro cliente pueda abrirlo, con o sin un bloqueo oportunista.
Ejemplos de bloqueo oportunista Diagramas de vistas de tráfico de red para un bloqueo oportunista de nivel 1, un bloqueo oportunista por lotes y un bloqueo oportunista por filtro.
Operaciones de bloqueo oportunista Si una aplicación solicita bloqueos oportunistas, todos los archivos para los que solicita bloqueos deben abrirse para la entrada y salida superpuestas (asincrónicas) mediante la función CreateFile con la marca FILE_FLAG_OVERLAPPED.

Para más información sobre los bloqueos oportunistas, consulte el documento Borrador de Internet de CIFS. Las discrepancias entre este tema y el Borrador de Internet de CIFS actual deben resolverse en favor del segundo.

Vea también

Guía de administración de protocolos y acceso a archivos de NetApp

Interbloqueos (WDK)