Synchronisation unidirectionnelle efficace en bande passante (serveur vers plusieurs clients)

StackOverflow https://stackoverflow.com/questions/478420

Question

Quel est le moyen le plus efficace en termes de bande passante de synchroniser de manière unidirectionnelle une liste de données d'un serveur vers plusieurs clients?

J'ai beaucoup de données (peut-être 20 000 enregistrements de 50 octets) que je dois synchroniser périodiquement avec une série de clients sur Internet (peut-être 10 000 clients). Les enregistrements peuvent être ajoutés, supprimés ou mis à jour uniquement côté serveur .

Était-ce utile?

La solution

D'accord, nous avons quelques détails maintenant: peut-être 10 Go de données (non compressées) au total, tous les 3 jours, soit 100 Go par mois.

En réalité, ces données ne sont pas vraiment considérables. Quelle bande passante essayez-vous de sauvegarder - la vôtre ou celle de vos clients?

Est-ce que les données peuvent être compressées très facilement? Pour les données binaires brutes, il est courant d'atteindre une compression de 50%. Si les données contiennent de nombreux modèles répétés, il est alors possible d'utiliser 80% +.

Cela dit, si vous avez vraiment besoin d’un système capable de transférer les modifications, voici ce que je pense:

  1. assurez-vous que vous avez un champ clé primaire bien défini - utilisez-le comme clé pour identifier chaque enregistrement
  2. enregistrer un horodatage pour chaque enregistrement afin d'indiquer la date de dernière modification
  3. demandez à chaque client de vous indiquer l’horodatage du dernier changement connu, afin que vous puissiez calculer les deltas
  4. assurez-vous que les téléchargements complets sont également possibles, au cas où les clients ne seraient plus synchronisés

Autres conseils

Quelque chose de semblable à bittorrent? Ou même en utilisant bittorrent. Ou peut-être inventer un wrapper autour de bittorrent.

(En supposant que vous payez pour la bande passante sur votre serveur et pas pour les autres ...)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top