Fork me on GitHub
#clojure-poland
<
2015-11-26
>
darnok07:11:03

Na takim talku Martina Thompsona, mówił że właśnie najlepsze jest podejście z jednym wątkiem, czyli worker który powoduje zmianę i np core.asyncowy kanał do którego się wrzuca zmiany.

darnok07:11:11

Mówił tak dlatego że persistent data structure tak na prawdę nie są dobre do modyfikacji przez różne wątki jednocześnie, bo i tak po drodze musi gdzieś wystąpić lock (przy kopiowaniu częściu struktury).

jaen09:11:13

Znaczy póki wszystko masz w jednym agencie, to nic nie jest modyfikowane jednocześnie chyba, więc tej części problemu nie ma. I w sumie zastanawiam się czemu trzeba by było lockować tą strukturę, skoro częścią persistent data structures jest to, że nigdy się w nich nic nie zmienia, najwyżej dochodzi nowe. Ale zobaczyłem że to koleś od LMAX disruptora, to pewnie nie gada takich rzeczy bez pokrycia.

jaen09:11:28

Aczkolwiek też motyw z core.async + worker wydaje mi się chyba lepszy

jaen09:11:38

Zalezy w sumie jak bardzo zależy na parallelismie