17 ポイント 投稿者 GN⁺ 2024-12-11 | 4件のコメント | WhatsAppで共有
  • Limboは、メモリ安全性を提供するRustでSQLiteを再実装する実験的プロジェクト
    • SQLiteの組み込み特性を気に入っていたが、よりオープンな開発モデルを求めてlibSQLプロジェクトを開始
  • SQLiteをフォークした理由: 新機能を容易に統合でき、既存コードとの互換性も維持できるため
    • 欠点: SQLiteのテストスイートは独占的でCで書かれており、コードの進化が難しい
  • 新しいアプローチ
    • ベクトル検索機能の追加を通じてSQLiteの限界を経験
    • SQLiteを一から書き直し、互換性を維持しつつ、より積極的な機能追加の可能性を探る
  • 次のステップ
    • Limboを公式のTursoプロジェクトへ移行
    • SQLiteと同等の信頼性を保ちながら、メモリ安全性を提供する新しいアーキテクチャの構築を目指す
  • SQLiteの信頼性への挑戦
    • 決定論的シミュレーションテスト(DST)により高い信頼性を確保
    • Antithesisと協力し、システムレベルのDSTフレームワークを使用
  • 現在の状況
    • 完全非同期I/O: Limboは完全非同期設計で、SQLiteの同期インターフェースの問題を解決
    • WASM向けの設計: WASM環境での利用を考慮した設計
    • 性能: 多くの作業でSQLiteと同等かそれ以上の性能
    • シンプルさ: 現代環境では重要性の低い機能を削除し、より良いユーザー体験を提供
  • 追加情報
    • LimboはMITライセンスでGitHub上に公開
    • SQLiteの約束を次の段階へ発展させたい、組み込みデータベースの構築に関心のある人々を招待している

4件のコメント

 
seonwoo960000 2024-12-21

自分が貢献していたプロジェクトが Hacker News に載るなんて、不思議な感じですね(笑)

 
GN⁺ 2024-12-11
Hacker Newsのコメント
  • SQLiteは、コード品質と厳格なテストのため、書き直す必要のないプロジェクトに見える

    • まずは他のCコードが先に書き直されるとよい、という意見がある
  • SQLiteが「オープンな貢献」ではないという議論は、貢献を受け付けることが常にその貢献を受け入れることを意味するわけではない、という点を見落としている

    • SQLiteには貢献のための手順があり、提案された機能を実装する方式になっている
    • LitestreamやLiteFSのようなSQLiteエコシステムの他のプロジェクトも、同様の貢献ポリシーを持っている
  • SQLite3からLibSQLへのフォークの初期発表については否定的だった

    • SQLite3のテストスイートがプロプライエタリであるため、フォークは失敗する可能性が高いと考えていた
    • しかし、メモリ安全な言語への書き直しのような大きな成果物があるなら、フォークには意味があると見ている
  • 最大性能のためにはWALモードを選ぶべきで、POSIXアドバイザリロックを無効化すべきだ

    • wal2 モードがこのプロジェクトの検討対象に入っているのか気になる、という意見がある
  • SQLiteのテストスイートがプロプライエタリだという事実を初めて知った、という意見がある

    • Androidも似たような形で構築されているが、これは別の問題だ
  • 「async IO」セクションの論理は受け入れられない

    • SQLiteに非同期インターフェースを追加するために、書き直しが必要だとは思わない
    • SQLiteの同期インターフェースの問題は、IOを待っている間にスレッドがアイドル状態のままになることだ
    • SQLiteはストレージに非常に近い場所で動作するよう設計されているため、IOブロッキングは非常に短いか、存在しない可能性がある
  • まだ初期段階のプロジェクトだ、という意見がある

    • PythonとLimboを使ったコード例が示されている
  • Fil-Cでコンパイルすれば、メモリ安全なSQLiteを得られる

    • 多少の変更だけで済み、テストスイートもほぼ通る
  • SQLiteは約156,000行のコードと92,000行のテストコードで構成されている

  • Rust版のDO-178B認証は考慮されていないだろう、との推測がある

  • 「Limbo」という名前は、AT&TのInfernoオペレーティングシステム向けのポストC/UNIX言語でも使われている

 
aer0700 2024-12-12

SQLiteは、コード品質と厳格なテストによって、書き直す必要のないプロジェクトに見える -> SQLiteに対するこうした評価は本当にうらやましく、素晴らしいですね。

 
regentag 2024-12-12

DO-178Bプロセスに従っており、MC/DCコードカバレッジ100%を達成したとのことです。
SQLiteの知られざる物語