clojure-poland

darnok 2015-11-26T07:28:03.000166Z

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.

darnok 2015-11-26T07:29:11.000167Z

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).

jaen 2015-11-26T09:17:13.000168Z

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.

jaen 2015-11-26T09:17:28.000169Z

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

jaen 2015-11-26T09:17:38.000170Z

Zalezy w sumie jak bardzo zależy na parallelismie