【发布时间】:2010-12-01 11:03:36
【问题描述】:
我正在为一个流行的基于 SQLite 的 iPhone 抽认卡应用开发在线用户数据库备份/同步系统;这是相当大的规模——我们可以很快达到 1 亿条或更多的个人抽认卡记录(10,000 个用户,每个用户 10,000 张卡片)——我们需要在设计系统时考虑到这种可扩展性。但我们并不是真正从事基于 Web 的软件业务,至少最初我们不打算实际提供这么多的 Web 界面,除了帐户管理 - 所有对用户数据的实际操作都将离线进行。
因此,对于如何实现这一点,我们似乎有两个基本选择:
在服务器上执行同步;将所有用户的数据存储在 MySQL 数据库中(或在我们扩大规模时存储其中的一堆)并仅下载/上传更改列表。
在本地执行同步;从服务器下载最新版本的数据库,在设备上检查/应用更改,然后上传合并的数据库。
本地同步选项似乎意味着我们的编程工作量减少了很多,托管成本也降低了很多,但也意味着我们的用户使用的带宽显着增加——每个用户可能需要大约 2-4 MB同步操作与基于 Web 的同步需要几十 K。
有没有人觉得这些选项中的一个明显优于另一个?还有其他我们没有考虑过的方法吗?
谢谢。
【问题讨论】:
标签: iphone mysql sqlite synchronization amazon-s3