- Bluesky đã chuyển sang datastore SQLite đơn tenant.
- Giờ đây, mỗi người dùng có tệp SQLite riêng để lưu trữ kho dữ liệu và trạng thái tài khoản cá nhân của mình.
- Cơ sở dữ liệu người dùng được lưu trữ theo cấu trúc phân cấp.
- Khóa ký kho dữ liệu của mỗi kho được lưu cùng với tệp SQLite.
- Lớp trừu tượng tương tác với dữ liệu người dùng đã được chuyển sang ActorStore.
- ActorStore có các lớp khác nhau cho đọc và ghi.
- Vì SQLite không hỗ trợ các giao dịch đồng thời, ActorStore yêu cầu một "transact" rõ ràng cho thao tác ghi.
- Một LRUCache cho khóa ký và cơ sở dữ liệu được duy trì, cho phép 30k file handle đang mở và 30k khóa được giữ trong bộ nhớ.
- Khi cơ sở dữ liệu bị đẩy khỏi cache, file handle sẽ được đóng.
- Ba cơ sở dữ liệu SQLite riêng biệt đã được đưa vào để quản lý trạng thái dịch vụ: service DB cho thông tin tài khoản, mã mời, refresh token, v.v.; did cache DB để cache việc phân giải DID; và sequencer DB để xử lý tuần tự các cập nhật kho dữ liệu trên mọi kho của dịch vụ.
- Các tệp SQLite này chạy ở chế độ WAL để cho phép đọc đồng thời và sao chép theo luồng.
- Dự kiến việc triển khai PDS sẽ được phân phối kèm Litestream hoặc công cụ tương tự.
1 bình luận
Ý kiến trên Hacker News