Bonjour,

Oui tu peux faire pleins de choses en prenant le temps de découper tes fichiers, scripter tout cela, etc... Mais si tu dois copier des fichiers de centaines de Go toutes les heures avec 140ms de latence (par ex Paris - San Francisco (ou Hollywood)) avec 0.1% de loss en pointe sur ton lien giga (comme tout lien longue distance), tu vas bien rigoler avec une seule connexion TCP et ta window size a 16M (disclosure: on a essayé).

Donc ça c'est l'option 1... "je suis le meilleur et TCP on peut le tweaker à mort pour que ca fasse ce que je veux", ça va être long et pénible, mais "je suis le meilleur". Le parallélisme applicatif / multiplexing ça n'existe juste pas... ce serait en effet une bonne solution pour tout faire en TCP, mais très très peu de softs sont prévus en ce sens et ils sont très orientés "logs" et pas du tout "tous types de fichiers" (on parlait de vidéo(s) au début). Du coup tu dois tout coder/scripter...

Et sinon tu as l'option 2, pragmatique et bien moins génératrice de problèmes (par ex vs découpage + multiplexing TCP), tu lis ce que des gens à priori assez smart et reconnus dans le monde du HPC ont écrit pour résoudre le problème (http://udt.sourceforge.net/people.html), tu vois que c'est exactement ce que fait la solution commerciale leader du marché et tu essayes... Comme tu es humble, une fois que tu as pu vérifier que ça fonctionne, que c'est compatible multi-plateformes / multi-partenaires et que ça te simplifie la vie, tu te dis "ah bah oui, on va faire ça"... et tu passes au problème suivant ;)


Bonnes fêtes à tous,
Philippe Bourcier


On 2013-12-24 21:28, Radu-Adrian Feurdean wrote:
On Tue, Dec 24, 2013, at 19:54, Philippe Bourcier wrote:

En gros si t'as des liens à forte latence (100+ ms) entre 2 DCs, c'est bien utile car ça transforme ton transfert TCP des technos de transfert les plus courantes en transfert UDP, ce qui de fait te permet de maxer
ton lien (iperf style)... ou de définir un débit max que tu veux
utiliser sur ton lien (et ça c'est très pratique).

Pour un lien satelitte (500+ ms) pourquoi pas, surtout en cas de
conditions meteo defavorables (precipitations, nuages et vent - pas le meilleur traitement pour une parabole). Mais pour des liens terrestres, il faut aller quand-meme assez loin pour que ca a un vrai sens. On peut jouer avec le parametrage de la pile TCP (tcp memory, congestion window,
sack, tcp_hybla, tcp_westwood, .....) et on peut jouer aussi avec le
paralellisme applicatif. Il y a dans la majorite des cas des choses a
faire avant d'arriver au trasnfert via UDP. Un lien giga a 100ms, ca se
rempli sans trop de difficultes en TCP.

Bonnes fetes !


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

--
Philippe Bourcier
web : http://sysctl.org/
blog : http://zsysctl.blogspot.com


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à