[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