[so] Tema 4 linux

Catalin Iacob iacobcatalin at gmail.com
Fri Dec 15 18:17:13 EET 2006


Salut

Eu tot am cateva nelamuriri legate de tema pe linux(sper sa fie ultimele 
si sa ma apuc apoi de treaba):

1. fisierele trebuie impartite in bucati sau nu? - ma gandesc ca nu prea 
e normal sa trimiti un fisier de 100MB tot odata din moment ce serverul 
va sta blocat (din moment ce se fac read/write blocante) un timp de 
ordinul minutelor daca se comunica prin Internet; in timpul asta 
clientii se vor aduna la coada si daca se va depasi parametrul 2 backlog 
al functiei listen conexiunea le va fi refuzata

Va rog precizati exact: nu e necesara impartirea, e optionala dar ar fi 
mai bine sa fie facuta, e optionala dar mai bine nu, e optionala si e 
indiferent cum faci, e neaparat necesara etc. ca sa stiu ce aleg in 
cunostiinta de cauza.

2. in apelul recv putem si daca da e indicat sa folosim flagul 
MSG_WAITALL? Pe de o parte simplifica tema prin faptul ca stim sigur ca 
a venit toata bucata / fisierul ( in functie de raspunsul la intrebarea 
1 ) dar introduce aceeasi ineficienta datorata asteptarii mai mult timp 
pe socket

3. epoll se deblocheaza si cand un client incearca sa stabileasca o 
conexiune fara sa vrea neaparat sa trimita date, deci nu e nevoie de un 
al doilea thread in care serverul sa stea blocat in accept(), poate sa 
stea mereu in epoll. Corect?

Imi inchipui ca testele se pot trece si fara multe intrebari filosofice 
in stilul primelor 2 de mai sus (se fac pe localhost si cu maxim 1MB 
daca am vazut bine). Dar tema a plecat de la ideea ca folosim IO 
asincron pentru a suporta un numar mare de clienti si a fi ultra 
eficienti. Daca nu conta puteam sa facem thread diferit pentru fiecare 
client si gata - era mai simplu API-ul.

Multumesc... iar a iesit un post lung :-(


More information about the so mailing list