[so] Sincronizare

Sergiu Iordache sergiu.iordache at gmail.com
Sun Apr 12 23:20:21 EEST 2009


2009/4/12 Bogdan Sass <bogdan.sass at catc.ro>:
>   Continuand cu tema2, incerc sa imi dau seama exact unde si cum este nevoie
> de sincronizare.
>
>   Fiind vorba de un singur server, operatiile server-side (add/remove/clear)
> nu necesita sincronizare. In ceea ce priveste operatiile print, am doua
> variante:
>   1) -iau semafoarele pe masura ce parcurg zona de memorie partajata, si
> eliberez fiecare semafor imediat dupa afisarea unui bucket. Solutia care imi
> blocheaza cel mai putin timp resursele, dar creez riscul unui race-condition
> cu un client care modifica in acelasi timp un bucket.
>   2) -inhatz rapid toate semafoarele, si le eliberez pe masura ce afisez
> bucket-urile. Solutia elimina race-condition-ul, dar incepe sa semene prea
> mult cu solutia bazata pe un singur obiect de sincronizare (practic singurul
> avantaj ar fi eliberarea ceva mai rapida a primelor bucket-uri, astfel incat
> alti clienti pot scrie in ele).
>
>   Care ar fi solutia recomandata in cazul temei?

Prima soluție e cam aiurea pentru că s-ar putea cred să ai probleme de
consistență(ajungi să printezi un hash care nu a existat niciodată).

A două soluție e cea care cred că e cea mai ok (eu până la precizări
ulterioare așa o să fac) pentru temă, deși mie mi se pare un pic cam
"să folosim X semafoare doar de dragul de a le folosi"(unde 32<X<256 )
:)

Probabil că un răspuns "oficial" ar fi edificator.

Sergiu


More information about the so mailing list