[Cache] и многопоточность (для server-side)
Всем привет. Не нашёл нигде обсуждений работы BLT в конкурентной среде. Вопрос: как вы разруливаете следующую ситуацию.
Допустим, есть методы:
[Cache] getSomething()
[ClearCache] updateSomething(x)
Transaction isolation = read committed.
Поток 1: getSomething() // возвращает A из базы, помещает в кеш
Поток 1: startTransaction
Поток 2: startTransaction
Поток 2: updateSomething(B) // сбрасывает кеш
Поток 1: getSomething() // возвращает A из базы, помещает в кеш
Поток 2: commit // фиксирует в базе something=B
Поток 1: commit
Поток 1: getSomething() // возвращает A из кеша, когда в базе уже закоммичен B
Пока на собственное сообщение не было ответов, его можно удалить.