deadlocks - entendimento
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.
obrigada.
Mariana Carvalho
Curtidas 0
Respostas
Alex Lekao
15/04/2013
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
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
GOSTEI 0
Mariana Carvalho
15/04/2013
certo, mas o que pode causar isso? memoria insuficiente? muitas acesso em um mesmo conjunto de dados...?
GOSTEI 0
Alex Lekao
15/04/2013
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.
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.
GOSTEI 0
Mariana Carvalho
15/04/2013
nesse caso, por exemplo, podemos ter perda de dados ou isso deve ser informado pelo sistema ou pelo proprio para o usuario?
GOSTEI 0
Alex Lekao
15/04/2013
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.
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.
GOSTEI 0
Mariana Carvalho
15/04/2013
Alex, entendi a ideia!!!
Obrigada pela atençao.
Obrigada pela atençao.
GOSTEI 0
Alex Lekao
15/04/2013
de nada. rsrsr
Precisando posta ai...
se estiver ao meu alcance, se eu souber tento ajudar.
Abraco.
Alex - Lekao
Precisando posta ai...
se estiver ao meu alcance, se eu souber tento ajudar.
Abraco.
Alex - Lekao
GOSTEI 0
Mariana Carvalho
15/04/2013
obrigada!!!
GOSTEI 0
José
15/04/2013
Como aparentemente a duvida foi solucionada, estou dando o tópico por concluído.
GOSTEI 0
Mariana Carvalho
15/04/2013
totalmente.
GOSTEI 0