ScholarGate
Assistente

Protocolos de Controle de Concorrência

Protocolos de controle de concorrência são os métodos — bloqueio (locking), ordenação por carimbo de data/hora (timestamp ordering), validação otimista e multiversionamento — que agendam transações concorrentes para que o resultado seja equivalente a uma execução serial.

Encontrar tema com PaperMindEm breveFind papers & topics
Tools & resources
Baixar slides
Learn & explore
VídeoEm breve

Definition

Um protocolo de controle de concorrência é um conjunto de regras que governa como transações concorrentes adquirem acesso a dados, de modo que cada agendamento permitido seja serializável (ou satisfaça um nível de isolamento mais fraco escolhido), preservando assim o isolamento sem forçar as transações a serem executadas uma de cada vez.

Scope

Este tópico abrange os protocolos que impõem a serializabilidade sob concorrência: bloqueio em duas fases e sua variante estrita, com detecção e prevenção de "deadlock"; protocolos de ordenação por carimbo de data/hora; controle de concorrência otimista com fases de leitura-validação-escrita; e controle de concorrência multiversão, incluindo isolamento de "snapshot". Ele trata de como cada protocolo garante agendamentos corretos e as "trade-offs" entre bloqueio, abortos e "throughput". Exclui a definição de serializabilidade em si e os mecanismos de recuperação que complementam o controle de concorrência.

Core questions

  • Como o bloqueio em duas fases garante agendamentos serializáveis?
  • Como os "deadlocks" são detectados, prevenidos ou resolvidos?
  • Como os protocolos de ordenação por carimbo de data/hora e otimistas diferem do bloqueio?
  • Como o controle de concorrência multiversão permite que os leitores evitem bloquear os escritores?
  • Quais são as "trade-offs" de "throughput" entre métodos pessimistas e otimistas?

Key concepts

  • bloqueio em duas fases
  • 2PL estrito e rigoroso
  • bloqueios compartilhados e exclusivos
  • detecção e prevenção de "deadlock"
  • ordenação por carimbo de data/hora
  • controle de concorrência otimista
  • controle de concorrência multiversão
  • isolamento de "snapshot"

Key theories

Bloqueio em duas fases
Se cada transação adquire todos os seus bloqueios antes de liberar qualquer um (uma fase de crescimento seguida por uma fase de encolhimento), todos os agendamentos resultantes são serializáveis por conflito; o bloqueio estrito em duas fases adicionalmente mantém os bloqueios de escrita até o "commit" para garantir a recuperabilidade.
Controle de concorrência otimista
As transações são executadas sem bloqueio e são validadas no momento do "commit" contra transações concorrentes; transações conflitantes são abortadas e repetidas, o que funciona bem quando a contenção é baixa.
Controle de concorrência multiversão
Ao manter múltiplas versões de cada item de dados, o sistema permite que as leituras acessem um "snapshot" consistente sem bloquear as escritas; o isolamento de "snapshot" é um esquema multiversão amplamente utilizado, embora possa permitir certas anomalias não serializáveis.

Clinical relevance

Os protocolos de controle de concorrência determinam como um banco de dados se comporta sob carga: o bloqueio é robusto, mas pode causar "deadlocks" e contenção; métodos otimistas e multiversão permitem alta concorrência de leitura; e a escolha do protocolo molda diretamente o "throughput" e a latência de sistemas transacionais de alto tráfego.

History

O bloqueio em duas fases e os bloqueios de predicado foram formalizados por Eswaran e colegas no System R em 1976; Kung e Robinson introduziram o controle de concorrência otimista em 1981; e a monografia de Bernstein, Hadzilacos e Goodman de 1987 unificou a teoria. Métodos multiversão e isolamento de "snapshot" tornaram-se posteriormente dominantes em sistemas de banco de dados amplamente utilizados devido ao seu comportamento favorável à leitura.

Debates

Isolamento de "snapshot" versus serializabilidade
O isolamento de "snapshot" oferece alta concorrência ao permitir que os leitores vejam um "snapshot" consistente, mas permite anomalias como "write skew" que a serializabilidade completa proíbe; os profissionais debatem quando sua garantia mais fraca é aceitável e quando variantes serializáveis são necessárias.

Key figures

  • Jim Gray
  • Philip Bernstein
  • H. T. Kung

Related topics

Seminal works

  • eswaran1976
  • kung1981
  • bernstein1987

Frequently asked questions

O que causa um "deadlock" e como ele é tratado?
Um "deadlock" ocorre quando duas ou mais transações cada uma detém um bloqueio que a outra precisa, de modo que nenhuma pode prosseguir. Os sistemas o tratam por detecção — construindo um grafo de espera, encontrando um ciclo e abortando uma transação vítima — ou por esquemas de prevenção que ordenam a aquisição de bloqueios ou usam carimbos de data/hora para decidir qual transação espera versus aborta.
Quando o controle de concorrência otimista é uma boa escolha?
Métodos otimistas brilham quando os conflitos são raros, porque as transações são executadas sem sobrecarga de bloqueio e apenas ocasionalmente falham na validação e tentam novamente. Sob alta contenção, eles desperdiçam trabalho em abortos e novas tentativas, então o bloqueio pessimista ou métodos multiversão são geralmente preferidos para cargas de trabalho com muitas escritas e propensas a conflitos.

Methods for this concept

Related concepts