Я работаю над онлайновой системой резервного копирования и синхронизации пользовательских баз данных для популярного приложения на основе SQLite для флэш-карт iPhone;это достаточно масштабно - мы можем довольно быстро получить до 100 миллионов отдельных записей флэш-карт или более (10 000 пользователей, 10 000 карт каждая) - и нам необходимо разработать систему с учетом такого рода масштабируемости.Но мы на самом деле не занимаемся разработкой программного обеспечения для веб-приложений, и, по крайней мере, изначально мы не планируем предоставлять такую большую часть веб-интерфейса, за исключением администрирования учетных записей - все фактические манипуляции с пользовательскими данными будут выполняться в автономном режиме.1001 *
Похоже, у нас есть два основных варианта для реализации этого:
Выполнить синхронизацию на сервере;хранить все данные пользователей в базе данных MySQL (или кучу их по мере увеличения) и загружать / выгружать только списки изменений.
Выполнить синхронизацию локально;загрузите последнюю версию базы данных с сервера, проверьте / примените изменения на устройстве, затем загрузите объединенную базу данных.
Кажется, что опция локальной синхронизации будет означать намного меньшепрограммирование и гораздо меньшие затраты на хостинг с нашей стороны, но это также означало бы значительно более широкое использование полосы пропускания для наших пользователей - вероятно, порядка 2-4 МБ для каждой операции синхронизации по сравнению с несколькими десятками К для веб-синхронизации.
Кто-нибудь чувствует, что один из этих вариантов явно лучше другого?Есть ли какой-то другой способ сделать это, который мы не рассмотрели?
Спасибо.