- PVLDB Vol 15 में प्रकाशित SQLite के भविष्य पर एक पेपर
- SQLite को OLTP के लिए डिज़ाइन किया गया था, लेकिन हाल के edge computing और data science के कारण OLAP की आवश्यकता बढ़ रही है
- OLAP में मजबूत performance दिखाने वाला DuckDB, "SQLite for Analytics" कहलाता है
- SQLite और DuckDB के performance की तुलना की गई है, और इसके आधार पर analytical data processing में सुधार कर SSB में इसे 4.2x तेज़ बनाने की सामग्री को संक्षेप में प्रस्तुत किया गया है
- benchmark की सामग्री
- write transactions में SQLite, DuckDB से 10x-500x तेज़ है
- analytical benchmark (Star Schema Benchmark, SSB) में DuckDB, SQLite से 30-50x तेज़ है
- इसे लगातार बेहतर किया जाएगा, लेकिन मूल उद्देश्य ही अलग होने के कारण समान performance हासिल करना कठिन है
- एक अलग तरीके से SQLite3/HE में OLTP performance घटाए बिना SSB में 100x performance हासिल की गई
- ऐसे प्रयासों के माध्यम से engine performance में सुधार किया जाएगा और optimization जोड़े जाएंगे
2 टिप्पणियां
इस पेपर में कई तरह की बातें हैं, लेकिन मुझे खास तौर पर यह जानने की जिज्ञासा हुई कि OLAP प्रोसेसिंग को बेहतर बनाकर संबंधित benchmark को उन्होंने ठोस रूप से कैसे सुधारा, इसलिए मैंने थोड़ी देर के लिए मूल लेख पढ़ा।
निष्कर्ष यह था कि इस सुधार का मतलब डेटा विश्लेषण में इस्तेमाल होने वाली queries की join processing को बेहतर बनाने के लिए Bloom filter को शामिल करना था।
SQLite में OLAP benchmark में इस्तेमाल हुई queries को profile करने पर पता चला कि वह B-tree data structure में उन हिस्सों तक भी खोज कर रहा था जो असल final result में बिल्कुल शामिल ही नहीं होते। इसलिए final result में शामिल न होने वाले हिस्सों को पहले से छांटकर प्रोसेस करने के लिए, Bloom filter जो एक probabilistic data structure है और जिससे यह निश्चित रूप से जाना जा सकता है कि कोई खास element मौजूद नहीं है, उसे जोड़ा गया। यही इस सुधार का मुख्य बिंदु था।
इस मौके पर Bloom filter के बारे में कुछ परिचयात्मक लेख:
और आजकल Xor Filter नाम की चीज भी आई है।
SQLite DuckDB पेपर पर नोट्स
DuckDB - Embedded OLAP DB ओपन सोर्स