ErlyORM / boss_db

BossDB: a sharded, caching, pooling, evented ORM for Erlang
Other
277 stars 138 forks source link

Cache invalidation problem #261

Open rlander opened 7 years ago

rlander commented 7 years ago

Suppose you have a Greeting model with [id, text] and you want to list all available greetings.

5> boss_db:find(greeting, []). [{greeting,"greeting-8",<<"Hello">>}, {greeting,"greeting-9",<<"Foo">>}]

You have caching enabled and update a Greeting field like so:

6> Greeting = boss_db:find("greeting-9"). (Greeting:set(text, "Bar")):save(). {ok,{greeting,"greeting-9","Bar"}} 7> boss_db:find(greeting, []). [{greeting,"greeting-8",<<"Hello">>}, {greeting,"greeting-9",<<"Foo">>}]

The cache for the first query should be invalidated but it won't. #260 fixes this.