Nguồn: Turso Blog

Tóm tắt

Turso — bản viết lại SQLite bằng Rust — đã giới thiệu cơ chế sync mới hoàn toàn khác với libSQL Embedded Replicas trước đó. Vấn đề cốt lõi của Embedded Replicas là nó replication dựa trên physical pages, không có cách tốt để theo dõi logical stream of changes trong SQLite, dẫn đến nhiều hạn chế nghiêm trọng: lãng phí bandwidth, không thể write locally, và thường xuyên phải bootstrap lại toàn bộ database từ cloud khi trang phân kỳ.

Turso giải quyết vấn đề bằng Change Data Capture (CDC): hệ thống theo dõi mọi thay đổi logic, chỉ gửi các logical changes thay vì toàn bộ physical pages. Giao thức sync được tách ra thành push()pull() riêng biệt, cho phép control chi tiết hơn. Toàn bộ kiến trúc là async, hỗ trợ partial sync — chỉ kéo về các trang cần thiết cho query hiện tại.

Kết quả benchmark cho thấy sự cải thiện đáng kinh ngạc: với 3.000 lần insert tuần tự, Turso sync nhanh hơn 8.9x và dùng ít data hơn 16.3x so với Embedded Replicas. Trong kịch bản read-your-writes (insert rồi ngay lập tức đọc lại), Turso nhanh hơn tới 312x và dùng ít data hơn 18.4x. Ngay cả khi push sau mỗi write đơn lẻ, Turso vẫn nhanh hơn 7.3x.

Đội ngũ Turso tuyên bố sẵn sàng khuyến nghị chuyển toàn bộ từ libSQL sang Turso cho mọi use case sử dụng sync, vì compatibility matrix đã đạt trên 95% SQLite. Package npm mới @tursodatabase/sync cho phép dùng local sync server qua Turso CLI mà không cần tài khoản cloud.

👉 Đọc bài gốc