Локальное хранение данных и их синхронизация с базой данных на сервере Linux - PullRequest
1 голос
/ 03 мая 2010

Я разработал приложение для Mac, которое постоянно взаимодействует с базой данных на сервере Linux. По мере увеличения объема данных получение данных с сервера становится более затратным делом. Поэтому я планирую хранить необходимые данные локально, скажем, на SQLite, и найти механизм, с помощью которого я могу синхронизировать их с базой данных на сервере Linux.

Может кто-нибудь подсказать мне, как это сделать?

Спасибо

Miraaj

Ответы [ 2 ]

1 голос
/ 04 мая 2010

Если вы спрашиваете о синхронизации данных между одним источником и другим? Удачи. Это была значительная область исследований в течение многих лет, и по сей день, это в основном все еще для конкретных приложений.

Программное обеспечение, подобное SalesLogix, будет иметь центральную базу данных с такой таблицей:

site | key | name | address | phone | city | state | last_update

и каждый удаленный пользователь будет иметь свой код сайта. Когда синхронизация происходит на основе полей last_update, она проверяет сайт и ключ на предмет конфликтов, когда два разных удаленных пользователя могут случайно выбрать один и тот же уникальный идентификатор для записи.

Если у вас есть что-то менее сложное, вы можете создать слой доступа к данным для отслеживания транзакций в локальной базе данных, а затем воспроизвести их при следующем подключении. Проблема здесь снова в последовательности.

Если я изменю objectA.PropertyB на «test1», а вы измените его на «test3?» кто из нас более правильный? Как вы делаете обнаружение столкновений?

Боюсь, мне еще не удалось найти единого готового решения этой проблемы, которое бы работало во всех областях данных.

1 голос
/ 03 мая 2010

Возможно, вы можете сформулировать стратегию кэширования. Посмотрите, например, на memcached. Трудно сказать больше, не зная вашей рабочей нагрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...