Наиболее эффективная однонаправленная синхронизация (от сервера к нескольким клиентам) - PullRequest
0 голосов
/ 26 января 2009

Какой самый эффективный для полосы пропускания способ однонаправленно синхронизировать список данных с одного сервера на множество клиентов?

У меня есть значительная часть данных (возможно, 20 000, 50-байтовые записи), которые мне необходимо периодически синхронизировать с серией клиентов через Интернет (возможно, 10 000 клиентов). Записи могут добавляться, удаляться или обновляться только на стороне сервера .

Ответы [ 2 ]

1 голос
/ 26 января 2009

Что-то похожее на bittorrent? Или даже используя bittorrent. Или, может быть, придумать обертку вокруг bittorrent.

(Предполагается, что вы платите за пропускную способность на вашем сервере, а не на других ...)

0 голосов
/ 26 января 2009

Хорошо, теперь у нас есть некоторые подробности - возможно, 10 ГБ общих (несжатых) данных, каждые 3 дня, то есть 100 ГБ в месяц.

В наши дни это не очень большой объем данных. Чью полосу пропускания вы пытаетесь сохранить - свою или своих клиентов?

Возможно, данные сжимаются очень легко? Для необработанных двоичных данных нередко достигается 50% сжатие, и если в данных много повторяющихся шаблонов, то возможно 80% +.

Тем не менее, если вам действительно нужна система, которая может просто передавать изменения, я думаю:

  1. убедитесь, что у вас есть четко определенное поле первичного ключа - используйте его в качестве ключа для идентификации каждой записи
  2. записать метку времени для каждой записи, чтобы сообщить, когда она в последний раз изменилась
  3. пусть каждый клиент скажет вам метку времени последнего изменения, о котором он знает, чтобы вы могли вычислить дельты
  4. гарантирует, что полные загрузки также возможны, в случае, если клиенты не синхронизируются
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...