停止同步所有内容

Summary:

  • Outline: Presents various aspects of Graft including different replication approaches and features.
  • Graft Overview: Addresses challenges of data sync across clients and servers. Designed for lazy, partial replication with strong consistency, for offline-first & mobile apps, cross-platform sync, etc.
  • Edge Replication Approach: Different from full or schema-aware diff replication. Graft is schema-agnostic, replicates bytes, and uses a Volume with sparse Pages. Clients get a compact graft with changed page indexes.
  • Lazy Sync: Clients choose when to sync. After pulling a graft, they know what's changed and can selectively fetch necessary pages using prefetching methods.
  • Partial Sync: Important for edge environments. Clients fetch only needed pages, improving performance. Graft's object storage ensures durability and scalability.
  • Edge Sync: Serves pages from object storage through edge servers for low latency. Graft client is lightweight and embedded.
  • Consistency: Provides Serializable Snapshot Isolation for strong consistency. Handles commits based on outdated snapshots safely.
  • What Can Be Built: Offline-first apps, cross-platform data, stateless read replicas, and replicate any data.
  • Graft SQLite Extension (libgraft): A native SQLite extension for lazy partial replication in resource-constrained environments.
  • Get Involved: Developed on GitHub. Community contributions welcome. Join Discord or send an email. Waitlist for Graft Managed Service.
  • Roadmap: Plans include WebAssembly support, integrating with SQLSync, more client libraries, low-latency writes, garbage collection, etc.
  • Comparison with Other SQLite Replication Solutions: Compares with mvSQLite, Litestream, cr-sqlite, Cloudflare Durable Objects, Cloudflare D1, Turso/libSQL, rqlite/dqlite, and Verneuil in terms of storage, replication features, etc.
  • Footnotes: Provide details and explanations for various concepts and features.

Key Points:

  • Graft offers unique lazy, partial, edge-friendly replication with strong consistency.
  • It has a Volume-based model with grafts for efficient data sync.
  • Designed for various edge-native applications and different environments.
  • libgraft enables SQLite replication in constrained settings.
  • Roadmap outlines future developments.
  • Compared with other solutions in the SQLite replication space.

Important Details:

  • mvSQLite stores pages by content hash, while Graft uses a different approach.
  • Litestream focuses on async durability and read replicas.
  • cr-sqlite uses CRDTs for logical replication.
  • Graft's isolation model is Serializable Snapshot Isolation.
  • It has various prefetching methods and supports arbitrary data replication.
  • Roadmap includes features like WebAssembly support and conflict handling.
阅读 7
0 条评论