HeadlinesBriefing favicon HeadlinesBriefing.com

DoltLite: SQLite का Git-शैली वाला संस्करण नियंत्रण

Hacker News •
×

मेरा बच्चा बड़ा हो गया है। लॉन्च के महज पांच महीने बाद, Dolt Lite Beta बन गया है, संस्करण 0.50.0। Dolt Lite एक मजाक के रूप में शुरू हुआ। मुझे Steve Yegge के एजेंट ऑर्केस्ट्रेटर, Gas Town के साथ परीक्षण के लिए एक परियोजना की आवश्यकता थी। मुझे एक असली समस्या चाहिए थी, खिलौना नहीं। हम वर्षों से एम्बेडेड Dolt चाहते थे, लेकिन Dolt के स्टोरेज इंजीन को C या Rust में फिर से लिखना बहुत दूर की बात थी। SQLite उस इंजन के लिए एक तर्कसंगत मेजबान प्रतीत होता है। क्या एजेंटों का एक टीम इसे खींच सकता है? लगभग 2,000 पुल अनुरोधों में ही Dolt Lite Beta बन गया है, यह साबित करता है कि एजेंटों का एक टीम निश्चित रूप से ऐसा कर सकती है।

क्या है Dolt Lite

Dolt Lite, SQLite का एक विस्तार है। B-tree परत के ऊपर सब कुछ एक जैसा है। इसका मतलब है SQL पार्सर और एनालाइजर, फ़ाइल सिस्टम इंटरैक्शन लेयर, और टेस्ट हैरनेस स्टॉक SQLite है। अन्य Dolt उत्पादों में, हमें SQLite के ऊपर SQL इंजन लागू करना पड़ा था। SQL इंजन बनाना कठिन है। Dolt Lite के साथ, हमें उसकी लागत पर एक SQL इंजन मिला C में version-controlled storage engine लिखने के। B-tree परत को Prolly Tree से बदल दिया गया है, जिसे single file chunk store द्वारा समर्थित किया गया है। Prolly Trees content-addressed B-trees हैं। यह जादुई डेटा संरचना सभी Dolt उत्पादों में version control functionality को शक्ति प्रदान करती है। इसका मतलब है कि आपको SQLite पैकेज में Dolt और Git की सभी version control सुविधाएँ मिलेंगी। क्या आपने कभी SQLite में branch, merge, और diff चाहा है? Dolt Lite आपके लिए है। या शायद और भी importantly, क्या आपने कभी एक conflict-aware SQLite sync engine चाहा है जिसे Git-style push, pull, clone, and fetch द्वारा संचालित किया गया है? Dolt Lite आपके लिए है। या शायद और भी importantly, क्या आपने कभी एक conflict-aware SQLite sync engine चाहा है जिसे Git-style push, pull, clone, and fetch द्वारा संचालित किया गया है? Dolt Lite आपके लिए है। आप Dolt Hub को अपने sync backend के रूप में भी उपयोग कर सकते हैं।

Beta का क्या मतलब है

तो, Dolt Lite के Beta बनने का आपके लिए क्या मतलब है? Beta का मतलब चार बातें हैं: Storage Format Stability, SQL Compatibility, Full Version Control, Production Performance, और field reports on functionality and stability universally positive। SQLite की testing battery truly प्रभावशाली है। Dolt Lite ने उन परीक्षणों को पास किया है साथ ही एक custom suite of Dolt oracle tests। Dolt Lite के लिए तैयार है कि आप इसे आज़माएं। Storage Format Stability

Dolt Lite के विकास प्रक्रिया में सबसे बड़ी शिकायत storage format के बंप्स थी। Storage format में बदलाव backward-compatible नहीं थे, जिससे उपयोगकर्ताओं को same version पर रहना पड़ता था या अपने डेटाबेस को मैन्युअल रूप से डंप और reimport करना पड़ता था। Beta तक पहुँचने के लिए 12 format changes लगे। हमने वर्तमान format में 57 releases कीं, या तीन महीने से अधिक कैलेंडर समय। यह प्रतीत होता है कि एक format जिसे हम पक्के रह सकते हैं। Storage format अब stable है। Any future breaking changes के पास एक supported migration path होगा। Dolt Lite Beta का मतलब है कि आप बिना डर के adopt कर सकते हैं कि storage format में कोई breaking change होगा। SQL Compatibility

SQLite की SQL layer अत्यंत well tested है। Dolt Lite ने इनमें से अधिकांश परीक्षणों को पास किया है, SQL compatibility साबित करते हुए। Dolt Lite ने sqllogictest के 100% को पास किया है, एक 5.8M complex queries का सूट। query layer SQLite के समान है इसलिए यह अपेक्षित है। SQLite के पास 892,277 TCL-आधारित स्वीकृति परीक्षणों का एक सूट है जो broader surface of SQLite API का परीक्षण करते हैं। Dolt Lite ने 99.46% पास किया है जिसमें 4,809 ज्ञात विविधताएं हैं। प्रत्येक विविधता का एक कारण सूचीबद्ध होना चाहिए। शीर्ष कारण हैं: Tables primary key द्वारा keyed, rowid के बजाय, version control functionality का समर्थन करने के लिए। कुछ tests directly rowid की जांच करते हैं। Dolt Lite के पास chunks हैं, not pages। कुछ tests directly pages की जांच करते हैं। कोई WAL या journal sidecar नहीं है। WAL and journal tests को skip किया गया है। SQLite के उपयोगकर्ताओं को Dolt Lite के साथ घर जैसा महसूस होगा। Dolt Lite SQLite की तरह काम करता है अतिरिक्त version control functions के साथ। Full Version Control

Dolt Lite Dolt के core suite of Git-style version control features को लागू करता है। Local version control features supported। Branches, merges, diffs, rebases, cherry-picks, and resets, नाममात्र के लिए। Remote version control supported: push, pull, clone, and fetch from a custom remot...