Closed gustavovzqz closed 1 month ago
Resposta do que eu acho que seja o ideal até o momento:
Provavelmente a tabela de bloqueio será parecida com essa:
$rl_i(x)$ | $wl_i(x)$ | $ul_i(x)$ | $irl_i(x)$ | $iwl_i(x)$ | $iul_i(x)$ | |
---|---|---|---|---|---|---|
$rl_j(x)$ | + | - | - | + | - | - |
$wl_j(x)$ | - | - | - | - | - | - |
$ul_j(x)$ | + | - | - | + | - | - |
$irl_j(x)$ | + | - | - | + | + | + |
$iwl_j(x)$ | - | - | - | + | + | + |
$iul_j(x)$ | + | - | - | + | + | + |
Com a adição do bloqueio do tipo certify lock e com o ajuste das compatibilidades que envolvem o protocolo 2V2PL (escrita e leitura...)
Sim, é necessário.
A melhor alternativa é montar todo o esquema do banco de dados antes, declarando no código como o banco deve ser.
$\text{Banco de Dados} \rightarrow \text{Tablespace} \rightarrow \text{Tabela} \rightarrow \text{Página} \rightarrow \text{Tupla}$
Pode ser o caso de remover o "Tablespace".
O protocolo 2V2PL SEM MÚLTIPLA GRANULOSIDADE e SEM BLOQUEIO DO TIPO UPDATE possui a seguinte tabela de bloqueios:
O objetivo dessa issue é responder as seguintes perguntas em relação ao protocolo desse projeto:
1. Em um protocolo de múltipla granulosidade, uma árvore modela a propagação do bloqueio para os descendentes e ascendentes. É necessário fazer isso nesse caso? (lembre-se que o bloqueio propagado não é necessariamente o mesmo bloqueio do nó)
2. Se as operações possuem múltipla granulosidade, o input original precisa especificar exatamente o objeto tratado (uma tupla? uma página?) Dito isso, duas alternativas podem surgir:
Uma instância do banco de dados será definida e as operações precisam ser referentes aos objetos criados.
Os objetos serão instanciados conforme processamento das próprias consultas. Se uma consulta deseja ler uma tupla em página tal em tabela tal, ela precisa definir exatamente isso na consulta e o objeto será instanciado em tempo de execução.
No primeiro exemplo, a consulta segue um padrão bem próximo ao do livro e a árvore da primeira pergunta mas os objetos precisam ser instanciados anteriormente. No segundo, os objetos são instanciados conforme consulta, que precisa ser melhor especificada.