15 điểm bởi xguru 2022-09-05 | 2 bình luận | Chia sẻ qua WhatsApp
  • Bài báo về tương lai của SQLite được đăng trên PVLDB Vol 15
  • SQLite được thiết kế cho OLTP, nhưng gần đây nhu cầu về OLAP tăng lên do điện toán biên và khoa học dữ liệu
  • DuckDB, vốn cho thấy hiệu năng rất mạnh trong OLAP, được gọi là "SQLite for Analytics"
  • Tổng hợp nội dung so sánh hiệu năng giữa SQLite và DuckDB, đồng thời cải thiện xử lý dữ liệu phân tích dựa trên đó để đạt tốc độ nhanh hơn 4.2x trong SSB
  • Nội dung benchmark
    • Trong các giao dịch ghi, SQLite nhanh hơn DuckDB từ 10x-500x
    • Trong benchmark phân tích (Star Schema Benchmark, SSB), DuckDB nhanh hơn SQLite từ 30-50x
  • Dù sẽ tiếp tục được cải thiện, nhưng vì mục tiêu ban đầu vốn khác nhau nên rất khó đạt cùng mức hiệu năng
  • Theo một phương pháp riêng, SQLite3/HE đã đạt hiệu năng 100x trên SSB mà không làm giảm hiệu năng OLTP
  • Thông qua những nỗ lực này, hiệu năng của engine sẽ tiếp tục được cải thiện và bổ sung thêm các tối ưu hóa

2 bình luận

 
kunggom 2022-09-06

Bài luận này có nhiều nội dung, nhưng tôi tò mò cụ thể họ đã cải thiện phần đó như thế nào khi nói rằng đã nâng cao xử lý OLAP và cải thiện các benchmark liên quan, nên đã đọc lướt bản gốc một chút.

Kết luận là nội dung cải tiến đó chính là việc đưa vào Bloom filter để cải thiện xử lý join của các truy vấn dùng cho phân tích dữ liệu.

Kết quả profiling các truy vấn dùng trong benchmark OLAP của SQLite cho thấy nó đang duyệt cả cấu trúc dữ liệu B-tree cho những phần hoàn toàn không xuất hiện trong kết quả cuối cùng. Vì vậy, điểm chính của cải tiến này là bổ sung Bloom filter, một cấu trúc dữ liệu xác suất có thể khẳng định chắc chắn rằng một phần tử nào đó không tồn tại, để sàng lọc trước và xử lý những phần sẽ không được đưa vào kết quả cuối cùng.

Nhân đây là vài bài giới thiệu về Bloom filter.

Và dạo này nghe nói còn có cả Xor Filter nữa.