15 ポイント 投稿者 xguru 2022-09-05 | 2件のコメント | WhatsAppで共有
  • PVLDB Vol 15に掲載された、SQLiteの未来に関する論文
  • SQLiteはOLTP向けに設計されたが、近年はエッジコンピューティングやデータサイエンスの影響でOLAPへのニーズが高まっている
  • OLAPで高い性能を示すDuckDBは「SQLite for Analytics」と呼ばれている
  • SQLiteとDuckDBの性能を比較し、これを通じて分析データ処理を改善してSSBで4.2x高速化した内容を整理
  • ベンチマークの内容
    • 書き込みトランザクションではSQLiteがDuckDBより10x-500x高速
    • 分析ベンチマーク(Star Schema Benchmark, SSB)ではDuckDBがSQLiteより30-50x高速
  • 継続的に改善していく予定だが、そもそもの目的自体が異なるため、同等の性能を実現するのは難しい
  • 別の方法として、SQLite3/HEではOLTP性能を低下させることなくSSBで100xの性能を実現
  • こうした試みを通じてエンジンの性能を改善し、最適化を追加していく

2件のコメント

 
kunggom 2022-09-06

この論文にはいろいろな内容がありますが、OLAP処理を改善して関連ベンチマークを向上させたという点について、具体的にどう実現したのか気になり、原文を少し読んでみました。

結論から言うと、その改善内容は、データ分析に使われるクエリのjoin処理を改善するためにブルームフィルタを導入した、というものでした。

SQLiteでOLAPベンチマークに使ったクエリをプロファイリングした結果、実際の最終結果にはまったく含まれない部分までB-treeデータ構造を探索していたそうです。そこで、最終結果に含まれない部分を事前に選別して処理するため、特定の要素が存在しないことを確実に判定できる確率的データ構造であるブルームフィルタを追加した、というのがこの改善の主な内容でした。

このあたりで読んでおきたいブルームフィルタの紹介記事をいくつか。

そして最近はXor Filterというものも登場しているそうです。