Você está na página 1de 8

Aluno: Paulo Csar

Controle de concorrncia baseado em bloqueios de chaves de


ndice e uso de rvore B+.
Obedincia s regras do bloqueio de duas fases.
O Bloqueio em duas fases pode ser aplicado para o controle
de concorrncia em ndices.
A abordagem tradicional prejudica o desempenho pois a pesquisa
sempre iniciar pela raiz da arvore de ndices.
Ex:
Uma transao T quer inserir um registro (W), a raiz ser
bloqueada em modo exclusivo.
Logo, ocorre a interrupo de todas as outras transaes que
desejam acessar o ndice.
Aproveitando a estrutura de arvore do ndice, pode-se desenvolver outro
esquema de controle de concorrncia.
Quando uma pesquisa no ndice (leitura) estiver sendo executada, um
caminho na rvore percorrido da raiz folha; assim, uma vez que um n
j tenha sido acessado, os ns de nvel acima no seriam acessados
novamente. Logo, para bloqueios de leitura, uma vez que o bloqueio no
n filho seja obtido, o bloqueio no pai pode ser liberado.
Quando uma insero (gravao) estiver sendo aplicada a um n folha,
este deve ser bloqueado em modo exclusivo; entretanto, se esse n no
estiver cheio, a insero no causar alteraes em ns de ndice de nvel
acima na rvore, implicando que eles no necessitam estar bloqueados
exclusivamente.
Uma abordagem conservadora para inseres:
Bloquear o n raiz em modo exclusivo e, ento, acessar o n
filho apropriado da raiz.
Se o n filho no estiver cheio, o bloqueio no n raiz pode ser liberado.
Essa abordagem pode ser aplicada em todo o caminho da rvore at a
folha.
Uma abordagem alternativa mais otimista para inseres: Requisitar e
manter bloqueios compartilhados nos ns que levam ao n folha, com um
bloqueio exclusivo na folha.
Se a insero causar diviso na folha, a mesma se propagaria para
ns de nvel acima; nesse caso, os bloqueios em tais ns podem
ser alterados para o modo exclusivo.
Registros Fantasmas
O problema de registro fantasma (phanton) ocorre quando um novo
registro que esteja sendo inserido pela transao T satisfaz a mesma
condio que um conjunto de registros acessados por outra transao T'.
Por exemplo, T est inserindo um registro de EMPREGADO cujo NumDepto = 5,
enquanto T' est acessando todos os registros de EMPREGADO cujo NumDepto
= 5.
Se a ordem serial equivalente for T seguida de T', ento T' ler o novo registro de
EMPREGADO. Para a ordem serial T seguida de T, o novo registro no ser considerado.
As transaes conflitam logicamente e um registro fantasma pode aparecer
repentinamente no banco de dados.
Se outras operaes nas duas transaes conflitarem, o conflito causado pelo registro
fantasma pode no ser reconhecido pelo protocolo de controle de concorrncia.
Uma soluo para detectar um registro fantasma usar o
bloqueio de ndice.
Se a entrada de ndice for bloqueada antes que o registro possa ser
acessado, ento o conflito do registro fantasma pode ser detectado.
A transao T' solicitaria um bloqueio de leitura na entrada de ndice para
NumDepto = 5, e T solicitaria um bloqueio de escrita na mesma entrada antes
que se coloque o bloqueio propriamente nos registros.
Assim, uma vez que o bloqueio de ndice gera conflito, o conflito do fantasma
seria detectado.

Você também pode gostar