Opportunistic lock (OpLock) é uma forma de bloqueio de arquivos usada para facilitar o cache e controle de acesso e melhorar o desempenho.
OpLocks são feitos para permitir o acesso simultâneo a arquivos por vários usuários enquanto também melhora o desempenho para caches sincronizados. Em um cache sincronizado, quando um cliente solicita um arquivo de um servidor, o arquivo compartilhado pode ser armazenado em cache para evitar viagens subsequentes pela rede para recuperá-lo.
OpLock é parte do protocolo Server message block (SMB), também conhecido como protocolo Common Internet File System (CIFS). OpLocks incluem bloqueios em lote, bloqueios exclusivos e OpLocks nível 2.
p>b>Fechaduras em lote são usadas onde frequentes solicitações de abertura e fechamento podem ser emparelhadas; o sistema ignora solicitações de fechamento desnecessárias se o arquivo for reaberto, reduzindo assim o impacto de desempenho das solicitações.
>b>Fechaduras exclusivas são usadas quando um cliente é a única entidade ou processo que tem o arquivo aberto. Nesse caso, todas as alterações são colocadas em cache antes de enviar o ficheiro de volta para o servidor.
>b>Level 2 OpLocks entram em vigor quando um OpLock detido por um cliente é aberto por um terceiro, substituindo o anterior bloqueio exclusivo do cliente.
Um OpLock não é um comando mas sim um pedido tipicamente enviado do cliente para o servidor e cumprido em condições permitidas ou na oportunidade particular para a qual é nomeado. Quando um bloqueio não é mais válido, uma quebra é enviada ao cliente para terminá-lo.
Existem algumas implicações que o OpLocks pode causar corrupção e problemas de desempenho em ISAM (Indexed Sequential Access Method) bases de dados. Como resultado, algumas empresas - entre elas a Symantec - recomendaram a desativação do OpLocks como uma melhor prática.