-
Não se trata de técnica, é um protocolo. Serve para que o sistema de banco de dados faça o controle da execução
quando existem transações que estão concorrendo entre si, para garantir a
consistência do banco de dados. Podemos considerar isso como sendo um controle de concorrência.
-
Apesar do artigo do Pedro Paulo indicar que timestamp é um protocolo, vejo como uma técnica ou algoritmo.
Protocolo de timestamp está relacionado ao TCP: http://en.wikipedia.org/wiki/Time_stamp_protocol
Existe um algoritmo para esta questão: http://en.wikipedia.org/wiki/Timestamp-based_concurrency_control
A questão se refere ao fato que timestamp apenas indica qual dado é mais novo. Assim, se um dado passar de A (08:00) para B(08:03), o algoritmo sabe que B é mais novo. Se próximo dado for C (08:01), o A se perdeu.
-
Um modo de prevenir deadlocks, é utilizar o conceito de registro
de timestamp da transação, normalmente são baseados na ordem em
que as transações são iniciadas. Portanto, se a transação T1
inicia antes da transação T2, então T1 terá o menor valor de
registro de timestamp.
-
No timestamp, você captura um dado e associa à um rótulo de tempo quando ocorre o commit. Como os dados do ambiente operacional variam muito, pode ocorrer deles variarem bastante entre 2 commits, ou seja, essa variação intermediária é perdida, sendo inadequado o uso de timestamps.
-
Gabarito: Certo.
É como se cada transação do banco de dados recebesse um "carimbo" com o horário de quando aconteceu. Como os dados são transientes, o dado vai ser perdido quando a transação acabar. Em função disso, o timestamp não é muito adequado.
Caso esteja equivocado, mandem mensagem.
Deixo, como contribuição, um artigo do DevMedia que fala um pouco sobre o controle de concorrência por meio do timestamp: https://www.devmedia.com.br/protocolo-com-base-em-timestamp-controle-de-concorrencia-em-bancos-de-dados/27810.
Bons estudos!
-
Acrescentando:
As principais técnicas de controle de concorrência são:
- bloqueio (locking);
- ordenamento de registro de timestamp;
- multiversão;
- validação ou certificação (protocolos otimistas).
Com registros de timestamp, pode ocorrer starvation(Starvation é quando um processo não consegue ser executado) se uma transação for continuamente abortada e reiniciada.
O algoritmo básico pode provocar rollback em cascata.
Logo, para dados transitórios, não é viável o uso dessa tecnica, sendo que continuamente os dados terão seu tempo esgotado e logo em seguida serão adicionados outros.
Um registro de timestamp (TS) é um identificador único criado pelo SGBD para identificar uma transação. Os registros são gerados por um contador incremental ou utilizam o valor corrente do relógio do sistema (data/hora/minuto/segundo/milissegundo).