Lucene nas alturas: 400 buscas por segundo

1,123 views
1,034 views

Published on

Palestra realizada no Just Java 2011 por ROd e Léo Nickel.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,123
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Lucene nas alturas: 400 buscas por segundo

  1. 1. Lucene nas alturas: 400 buscas por segundo ROd Léo NickelSaturday, May 14, 2011 1
  2. 2. ROd Desenvolvedor especialista em arquiteturas de alta performance relacionadas a publicação e busca de conteúdo 13/05/11 2Saturday, May 14, 2011 2
  3. 3. Léo Nickel Desenvolvedor de sistemas com experiência de 5 anos em aplicações Java EE nos segmentos de telefonia, marketing online e busca orgânica 13/05/11 3Saturday, May 14, 2011 3
  4. 4. MOTIVAÇÃO • Substituição do motor de busca FAST SEARCH • Alternativas – Compass – ElasticSearch – Lucene – Solr – Sphinx 13/05/11 4Saturday, May 14, 2011 4
  5. 5. LUCENE Mar/2000: Versão 0.01 (SourceForge) Thu Mar 30 20:02:47 2000 UTC by cutting Out/2000: Versão 1.0 Jun/2002: Versão 1.2 (Apache Jakarta) Dez/2004: Lucene in Action (1.4.3) Fev/2005: Apache top-level project Mai/2006: Versão 2.0 Set/2009: Versão 2.9 Nov/2009: Versão 3.0 Mar/2011: Versão 3.1 13/05/11 5Saturday, May 14, 2011 5
  6. 6. REQUISITOS NÃO FUNCIONAIS • Baixa latência de indexação • Alta disponibildade de busca • Proteção do storage • Capacidade adaptativa dos repositórios • Estado imutável 13/05/11 6Saturday, May 14, 2011 6
  7. 7. REQUISITOS FUNCIONAIS • Paginação • Ordenações • Sharding • Otimização de índices • Suporte a diversos charsets 13/05/11 7Saturday, May 14, 2011 7
  8. 8. COMPONENTES • Indexer – Interface REST para manipulação de documentos – API sync e async • Searcher – Query string para definir a busca – Cache 13/05/11 8Saturday, May 14, 2011 8
  9. 9. COMPONENTES • Repositório – Colunas – Tipo de dados – Comportamento • Texto • Indexable • Número • Analyzed • Data • Sortable • Moeda • Boost • Url 13/05/11 9Saturday, May 14, 2011 9
  10. 10. AMBIENTE • Ambiente FAST SEARCH – Cluster de 4 máquinas – 100 QPS • Ambiente Lucene – Cluster de 2 máquinas – ?? QPS 13/05/11 10Saturday, May 14, 2011 10
  11. 11. MÉTRICAS • scripts bash for x in $(seq 1 100) do curl "http://localhost:8080/searcher/?...$x...”; done • iostat • nfsstat • top • JMeter 13/05/11 11Saturday, May 14, 2011 11
  12. 12. TIMELINE SERVIDOR LINUX 1 NFS PARAMS 24 QPS 13/05/11 12Saturday, May 14, 2011 12
  13. 13. TIMELINE EMAIL ROd → Ops “Finally, realize that performance over NFS is not great, because the bytes must cross the wires to get to the computer doing the searching. It’s possible mounting the NFS directory as read-only may improve the performance, but likely you’ll still be far from the performance of a local native directory.” Fonte: Lucene In Action 13/05/11 13Saturday, May 14, 2011 13
  14. 14. TIMELINE DESKTOP LINUX DISCO LOCAL 200 QPS 13/05/11 14Saturday, May 14, 2011 14
  15. 15. TIMELINE OTIMIZAÇÃO COMPOUND FILE READ ONLY FIELD SELECTOR ESTRATÉGIA DE REOPEN 13/05/11 15Saturday, May 14, 2011 15
  16. 16. TIMELINE SERVIDOR LINUX 1 NFS PARAMS 30 QPS 13/05/11 16Saturday, May 14, 2011 16
  17. 17. TIMELINE SERVIDOR LINUX 2 RAM Directory 550 QPS 13/05/11 17Saturday, May 14, 2011 17
  18. 18. TIMELINE SERVIDOR LINUX 2 DISCO LOCAL 500 QPS 13/05/11 18Saturday, May 14, 2011 18
  19. 19. TIMELINE SERVIDOR LINUX 2 NFS DEFAULT 420 QPS 13/05/11 19Saturday, May 14, 2011 19
  20. 20. TIMELINE SERVIDOR LINUX 1 NFS DEFAULT + RO 450 QPS 13/05/11 20Saturday, May 14, 2011 20
  21. 21. TIMELINE PROBLEMA VÁRIOS SEARCHERS NO MESMO NFS DEGRADARIA SEU USO? 13/05/11 21Saturday, May 14, 2011 21
  22. 22. TIMELINE SERVIDOR LINUX 1 e 2 CARGA: SERVIDOR LINUX 3 e 4 450 QPS 13/05/11 22Saturday, May 14, 2011 22
  23. 23. TIMELINE SERVIDOR LINUX 1 MOD_MEMCACHE LRU 3000 QPS 13/05/11 23Saturday, May 14, 2011 23
  24. 24. ENTRADA EM PRODUÇÃO... SERVIDOR LINUX 1 e 2 NFS DEFAULT + RO 27 QPS 13/05/11 24Saturday, May 14, 2011 24
  25. 25. E CRESCENDO... SERVIDOR LINUX 1 e 2 NFS DEFAULT + RO 213 QPS 13/05/11 25Saturday, May 14, 2011 25
  26. 26. RECORDE! SERVIDOR LINUX 1 e 2 NFS DEFAULT + RO 462 QPS 13/05/11 26Saturday, May 14, 2011 26
  27. 27. APÓS UM ANO... • Transição de conteúdo da busca antiga • Novas abordagens de busca • Reutilização em produtos internos • Plataforma em constante evolução 13/05/11 27Saturday, May 14, 2011 27
  28. 28. PERGUNTAS 13/05/11 28Saturday, May 14, 2011 28
  29. 29. Obrigado =) ROd (rzaccara@uolinc.com) Léo Nickel (cad_lnickel@uolinc.com)Saturday, May 14, 2011 29

×