SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
Globalcode – Open4education
MongoDB na Ingresse.com
Kelly Costa
Desenvolvedora PHP e Modelagem dos Dados
Globalcode – Open4education
Kelly Costa
Manaus - AM
Desenvolvedora PHP
9 anos de experiência em projetos web
Secretaria Municipal de Saúde de Manaus
Desenvolvimento de Software
Modelagem dos dados
Auxiliar a equipe de desenvolvimento e testes a maximizar
o uso e desempenho do banco de dados MongoDB na
Ingresse.com.
Globalcode – Open4education
A missão da Ingresse é facilitar a compra e venda de
ingressos online para qualquer tipo de evento.
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Globalcode – Open4education
Nem todos os usuários que navegam no site
https://www.ingresse.com realizam a compra naquele
momento, muitos buscam informações sobre os eventos,
como data, local, valor do ingresso, exigindo um acesso
rápido a grandes quantidades de dados.
Globalcode – Open4education
aumento exponencial no volume de dados
uso extensivo de joins
acesso rápido a grandes quantidades de dados
Globalcode – Open4education
Por que o MongoDB?
formato JSON, facilidade para o programador
rápida recuperação dos dados
diferentes recursos de consulta, sem transações e joins,
possui estruturas mais simples
os objetos estão inseridos em um único documento.
atua sem um esquema previamente definido
Globalcode – Open4education
O que foi fácil?
Nada!
Globalcode – Open4education
Operações de agregações (Aggregation)
permitem que usuários processem todos os registros de dados
através de operações similares aos comandos SQL “count (*)” e
“grupo by” e retorna o resultado calculado.
ótimo quando usado em consultas pontuais
quando recorrentes e concorrentes, essas consultas demandam
muito esforço
custos na alocação de memória e desempenho.
Globalcode – Open4education
Globalcode – Open4education
No caso da Ingresse, todas as condições utilizadas na
busca de eventos são trabalhadas e armazenadas em um
array.
Algumas consultas utilizavam regex, o que exigia muito
mais do servidor.
Isso tornava a aplicação pouco flexível e nada
performática.
Globalcode – Open4education
Globalcode – Open4education
Visando obter maior desempenho e simplicidade na busca
de eventos, optamos por eliminar o aggregation e fazer
tudo via queries.
Globalcode – Open4education
Pra isso, fizemos uso dos índices, zerando a necessidade
de processos complementares.
A consulta é feita dentro do próprio índice, possibilitando
concorrência e recorrência sem maiores problemas,
resultando em consultas mais rápidas.
Globalcode – Open4education
db.event.ensureIndex({'title': 'text', 'description': 'text', 'tags':
'text', 'link': 'text'}, {'default_language':'portuguese',
name:"busca01"}
O índice busca01 cancelou o uso do regex.
Globalcode – Open4education
full text search:
db.event.find({$text: {$search: "marcelo"}},{'title': true,
'description': true, 'tags': true, ‘link’: true}) .pretty()
Alterado na versão 2.6: MongoDB
Globalcode – Open4education
A ordenação padrão utilizada é do evento mais próximo da
data atual para o mais futuro. Pra isso criamos o índice
db.event.ensureIndex({eventDate.dateTime: 1})
Globalcode – Open4education
Ganho relevante na performance, saindo de 100 usuários
por minuto para 2.000 usuários/minuto em testes de
laboratório
Consulta mais simples.
Agilidade
Flexibilidade
Globalcode – Open4education
Shopping cart
Backup
Controle de versão da coleção
Legado
Globalcode – Open4education
Perguntas?
Globalcode – Open4education
Email: kelly.cristina83@gmail.com
GitHub: kelly.costa@ingresse.com

Weitere ähnliche Inhalte

Andere mochten auch

Monitorando Servidores na Ingresse
Monitorando Servidores na IngresseMonitorando Servidores na Ingresse
Monitorando Servidores na IngresseDenis Velrino
 
Produção de eventos como ferramenta de Marketing
Produção de eventos como ferramenta de MarketingProdução de eventos como ferramenta de Marketing
Produção de eventos como ferramenta de MarketingAlfredo Martins
 
Pitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu Investidor
Pitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu InvestidorPitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu Investidor
Pitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu InvestidorGabriel Benarrós
 
Apresentação Comercial Startup Weekend BH
Apresentação Comercial Startup Weekend BHApresentação Comercial Startup Weekend BH
Apresentação Comercial Startup Weekend BHRaoni Pereira
 

Andere mochten auch (6)

Monitorando Servidores na Ingresse
Monitorando Servidores na IngresseMonitorando Servidores na Ingresse
Monitorando Servidores na Ingresse
 
Apresentando Ingresse
Apresentando IngresseApresentando Ingresse
Apresentando Ingresse
 
Produção de eventos como ferramenta de Marketing
Produção de eventos como ferramenta de MarketingProdução de eventos como ferramenta de Marketing
Produção de eventos como ferramenta de Marketing
 
Vantagens__Desvantagens_Tipos_de_servidores
Vantagens__Desvantagens_Tipos_de_servidoresVantagens__Desvantagens_Tipos_de_servidores
Vantagens__Desvantagens_Tipos_de_servidores
 
Pitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu Investidor
Pitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu InvestidorPitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu Investidor
Pitch Workshop: Como Ser Mais Interessante Que o iPhone do Seu Investidor
 
Apresentação Comercial Startup Weekend BH
Apresentação Comercial Startup Weekend BHApresentação Comercial Startup Weekend BH
Apresentação Comercial Startup Weekend BH
 

Ähnlich wie MongoDB na Ingresse: otimização de consultas e desempenho

TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APIEdlaine Zamora
 
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.  Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo. rodrigorahman
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaCleber Dantas
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterEdlaine Zamora
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsRenato Groff
 
TDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataTDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataEduardo Hahn
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingRenato Groff
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoThiago Freitas
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataEduardo Hahn
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2Eric Lemes
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010Fabian Gehrke
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPFelipe Weckx
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarialtdc-globalcode
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013André Borgonovo
 
TDC2018SP | XP - O que nao e XP!
TDC2018SP | XP - O que nao e XP!TDC2018SP | XP - O que nao e XP!
TDC2018SP | XP - O que nao e XP!tdc-globalcode
 
O desafio do ágil em um time de Machine Learning
O desafio do ágil em um time de Machine Learning O desafio do ágil em um time de Machine Learning
O desafio do ágil em um time de Machine Learning Jorge Improissi
 
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...Eduardo Hahn
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Durotdc-globalcode
 

Ähnlich wie MongoDB na Ingresse: otimização de consultas e desempenho (20)

Metralhando sua API
Metralhando sua APIMetralhando sua API
Metralhando sua API
 
TDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua APITDC Floripa 2018 - Metralhando sua API
TDC Floripa 2018 - Metralhando sua API
 
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.  Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
Akka 2.0 + MongoDB - Caso de sucesso no Ecommerce Turismo.
 
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escalaTDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
TDC - Técnicas e recursos para desenvolvimento web em cenários de grande escala
 
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipsterGerando aplicações Spring Boot e AngularJS com gerador de código JHipster
Gerando aplicações Spring Boot e AngularJS com gerador de código JHipster
 
Monitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application InsightsMonitorando serviços REST com o Application Insights
Monitorando serviços REST com o Application Insights
 
TDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big DataTDC São Paulo Online 2020 - trilha Big Data
TDC São Paulo Online 2020 - trilha Big Data
 
Monitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed TracingMonitorando serviços REST com o Application Insights e Distributed Tracing
Monitorando serviços REST com o Application Insights e Distributed Tracing
 
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 anoBuscapé 2.0 - Como mudamos uma empresa em 1 ano
Buscapé 2.0 - Como mudamos uma empresa em 1 ano
 
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigDataDataOps: da teoria a prática, como realmente se aplica em projetos de BigData
DataOps: da teoria a prática, como realmente se aplica em projetos de BigData
 
Tdc 2013 eric lemes - integracoes entre sistemas-2
Tdc 2013   eric lemes - integracoes entre sistemas-2Tdc 2013   eric lemes - integracoes entre sistemas-2
Tdc 2013 eric lemes - integracoes entre sistemas-2
 
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
TDC 2011 Goiânia - Desenvolvendo a Integração do Windows Azure e SharePoint 2010
 
BigData - ElasticSearch + PHP
BigData - ElasticSearch + PHPBigData - ElasticSearch + PHP
BigData - ElasticSearch + PHP
 
TDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura EmpresarialTDC2016SP - Trilha Arquitetura Empresarial
TDC2016SP - Trilha Arquitetura Empresarial
 
Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013Arquitetura de Software e o DNAD2013
Arquitetura de Software e o DNAD2013
 
TDC2018SP | XP - O que nao e XP!
TDC2018SP | XP - O que nao e XP!TDC2018SP | XP - O que nao e XP!
TDC2018SP | XP - O que nao e XP!
 
O desafio do ágil em um time de Machine Learning
O desafio do ágil em um time de Machine Learning O desafio do ágil em um time de Machine Learning
O desafio do ágil em um time de Machine Learning
 
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
DataOps, Data Mesh e Data Fabric. Melhores práticas para seu projeto de arqui...
 
Machine Learning Black Boxes
Machine Learning Black BoxesMachine Learning Black Boxes
Machine Learning Black Boxes
 
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho DuroTDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
TDC2016SP - Machine Learning Black Boxes - Terceirizando o Trabalho Duro
 

MongoDB na Ingresse: otimização de consultas e desempenho