- Bluesky telah bermigrasi ke datastore SQLite single-tenant.
- Kini setiap pengguna memiliki file SQLite mereka sendiri untuk menyimpan repositori dan status akun pribadi mereka.
- Basis data pengguna disimpan secara hierarkis.
- Kunci penandatanganan repositori untuk setiap repositori disimpan bersama file SQLite.
- Abstraksi yang berinteraksi dengan data pengguna telah dialihkan ke ActorStore.
- ActorStore memiliki kelas yang berbeda untuk pembacaan dan penulisan.
- Karena SQLite tidak mendukung transaksi bersamaan, ActorStore memerlukan "transact" yang eksplisit untuk penulisan.
- LRUCache untuk kunci penandatanganan dan basis data dipertahankan, memungkinkan 30 ribu file handle terbuka dan 30 ribu kunci disimpan di memori.
- Ketika basis data keluar dari cache, file handle akan ditutup.
- Tiga basis data SQLite terpisah diperkenalkan untuk mengelola status layanan: service DB untuk informasi akun, kode undangan, refresh token, dan lainnya; did cache DB untuk melakukan cache pada penyelesaian DID; serta sequencer DB untuk memproses pembaruan repositori secara berurutan dari semua repositori dalam layanan.
- File-file SQLite ini dijalankan dalam mode WAL agar memungkinkan pembacaan bersamaan dan replikasi streaming.
- Distribusi PDS diperkirakan akan dikirim bersama Litestream atau yang serupa.
1 komentar
Opini Hacker News