DuckDB 2.0 क्यों है पहले से तेज़?
मूल शीर्षक: Why DuckDB 2.0 is faster
यह क्यों महत्वपूर्ण है
S3 पर analytical queries के लिए बिना कोड बदले 2x+ speedup — data pipeline engineers के लिए सीधा असर।
DuckDB 2.0 का alpha संस्करण उपलब्ध है। M5 लैपटॉप पर S3 से 2.2 GB Parquet फ़ाइल पढ़ने में v1.5.5 को 18.8 सेकंड लगे, जबकि v2.0 ने वही काम 7.7 सेकंड में पूरा किया।
MotherDuck के Mehdi Ouazza ने DuckDB 2.0 alpha को अपने M5 लैपटॉप पर परखा और तीन प्रमुख सुधारों की पहचान की। सबसे बड़ा बदलाव है Async I/O — यानी नेटवर्क और CPU का काम अब एक साथ चलता है।
पुराने v1.5.5 में हर worker थ्रेड पहले S3 से data download करता था, फिर idle रहकर इंतज़ार करता था, उसके बाद Parquet decode करता था। इस क्रम में CPU और network कभी एक साथ नहीं चलते थे, और अधिकतम 18 downloads एक साथ संभव थे।
DuckDB 2.0 में एक अलग thread pool सिर्फ़ downloading करता है — दर्जनों row groups एक साथ network से खींचे जाते हैं और buffer में पार्क होते हैं। Worker threads केवल decode करते हैं और उन्हें कभी इंतज़ार नहीं करना पड़ता। नतीजा: 228 मिलियन rows वाली Stack Overflow votes फ़ाइल (2268 row groups) पर query समय 18.8s से घटकर 7.7s हो गया — करीब 2.4 गुना तेज़।
Ouazza ने यह भी साफ़ किया कि ये नतीजे home internet (us-east-1) पर हैं; cloud compute से query और भी तेज़ होगी। साथ ही लेख में commit logs से निकाले गए कुछ और सुधारों का भी ज़िक्र है, जो data modeling को प्रभावित करते हैं। पूरी गति का फ़ायदा उठाने के लिए data का shape समझना ज़रूरी है।