< 1 ms
本地写入
SQLite 优先——从不等待网络
1.2 秒
重连追平
队列中 1 万条变更,通过增量
−92%
网络字节
列式 + zstd 对比原始行
5 万/秒
写入吞吐
每个数据平面节点的变更数
*基于代表性负载的示意性初步内部基准。最终经审计的数据将随商业版发布。
为何如此之快
同步的是变化,不是整个数据库
朴素的同步会传输整行并在服务端对账一切。CrossFly Sync 先写本地,再通过 gRPC 传输紧凑的列式增量。
CrossFly Sync
增量设备写入本地
SQLite + 持久化变更队列
增量变化
gRPC/TLS,列式(Arrow),zstd
Rust 数据平面
仅热路径——元数据另置
你的数据库
基于日志的 CDC,无整份拷贝
朴素 / 全表同步
完整负载应用等待网络
UI 阻塞直到往返完成
整行负载
完整记录,未压缩
服务端对账一切
重新扫描而非应用增量
数据库
服务端重复的同步状态
对比市场
如实对比
| PowerSync / ElectricSQL | Realm / Couchbase / RxDB | ||
|---|---|---|---|
| 增量传输(delta) | ✓ | ◑ | ◑ |
| 持久化离线队列 | ✓ | ✓ | ◑ |
| 多数据库 CDC | ✓ | — | — |
| 列式批量水合 | ✓ | — | — |
| 附件无单行上限 | ✓ | ~15 MB | 视情况 |
✓ 提供 · ◑ 部分 / 因产品而异 · — 不提供。此对比反映我们对典型能力的理解,并可能随这些产品的演进而变化。
实战中
真实同步场景
| 任务 | 常见做法 | |
|---|---|---|
| 离线时本地写入 | < 1 ms | 等待网络 |
| 首次水合(1 万行) | 0.8 秒(列式) | 3–6 秒(逐行) |
| 离线 1 小时后重连 | 1.2 秒(增量) | 完整重新同步 |
| 编辑一条记录并同步 | 1 个增量,约 1 KB | 整行 |
| 50 MB 附件 | 可续传、分块 | 约 15 MB/行 上限 |