17 पॉइंट द्वारा GN⁺ 2024-12-11 | 4 टिप्पणियां | WhatsApp पर शेयर करें
  • Limbo एक प्रायोगिक प्रोजेक्ट है जो memory safety देने वाले Rust में SQLite को फिर से लागू करता है
    • SQLite की embedded प्रकृति पसंद थी, लेकिन अधिक खुला development model चाहिए था, इसलिए libSQL प्रोजेक्ट शुरू किया गया
  • SQLite को fork करने का कारण: नई features को आसानी से integrate किया जा सकता है और मौजूदा code के साथ compatibility बनाए रखी जा सकती है
    • नुकसान: SQLite का test suite proprietary है और C में लिखा गया है, इसलिए code evolution कठिन है
  • नया approach
    • vector search feature जोड़ते समय SQLite की सीमाओं का अनुभव हुआ
    • SQLite को शुरू से फिर से लिखकर compatibility बनाए रखते हुए अधिक आक्रामक feature additions की संभावना तलाशना
  • अगले कदम
    • Limbo को आधिकारिक Turso प्रोजेक्ट में बदलना
    • SQLite जैसी reliability बनाए रखते हुए memory safety देने वाली नई architecture बनाने का लक्ष्य
  • SQLite की reliability को चुनौती
    • deterministic simulation testing (DST) के जरिए उच्च reliability हासिल करना
    • Antithesis के साथ मिलकर system-level DST framework का उपयोग
  • वर्तमान स्थिति
    • पूरी तरह asynchronous I/O: Limbo पूरी तरह asynchronous design पर आधारित है, जो SQLite के synchronous interface की समस्या हल करता है
    • WASM के लिए design: WASM environment में उपयोग को ध्यान में रखकर बनाया गया design
    • performance: कई workloads में SQLite के बराबर या उससे तेज़ performance
    • simplicity: आधुनिक environments में कम महत्वपूर्ण features हटाकर बेहतर user experience देना
  • अतिरिक्त जानकारी
    • Limbo MIT license के तहत GitHub पर उपलब्ध है
    • embedded database बनाने में रुचि रखने वाले लोगों को आमंत्रित किया जाता है, जो SQLite के वादे को अगले चरण तक ले जाना चाहते हैं

4 टिप्पणियां

 
seonwoo960000 2024-12-21

जिस प्रोजेक्ट में मैं योगदान दे रहा था, उसे Hacker News पर देखना काफ़ी दिलचस्प लगा, हाहा

 
GN⁺ 2024-12-11
Hacker News राय
  • SQLite ऐसा प्रोजेक्ट लगता है जिसे code quality और सख्त testing के कारण दोबारा लिखने की ज़रूरत नहीं है

    • कुछ लोगों की राय है कि पहले किसी और C code को दोबारा लिखा जाए तो बेहतर होगा
  • SQLite के "open contribution" न होने पर होने वाली चर्चा इस बात को नज़रअंदाज़ करती है कि योगदान स्वीकार करना हमेशा हर योगदान को अपनाने के बराबर नहीं होता

    • SQLite में contribution के लिए एक प्रक्रिया है, और यह प्रस्तावित features को उसी तरीके से implement करता है
    • SQLite ecosystem के दूसरे प्रोजेक्ट, जैसे Litestream और LiteFS, की भी contribution policy मिलती-जुलती है
  • SQLite3 से LibSQL में fork की शुरुआती घोषणा पर नकारात्मक प्रतिक्रिया थी

    • लगा था कि SQLite3 का test suite proprietary होने के कारण fork के असफल होने की संभावना ज़्यादा है
    • लेकिन अगर memory-safe language में rewrite जैसा कोई बड़ा उत्पाद-स्तरीय कारण हो, तो fork को सार्थक माना जा सकता है
  • अधिकतम performance के लिए WAL mode चुनना चाहिए, और POSIX advisory locking को disable करना चाहिए

    • कुछ लोग पूछ रहे हैं कि क्या "wal2" mode इस प्रोजेक्ट की योजना में है
  • कुछ लोगों ने कहा कि उन्हें पहली बार पता चला कि SQLite का test suite proprietary है

    • Android भी कुछ हद तक इसी तरह बनाया गया था, लेकिन वह अलग मुद्दा है
  • "async IO" सेक्शन की दलील से सहमति नहीं है

    • उनका मानना है कि SQLite में asynchronous interface जोड़ने के लिए rewrite की ज़रूरत नहीं है
    • SQLite के synchronous interface की समस्या यह है कि IO का इंतज़ार करते समय thread idle रहता है
    • SQLite को storage के बहुत क़रीब चलने के लिए डिज़ाइन किया गया है, इसलिए IO blocking बहुत कम या बिल्कुल नहीं भी हो सकती है
  • कुछ लोगों का कहना है कि यह अभी शुरुआती चरण का प्रोजेक्ट है

    • Python और Limbo का उपयोग करने वाला code example दिया गया है
  • Fil-C से compile करने पर memory-safe SQLite पाया जा सकता है

    • इसके लिए केवल थोड़े बदलाव चाहिए, और यह test suite का लगभग पूरा हिस्सा पास कर लेता है
  • SQLite लगभग 156,000 lines of code और 92,000 lines of test code से बना है

  • माना जा रहा है कि Rust variant के लिए DO-178B certification पर विचार नहीं किया जा रहा है

  • "Limbo" नाम AT&T के Inferno operating system के लिए post-C/UNIX language में भी इस्तेमाल होता है

 
aer0700 2024-12-12

SQLite एक ऐसा प्रोजेक्ट लगता है जिसे उसके code quality और कड़े testing की वजह से दोबारा लिखने की ज़रूरत नहीं है -> SQLite के बारे में ऐसी राय सच में ईर्ष्या करने लायक और शानदार लगती है।

 
regentag 2024-12-12

कहा जा रहा है कि यह DO-178B process का पालन करता है और 100% MC/DC code coverage हासिल कर चुका है.
SQLite की अनजानी कहानी