Eu não sou uma pessoa que goste de escrever emails grandes, talvez algum dia eu escreva um blog post sobre isso. Para mostrar alguns dos meus motivos, peguei o changelog das duas ultimas versões:
http://www.elasticsearch.org/download/2012/03/01/0.19.0.html http://www.elasticsearch.org/download/2012/01/10/0.18.7.html query never returns (#1725<http://github.com/elasticsearch/elasticsearch/issues/issue/1725> ) - Orderly shutdown with unicast discovery might cause the shutdown node to still be part of the election process (#1740<http://github.com/elasticsearch/elasticsearch/issues/issue/1740> ) - NullPointerException when asking for null valued json field when fetching search request (#1749<http://github.com/elasticsearch/elasticsearch/issues/issue/1749> ) Cluster metadata files destroyed when using blob store gateway causing data loss (#1564<http://github.com/elasticsearch/elasticsearch/issues/issue/1564> ) - Two different indexes with the same nested object name causing ArrayIndexOutOfBoundsException (#1575<http://github.com/elasticsearch/elasticsearch/issues/issue/1575> ) S3 blob storage gateway: deleting an index named x destroys data for any index with name beginning with x (#1582<http://github.com/elasticsearch/elasticsearch/issues/issue/1582> ) Olha o tipo de bug que eles ainda estão resolvendo, se vocês derem uma olhada caso ocorra QUALQUER um desses bugs: - A possibilidade da sua base corromper é grande. - Seu sistema vai ficar indisponivel Se a sua base foi corrompida e você precisa reindexar seus documentos, isso é um trabalho pesado e lento ( e não tem nada a ver com o ES ) ElasticSearch, como o nome já diz, é um sistema para BUSCA, como Solr, não um sistema para guardar objetos/dados. Usar Solr/ElasticSearch como persistencia de dados é errado, e deixar de usar Solr como sistema de busca para usar ElasticSearch também não é uma boa escolha. Apenas como lição de casa, deem uma olhada no changelog das ultimas versões do Solr: http://lucene.apache.org/solr/solrnews.html Procurem quantos bugs criticos desse tipo foram corrigidos/existem ( se olhar no Jira do projeto ) PS: Até que o email ficou grande :D 2012/3/14 Marcio Ferreira <marciodesouzaferre...@gmail.com> > qual o trauma? > On Mar 14, 2012 9:52 AM, "Lindolfo Lorn Rodrigues" <l...@lornlab.org> > wrote: > >> Use qualquer coisa, menos ElasticSearch. >> Sério. >> >> 2012/3/14 Marcio Ferreira <marciodesouzaferre...@gmail.com> >> >>> Só dando um pitaco, ao contrário do mongoDB, experimente o ElasticSearch >>> - performance incrível. E se atente na forma de como será feita a consulta >>> na API das redes, as vezes consultar uma vez ao dia já resolva seu >>> problema, e evite os horários de pico prq rodar seu scraper =S >>> On Mar 14, 2012 8:03 AM, "Tiago Peczenyj" <tiago.pecze...@gmail.com> >>> wrote: >>> >>>> Oi >>>> >>>> é possivel criar uma fila usando um feed rss ou criando arquivos em um >>>> diretorio. basta ver o que é mais interessante para o teu projeto. Por >>>> exemplo, se vc publicar um feed e tiver do outro lado um consumidor >>>> fazendo pooling vai ser tão bom quanto um ActiveMQ se vc não estiver >>>> com um volume muito grande de dados E se puder esperar uns segundos. >>>> Isso pode simplificar a tua infra num primeiro momento. >>>> >>>> On Tue, Mar 13, 2012 at 11:33 PM, Daniel de Oliveira Mantovani >>>> <daniel.oliveira.mantov...@gmail.com> wrote: >>>> > Shonorio, o Gearman não é um sistema de fila, ele funciona como um >>>> > distribuid system. >>>> > >>>> > Você deva usar o AMPQ[1] ou o Apache ActiveMQ[2] para criar a fila e o >>>> > Gearman para processar a informação. O Worker não sabe da existência >>>> > do Client, quem faz esse intermédio é o Gearman Server[3]. >>>> > >>>> > "A Gearman powered application consists of three parts: a client, a >>>> > worker, and a job server. The client is responsible for creating a job >>>> > to be run and sending it to a job server. The job server will find a >>>> > suitable worker that can run the job and forwards the job on. The >>>> > worker performs the work requested by the client and sends a response >>>> > to the client through the job server. Gearman provides client and >>>> > worker APIs that your applications call to talk with the Gearman job >>>> > server (also known as gearmand) so you don't need to deal with >>>> > networking or mapping of jobs. Internally, the gearman client and >>>> > worker APIs communicate with the job server using TCP sockets. To >>>> > explain how Gearman works in more detail, lets look at a simple >>>> > application that will reverse the order of characters in a string. " >>>> > >>>> > [User Interface] <===>[RDBMS]<===> [Queue System] >>>> > /\ >>>> > || >>>> > || >>>> > [Distribuid >>>> > System] <===> [Document-oriented database] >>>> > >>>> > >>>> > Se baseando nesse arquitetura o Queue System vai mandando "jobs" de >>>> > acordo com número de workers que você tem disponível, evitando um >>>> > overhead e criando um sistema "auto scalability". >>>> > >>>> > Se eu fosse você eu me preocuparia com a forma de armazenamento dos >>>> > dados, as redes sociais já garantem a integridade dos dados, sendo >>>> > assim uma solução Document-oriented database te pouparia muito >>>> > processamento e trabalho. Existem várias opções, eu recomendo o >>>> > MongoDB[4] mesmo com o Eden Cardim me crucificando por isso. >>>> > >>>> > Guarde os dados dos usuários e do site num RDBMS, se você estiver >>>> > pensando num RDBMS open source eu te recomendo o PostgreSQL, ele tem >>>> > um ótimo suporte ao paradigma temporal. >>>> > Se você usar o PostgreSQL, eu te recomendo usar o Pgpool[5] para >>>> > replication, clustering, load balance etc. >>>> > >>>> > [1] - http://www.amqp.org/about/what >>>> > [2] - http://activemq.apache.org/ >>>> > [3] - http://gearman.org/ >>>> > [4] - http://www.mongodb.org/display/DOCS/Sharding+Introduction >>>> > [5] - http://www.pgpool.net/mediawiki/index.php/Main_Page >>>> > >>>> > Grande Abraço. >>>> > >>>> > 2012/3/13 Solli Honorio <shono...@gmail.com>: >>>> >> Pessoal, >>>> >> >>>> >> Estou iniciando um projeto de monitoramento de mídias sociais e >>>> fazer algum >>>> >> processamento com estas informações, e acredito que utilizar >>>> esquemas de >>>> >> fila serviria muito bem para este ambiente. >>>> >> >>>> >> Basicamente o esquema que estou imaginando para o ambiente é : >>>> >> >>>> >> [ Interface com o usuário ] <===> [Banco de Dados] <====> [Sistema >>>> de Fila] >>>> >> >>>> >> || || >>>> >> >>>> >> || +- [Executa a pesquisa] >>>> >> >>>> >> || >>>> >> >>>> >> +-- [ Processa o resultado da pesquisa] >>>> >> >>>> >> As ações que eu imagino nisto são : >>>> >> >>>> >> * interface com o usuário não é meu problema, tem um webdeveloper >>>> >> trabalhando nisto; >>>> >> * não quero de maneira alguma fazer os 'agentes' interagir >>>> diretamente com o >>>> >> banco de dados, por isto penso em criar um cliente que leia o banco >>>> de dados >>>> >> e coloque os dados formatados para o agente na fila do agente. O >>>> caminho >>>> >> contrário também, ler o resultado do agente e gravar no banco de >>>> dados; >>>> >> >>>> >> Estou avaliando a possibilidade de utilizar o Gearman (na verdade >>>> não tenho >>>> >> certeza se esta é a melhor alternativa mesmo), na verdade o >>>> >> AnyEvent::Gearman. Mas algumas coisas me chamaram no Gearman do >>>> qual eu >>>> >> acho meio estranho para o ambiente sistema de fila que eu tenho na >>>> minha >>>> >> cabeça. >>>> >> >>>> >> 1. o worker (aparentemente o cara que executará o serviço) não fica >>>> em loop >>>> >> lendo uma fila, parece que ele está sendo acionado pelo cliente; >>>> >> 2. o parece que o cliente fica 'preso' aguardando o final da >>>> execução do >>>> >> worker. >>>> >> >>>> >> Ainda não tenho código (que o meu cliente não leia isto, pois estou >>>> muito >>>> >> atrasado), mas eu gostaria de obter recomendações de vocês sobre a >>>> >> arquitetura que estou imaginando. >>>> >> >>>> >> Obrigado, >>>> >> >>>> >> Solli Honorio >>>> >> >>>> >> >>>> >> -- >>>> >> "o animal satisfeito dorme". - Guimarães Rosa >>>> >> >>>> >> =begin disclaimer >>>> >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> >> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> >> =end disclaimer >>>> >> >>>> > >>>> > >>>> > >>>> > -- >>>> > "If you’ve never written anything thoughtful, then you’ve never had >>>> > any difficult, important, or interesting thoughts. That’s the secret: >>>> > people who don’t write, are people who don’t think." >>>> > =begin disclaimer >>>> > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> > =end disclaimer >>>> >>>> >>>> >>>> -- >>>> Tiago B. Peczenyj >>>> Linux User #405772 >>>> >>>> http://pacman.blog.br >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >>> >> >> =begin disclaimer >> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >> SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org >> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >> =end disclaimer >> >> > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > >
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: SaoPaulo-pm@pm.org L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer