Fala André!<div>O sistema distribuido que estou desenvolvendo no momento se baseia justamente em Gearman, e uso MongoDB (in fact, Log::Dispatch + Log::Dispatch::MongoDB [1]) para armazenar logs. O meu caso é bastante específico, os processos interligados pelo Gearman ficam "jogando" um documento estruturado (relativamente pequeno) um para o outro, e preciso que, em caso de falha em algum ponto, o log traga o estado do documento inteiro exatamente naquele ponto. A grande vantagem, para mim, é a natureza assíncrona do MongoDB, e os seus "capped collections", que rotacionam o log automagicamente [2].<br>

<div><br></div><div>1. <a href="https://metacpan.org/module/Log::Dispatch::MongoDB">https://metacpan.org/module/Log::Dispatch::MongoDB</a></div><div>2. <a href="http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging">http://blog.mongodb.org/post/172254834/mongodb-is-fantastic-for-logging</a><br clear="all">

<br>ABS()<br><br>
<br><br><div class="gmail_quote">2011/11/1 Tiago Peczenyj <span dir="ltr"><<a href="mailto:tiago.peczenyj@gmail.com">tiago.peczenyj@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Ola<div><br></div><div>o que vc pode fazer é gravar todos os dados que vc quer em um registro inteiro do banco de dados.<br><br>depois tenha algo que leia estas linhas e transforme do jeito que vc quer em outra database, que vc possa manipular a vontade sem medo de ter varios inserts.</div>



<div><br></div><div>isso é basicamente um Data Warehouse. de uma lida nos conceitos.<br><br><div class="gmail_quote">2011/11/1 Andre Carneiro <span dir="ltr"><<a href="mailto:andregarciacarneiro@gmail.com" target="_blank">andregarciacarneiro@gmail.com</a>></span><br>



<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">Heil Perl!<div><br></div><div><br></div><div>Pessoal, preciso de um 'norte' para resolver um problema de arquitetura de software. Fiz aqui no meu trabalho um 'log parser' distribuído, que gera alguns dados de estatísticas que eu preciso capturar isso de alguma forma, mas ainda não sei bem como fazer.</div>





<div><br></div><div>A arquitetura resumida é o seguinte:</div><div><br></div><div>- um daemon que, de tempos em tempos, lê arquivos de log e o divide em vários arquivos menores, zipa esses arquivos e move para um outro diretório. Chamo isso de 'dispatcher';</div>





<div>- um daemon que lê os arquivo gerados pelo 'dispatchers', e constrói jobs através do módulo Gearman::Client e os envia para um ou mais servidores para que os jobs sejam processados. Chamo isso de 'jobmanager';</div>





<div>- Em várias máquinas existem(na verdade 'existirão' :D ) os servidores de 'jobs'(outros daemons ), que recebem as requisições do 'jobmanager' via gearman e inicia o processamento dos logs, de fato, através do módulo Gearman::Worker, de maneira que a resposta não é esperada pelo JobManager.</div>





<div><br></div><div><br></div><div>Problema: <br clear="all"><div><br></div><div>Preciso gravar os dados utilizados nas estatístifcas, além de outras informações, mas não sei qual seria a melhor forma de fazer isso considerando que vários workers estariam gravando os dados de vários servidores diferentes, e a idéia é não centralizar isso num banco de dados relacional, evitando concorrência, já que o ambiente aqui por enquanto não suporta clusterização de banco de dados. Eu pensei em gravar os dados localmente em cada máquina onde os workers gravaram e enviar esses dados para um monitor central, ou deixar o dado disponível de alguma forma para que o monitor central soubesse a quantidade de dados que está sendo processada e de onde. Não sei se fui claro...</div>




<div><br></div><div>Alguém poderia dar uma sugestão, por gentileza?</div><div><br></div><div><br></div><div>Antecipadamente agradeço!</div><div><br></div><div><br></div><div><br></div><div>Cheers!</div>
<div><br></div><font color="#888888">-- <br>André Garcia Carneiro<br>Analista/Desenvolvedor Perl<br><a href="tel:%2811%2982907780" value="+551182907780" target="_blank">(11)82907780</a><br>
</font></div>
<br></div></div><div class="im">=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org" target="_blank">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></div></blockquote></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br>Tiago B. Peczenyj<br>Linux User #405772<br><br><a href="http://pacman.blog.br" target="_blank">http://pacman.blog.br</a><br>


</font></span></div>
<br>=begin disclaimer<br>
   Sao Paulo Perl Mongers: <a href="http://sao-paulo.pm.org/" target="_blank">http://sao-paulo.pm.org/</a><br>
 SaoPaulo-pm mailing list: <a href="mailto:SaoPaulo-pm@pm.org">SaoPaulo-pm@pm.org</a><br>
 L<<a href="http://mail.pm.org/mailman/listinfo/saopaulo-pm" target="_blank">http://mail.pm.org/mailman/listinfo/saopaulo-pm</a>><br>
=end disclaimer<br>
<br></blockquote></div><br></div></div>