15 pontos por xguru 2022-09-05 | 2 comentários | Compartilhar no WhatsApp
  • Artigo publicado na PVLDB Vol 15 sobre o futuro do SQLite
  • O SQLite foi projetado para OLTP, mas recentemente, por causa de edge computing e data science, a demanda por OLAP vem aumentando
  • O DuckDB, que apresenta forte desempenho em OLAP, é chamado de "SQLite for Analytics"
  • Resume a comparação de desempenho entre SQLite e DuckDB e, com base nisso, o que foi feito para melhorar o processamento de dados analíticos, tornando-o 4.2x mais rápido no SSB
  • Conteúdo do benchmark
    • Em transações de escrita, o SQLite é de 10x a 500x mais rápido que o DuckDB
    • No benchmark analítico (Star Schema Benchmark, SSB), o DuckDB é de 30x a 50x mais rápido que o SQLite
  • Haverá melhorias contínuas, mas como os objetivos originais são diferentes, é difícil alcançar o mesmo desempenho
  • Por meio de uma abordagem separada, o SQLite3/HE alcançou desempenho 100x maior no SSB sem degradação do desempenho de OLTP
  • Por meio dessas tentativas, serão melhorados o desempenho do engine e adicionadas otimizações

2 comentários

 
kunggom 2022-09-06

Este artigo tem vários pontos interessantes, mas fiquei curioso sobre como exatamente foi feita a melhoria que aprimorou o processamento de OLAP e, com isso, os benchmarks relacionados, então fui ler rapidamente o texto original.

Em resumo, a melhoria consistiu na introdução de um filtro de Bloom para melhorar o processamento de join em consultas usadas para análise de dados.

Ao fazer o profiling das consultas usadas no benchmark de OLAP do SQLite, descobriram que ele estava percorrendo a estrutura de dados B-tree até mesmo em partes que nunca apareciam no resultado final. Por isso, a principal mudança foi adicionar um filtro de Bloom, uma estrutura de dados probabilística capaz de afirmar com certeza quando um determinado elemento não existe, para filtrar antecipadamente e processar essas partes que não entrariam no resultado final.

Alguns textos de introdução a filtros de Bloom para quem quiser se aprofundar.

E parece que, hoje em dia, também existe algo chamado Xor Filter.