[firebase-br] Muitos Deadlock no banco

Marcelo Moreira marcelomoreira.souza em gmail.com
Qua Out 28 15:36:54 -03 2009


Dougas,

Tenho varios tipos de ventos como: enviar um email, retorno de contato,
abertura de chamado, etc.
Vou dar uma analisada na sua explicacao e ver o que eu faco.
Realmente minha aplicacao esta ignorando os deadlock e passando para frente
e foi por isso que perguntei se isso poderia trazer algum problema para o
banco.
obrigado pela atencao.

2009/10/28 Douglas Tosi <douglasht em gmail.com>

> 2009/10/28 Marcelo Moreira <marcelomoreira.souza em gmail.com>:
> > Para despachar estes eventos eu tenho 20 aplicativos clientes conectados
> no
> > banco e fazendo um select mais ou menos assim:
>
> Em casos de alta concorrência como este a aplicação tem que estar
> preparada para tratar os deadlocks. No seu caso imagino que ela ignore
> o evento lido e tente ler novamente. Os deadlocks em si não são o
> problema. O banco está fazendo a parte dele.
>
> Se ainda assim você quiser evitar deadlocks, uma possível solução é
> usar uma técnica de particionamento. Por exemplo, imagine que você tem
> 20 desses processos que leem um evento e atualizam. Cada um é numerado
> de 0 a 19 e passa esse número para o select em uma variável
> id_processo. E imagine que o id_evento é um autoincremento. Você pode
> fazer cada processo tratar um subconjunto diferente de dados incluindo
> uma operação mod no where:
>
> ... and mod(EV.ID_EVENTO, 20) = :id_processo
>
> Impede os deadlocks, já que cada processo passa a ver apenas um
> subconjunto dos dados, mas se um processo desses cair, vai começar a
> acumular dados. Não sei se esta idéia se encaixa no que você está
> fazendo, mas serve pra ilustrar que tem solução. Por que você usa 20
> processos pra despachar os eventos? O que significa "despachar" os
> eventos?
>
> hth,
> --
> Douglas Tosi
> www.sinatica.com
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Marcelo Moreira
(31) 8420-2723
E-mail / MSN: marcelomoreira.souza em hotmail.com
E-mail: marcelomoreira.souza em gmail.com
Skype: marcelomoreira.souza



Mais detalhes sobre a lista de discussão lista