- Blueskyは、シングルテナントのSQLiteデータストアへ移行しました。
- これにより各ユーザーは、自身のリポジトリと個人アカウント状態を保存する専用のSQLiteファイルを持つようになりました。
- ユーザーデータベースは階層的に保存されます。
- 各リポジトリのリポジトリ署名キーは、SQLiteファイルとともに保存されます。
- ユーザーデータとやり取りする抽象化は、ActorStoreへ移行しました。
- ActorStoreは、読み取り用と書き込み用で別々のクラスを持っています。
- SQLiteは同時トランザクションをサポートしないため、ActorStoreでは書き込みのために明示的な"トランザクト"が必要です。
- 署名キーとデータベースのためのLRUCacheが維持され、3万件のオープンなファイルハンドルと、メモリ上に保持された3万件のキーを許可します。
- データベースがキャッシュから外れると、ファイルハンドルは閉じられます。
- サービス状態を管理するために、3つの独立したSQLiteデータベースが導入されました。すなわち、アカウント情報・招待コード・リフレッシュトークンなどのためのサービスDB、DID解決をキャッシュするためのdidキャッシュDB、そしてサービス内のすべてのリポジトリにおけるリポジトリ更新を順次処理するためのsequencer DBです。
- これらのSQLiteファイルは、同時読み取りとストリーミングレプリケーションを可能にするため、WALモードで動作します。
- PDSのデプロイは、Litestreamまたは同様のものとともに提供される見込みです。
1件のコメント
Hacker News の意見