Alta perfomance com Lucene

Post on 06-Jul-2015

1.245 views 0 download

description

Apresentação realizada no no:sql(br)/v2 em 22/10/2011 sobre o caso de sucesso utilizando Apache Lucene na substituição de uma ferramenta proprietária de busca.

Transcript of Alta perfomance com Lucene

Alta performance com Lucene

ROdLéo Nickel

Saturday, October 22, 2011

22/10/2011 2

ROd

Desenvolvedor

especialista em

arquiteturas de alta

performance

relacionadas a

publicação e busca

de conteúdo

@rzdrigo

Saturday, October 22, 2011

22/10/2011 3

Léo Nickel

Desenvolvedor de

sistemas com

experiência de 6

anos em aplicações

Java EE em

telefonia, marketing

online e busca

orgânica

@leonardonickel

Saturday, October 22, 2011

22/10/2011 4

LUCENE

• Apache Top Level Project desde 02/2005

• Orientado a documento

• Schemaless

• Instância única de IndexWriter por índice

• Quebra da API entre:

– 2.4 → 2.9

– 3.1 → 3.2 (incompatibilidade entre índices)

Saturday, October 22, 2011

22/10/2011 5

MOTIVAÇÃO

• Substituição do motor de busca FAST SEARCH

• Requisitos não funcionais

- Baixa latência de indexação

- Alta disponibilidade de busca

- Sharding

Saturday, October 22, 2011

22/10/2011 6

IMPLEMENTAÇÃO

Saturday, October 22, 2011

22/10/2011 7

TIMELINE

SERVIDOR LINUX 1NFS PARAMS

24 QPS

Saturday, October 22, 2011

22/10/2011 8

TIMELINE

OTIMIZAÇÃOCOMPOUND FILE

READ ONLY

FIELD SELECTOR

ESTRATÉGIA DE REOPEN

Saturday, October 22, 2011

22/10/2011 9

TIMELINE

SERVIDOR LINUX 1NFS PARAMS

30 QPS

Saturday, October 22, 2011

22/10/2011 10

TIMELINE

DESKTOP LINUXDISCO LOCAL

200 QPS

Saturday, October 22, 2011

22/10/2011 11

TIMELINE

SERVIDOR LINUX 2DISCO LOCAL

500 QPS

Saturday, October 22, 2011

22/10/2011 12

TIMELINE

SERVIDOR LINUX 2NFS DEFAULT + RO

450 QPS

Saturday, October 22, 2011

22/10/2011 13

TIMELINE

QUESTÃO:

VÁRIOS SEARCHERS NO MESMO

NFS DEGRADA A PERFORMANCE?

Saturday, October 22, 2011

22/10/2011 14

TIMELINE

SERVIDOR LINUX 1 e 2CARGA: SERVIDOR LINUX 3 e 4

900 QPS

Saturday, October 22, 2011

22/10/2011 15

EM PRODUÇÃO...

SERVIDOR LINUX 1 e 2NFS DEFAULT + RO

27 → 413 → 962 QPS

Saturday, October 22, 2011

22/10/2011 16

LIÇÕES APRENDIDAS

• Otimização constante do índice

• Configuração de File Descriptor no SO

• Diferentes politicas de Sharding

• Fieldable != Field

• MultiReader com ExecutorServices

• Evitar o uso de PrefixQuery

- Validar se campo existe

Saturday, October 22, 2011

Obrigado =)http://www.slideshare.net/rzdrigo/alta-

performance-com-lucene

ROd (rzaccara@uolinc.com)Léo Nickel (lnickel@uolinc.com)

@rzdrigo@leonardonickel

Saturday, October 22, 2011