17 poin oleh GN⁺ 2024-12-11 | 4 komentar | Bagikan ke WhatsApp
  • Limbo adalah proyek eksperimental untuk mengimplementasikan ulang SQLite dengan Rust yang memberikan keamanan memori
    • Menyukai sifat embedded SQLite, tetapi menginginkan model pengembangan yang lebih terbuka sehingga proyek libSQL dimulai
  • Alasan melakukan fork pada SQLite: fitur baru dapat diintegrasikan dengan mudah, dan kompatibilitas dengan kode yang ada tetap bisa dipertahankan
    • Kekurangannya: test suite SQLite bersifat proprietari dan ditulis dalam C, sehingga evolusi kode menjadi sulit
  • Pendekatan baru
    • Mengalami keterbatasan SQLite saat menambahkan fitur pencarian vektor
    • Menulis ulang SQLite dari awal untuk mengeksplorasi kemungkinan penambahan fitur yang lebih agresif sambil tetap menjaga kompatibilitas
  • Langkah berikutnya
    • Mengubah Limbo menjadi proyek resmi Turso
    • Bertujuan membangun arsitektur baru yang memberikan keamanan memori sambil mempertahankan keandalan yang sama seperti SQLite
  • Menantang keandalan SQLite
    • Mencapai keandalan tinggi melalui deterministic simulation testing (DST)
    • Bekerja sama dengan Antithesis untuk menggunakan framework DST tingkat sistem
  • Status saat ini
    • I/O sepenuhnya asinkron: Limbo memiliki desain yang sepenuhnya asinkron, menyelesaikan masalah antarmuka sinkron SQLite
    • Dirancang untuk WASM: desain yang mempertimbangkan penggunaan di lingkungan WASM
    • Performa: pada banyak pekerjaan, performanya setara atau lebih cepat daripada SQLite
    • Kesederhanaan: memberikan pengalaman pengguna yang lebih baik dengan menghapus fitur yang kurang penting di lingkungan modern
  • Informasi tambahan
    • Limbo tersedia di GitHub dengan lisensi MIT
    • Mengundang siapa pun yang tertarik membangun database embedded yang ingin membawa janji SQLite ke tahap berikutnya

4 komentar

 
seonwoo960000 2024-12-21

Lucu juga rasanya melihat proyek yang pernah saya kontribusikan muncul di Hacker News hehe

 
GN⁺ 2024-12-11
Komentar Hacker News
  • SQLite tampaknya merupakan proyek yang tidak perlu ditulis ulang karena kualitas kodenya dan pengujian yang ketat

    • Ada pendapat bahwa lebih baik kode C lain yang ditulis ulang terlebih dahulu
  • Diskusi bahwa SQLite bukan untuk "kontribusi terbuka" mengabaikan bahwa menerima kontribusi tidak selalu berarti menerima semua kontribusi

    • SQLite memiliki prosedur untuk kontribusi, dan bekerja dengan cara mengimplementasikan fitur yang diusulkan
    • Proyek lain dalam ekosistem SQLite seperti Litestream dan LiteFS juga memiliki kebijakan kontribusi yang serupa
  • Ada yang awalnya bersikap negatif terhadap pengumuman awal fork dari SQLite3 ke LibSQL

    • Karena test suite SQLite3 bersifat proprietari, mereka mengira fork tersebut kemungkinan besar akan gagal
    • Namun, jika ada hasil besar seperti penulisan ulang ke bahasa yang aman memori, fork semacam itu dianggap masuk akal
  • Untuk performa maksimum, sebaiknya memilih mode WAL dan menonaktifkan POSIX advisory locking

    • Ada yang bertanya-tanya apakah mode "wal2" ada dalam radar proyek ini
  • Ada yang mengatakan baru pertama kali mengetahui bahwa test suite SQLite bersifat proprietari

    • Android dibangun dengan cara yang mirip, tetapi itu masalah yang berbeda
  • Ada yang tidak menerima logika pada bagian "async IO"

    • Menurut mereka, tidak perlu menulis ulang SQLite hanya untuk menambahkan antarmuka asinkron
    • Masalah antarmuka sinkron SQLite adalah thread tetap menganggur saat menunggu IO
    • SQLite dirancang untuk berjalan sangat dekat dengan penyimpanan, sehingga blocking IO bisa sangat singkat atau bahkan tidak ada
  • Ada pendapat bahwa ini adalah proyek yang masih berada pada tahap awal

    • Disediakan contoh kode yang menggunakan Python dan Limbo
  • Jika dikompilasi dengan Fil-C, kita bisa mendapatkan SQLite yang aman memori

    • Hanya memerlukan sedikit perubahan, dan hampir lolos seluruh test suite
  • SQLite terdiri dari sekitar 156.000 baris kode dan 92.000 baris kode pengujian

  • Diperkirakan sertifikasi DO-178B untuk varian Rust tidak sedang dipertimbangkan

  • Nama "Limbo" juga digunakan pada bahasa post-C/UNIX untuk sistem operasi Inferno milik AT&T

 
aer0700 2024-12-12

SQLite tampaknya adalah proyek yang tidak perlu ditulis ulang berkat kualitas kode dan pengujiannya yang ketat -> penilaian seperti ini terhadap SQLite benar-benar membuat iri dan keren.

 
regentag 2024-12-12

Disebutkan bahwa proyek ini mengikuti proses DO-178B dan telah mencapai 100% cakupan kode MC/DC.
Kisah SQLite yang tidak banyak diketahui