deadlocks - entendimento

15/04/2013

1

acabei de fazer uma leitura sobre deadlock, achei meio confusa(talvez devesse ler mais vezes), mas alguem poderia me dar um exemplo pratico, vivido realmente, o que pode causar esses deadlocks.

obrigada.
Responder

Posts

16/04/2013

Alex Lekao

Ola Mariana, boa tarde!!!

Basicamente, eh como se eu e vc estivéssemos querendo usar recurso bloqueados um pelo outro, e como para se usar um recurso ele precisa ser liberado, então ficamos esperando um pelo outro a liberação do recurso em uso um do outro, acho que ficou meio complicado... rsrsr

eu tenho um recurso bloqueado que estou utilizando e vc tem um recurso bloqueado que esta usando, então eu preciso do recurso que vc esta bloqueando e vc usar o que eu estou bloqueando, neste ponto ficamos um aguardando pelo outro, neste caso dá-se o deadlock.

de uma olhada neste conteúdo que fala sobre deadlock e tratamento dele, acho que vai ajudar no esclarecimento.

http://msdn.microsoft.com/pt-br/library/ms177433(v=sql.105).aspx

Abraco.

Alex - Lekao
Responder
certo, mas o que pode causar isso? memoria insuficiente? muitas acesso em um mesmo conjunto de dados...?
Responder

17/04/2013

Alex Lekao

então, a principio vc tem deadlock para cada tipo de situação, tem o deadlock com relação a memoria, acesso a arquivos etc.

no caso do banco de dados se não em engano o SQL vai trabalhar em cima do controle de concorrência para evitar esse tipo de acontecimento, mas eh praticamente impossível prever e/ou evitar o acontecimento de um deadlock.

Acredito que em alguns casos, memoria e outra situação com relação a parte física ou de configurações podem ajudar a haver maior incidência ou não.

mas o "assunto" deadlock eh muito vasto e de grande complexidade a relação entendimento e ele eh pouco tratado, ou pouco discutido mais a fundo no caso, eu ate hoje não encontrei ninguém para explicar mais efetivamente o que eh um deadlock, praticamente ouvia sempre a mesma coisa, "são dois acessos simultâneos ao um mesmo registro bloqueado, a grosso modo eh isso.", então fica um pouco difícil, honestamente o meu entendimento eh limitadíssimo neste assunto.
Responder
nesse caso, por exemplo, podemos ter perda de dados ou isso deve ser informado pelo sistema ou pelo proprio para o usuario?
Responder

18/04/2013

Alex Lekao

Não entendi muito bem o que disse...

mas no caso da perca de dados, pode acontecer, visto que uma das requisições sera finalizada, ou no caso foi escolhida para o deadlock, para este a transaction acabou e todo o processo que era feito ate aquele momento eh descartado e volta para a o estado original, e a outra sessão continuara e terminara o seu processo.

não sei se podemos chamar exatamente de perca de dados, mas todo os dados que estavam sendo informados naquele lote de informações que estariam em cache, digamos assim, sera descartado.
Responder
Alex, entendi a ideia!!!
Obrigada pela atençao.
Responder

22/04/2013

Alex Lekao

de nada. rsrsr

Precisando posta ai...

se estiver ao meu alcance, se eu souber tento ajudar.

Abraco.

Alex - Lekao
Responder
obrigada!!!
Responder

17/08/2013

José

Como aparentemente a duvida foi solucionada, estou dando o tópico por concluído.
Responder
totalmente.
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira