ja mam w sumie troche suchar teraz bo mam sobie wektor recordow w atomie i miliard threadow, ktore sie interesuja mutowaniem tych recordow
i chcialbym zeby robily to atomicznie, t.j. sprawdz jeden rekord i ewentualnie zmień go
ale nie chce synchronizować na całym atomie, tylko na poszczególnych rekordach tak naprawdę
i nie mam pomysłu jak to elegancko rozwiązać
Rozumiem że baza danych nie jest tutaj rozwiązaniem z jakiegoś powodu?
to jest rozwiązanie na bazę poniekąd
mam bazę, która nie ma czegoś takiego jak explicit locking
więc mam do niej właśnie taki interface
co niespecjalnie mi się podoba ale tak już musi być
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ę?
no w gruncie rzeczy tak
😄
ale te operacje mogą być serializowane per record zamiast per baza
więc właśnie myślę co tu zrobić bo i tak trochę to jest takie he he na pałę
No niby możesz każdy rekord wsadzić w atom
Ale wtedy będzie duuużo watchy
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
tak tez myslalem, ale chcialbym odbierac rezultaty w tych roznych threadach
bez pisania jakiejs hardkorowej instalacji
no bo moglbym w sumie wyslac “query” i channel zwrotny a pozniej sobie !!< z niego
No ale właśnie po to te workery, żebyś mógł modyfikować rekordy jednocześnie.
Albo hm, zawsze są agenty
Każdy rekord mógłby być agentem.
o, w sumie nigdy ich nei uzywalem
tylko kurde jak bede trzymal jakas kolekcje tych rekordow to i tak bede derefowal atom z nimi
😄
No jeżeli to są agenty to nie musisz
No chyba że dodawnai nowych rekordów, to w sumie
Ale to wtedy tą listę też zrób agentem może? xD