clojure-poland

2015-11-25T15:37:32.000136Z

ja mam w sumie troche suchar teraz bo mam sobie wektor recordow w atomie i miliard threadow, ktore sie interesuja mutowaniem tych recordow

2015-11-25T15:38:16.000137Z

i chcialbym zeby robily to atomicznie, t.j. sprawdz jeden rekord i ewentualnie zmień go

2015-11-25T15:38:48.000138Z

ale nie chce synchronizować na całym atomie, tylko na poszczególnych rekordach tak naprawdę

2015-11-25T15:39:12.000139Z

i nie mam pomysłu jak to elegancko rozwiązać

jaen 2015-11-25T15:47:53.000140Z

Rozumiem że baza danych nie jest tutaj rozwiązaniem z jakiegoś powodu?

2015-11-25T15:51:38.000141Z

to jest rozwiązanie na bazę poniekąd

2015-11-25T15:51:51.000142Z

mam bazę, która nie ma czegoś takiego jak explicit locking

2015-11-25T15:52:08.000143Z

więc mam do niej właśnie taki interface

2015-11-25T15:53:57.000144Z

co niespecjalnie mi się podoba ale tak już musi być

jaen 2015-11-25T15:59:23.000145Z

Ale w8, to jak to działa, że masz atom, na którym masz watcha. Dostęp do atomu serializuje Ci operacje na tych rekordach i w tym watchu update'ujesz bazę?

2015-11-25T16:11:17.000147Z

no w gruncie rzeczy tak

2015-11-25T16:11:18.000148Z

😄

2015-11-25T16:14:15.000149Z

ale te operacje mogą być serializowane per record zamiast per baza

2015-11-25T16:14:41.000150Z

więc właśnie myślę co tu zrobić bo i tak trochę to jest takie he he na pałę

jaen 2015-11-25T16:16:27.000151Z

No niby możesz każdy rekord wsadzić w atom

jaen 2015-11-25T16:16:31.000152Z

Ale wtedy będzie duuużo watchy

jaen 2015-11-25T16:17:41.000153Z

Może wrzucać operację na kanał z core.async a po drugiej stronie mieć workerów i się tylko upewnić że dwóch workerów nie weźmie jednocześnie operacji dla tego samego rekordu

2015-11-25T16:18:54.000154Z

tak tez myslalem, ale chcialbym odbierac rezultaty w tych roznych threadach

2015-11-25T16:19:38.000155Z

bez pisania jakiejs hardkorowej instalacji

2015-11-25T16:20:06.000156Z

no bo moglbym w sumie wyslac “query” i channel zwrotny a pozniej sobie !!< z niego

jaen 2015-11-25T16:21:11.000157Z

No ale właśnie po to te workery, żebyś mógł modyfikować rekordy jednocześnie.

jaen 2015-11-25T16:21:15.000158Z

Albo hm, zawsze są agenty

jaen 2015-11-25T16:21:22.000159Z

Każdy rekord mógłby być agentem.

2015-11-25T16:21:35.000160Z

o, w sumie nigdy ich nei uzywalem

2015-11-25T17:58:08.000161Z

tylko kurde jak bede trzymal jakas kolekcje tych rekordow to i tak bede derefowal atom z nimi

2015-11-25T17:58:15.000162Z

😄

jaen 2015-11-25T18:04:42.000163Z

No jeżeli to są agenty to nie musisz

jaen 2015-11-25T18:05:03.000164Z

No chyba że dodawnai nowych rekordów, to w sumie

jaen 2015-11-25T18:05:15.000165Z

Ale to wtedy tą listę też zrób agentem może? xD