Description
For several use cases (think +1/-1 votes on forum posts) it would be good to have some basic support for atomic counters in Oak. Such counters must:
- correctly reflect increments/decrements by integral parts across threads / cluster nodes,
- exhibit some well defined consistency characteristics amongst each other,
- not require cluster wide coordination.
1. is required so in the forum post example the correct number of votes is recorded for each post.
2. is important so in the forum post example sorting by votes results in the correct order.
3. is important as global cluster synchronisation run contrary to out overall scalability goals.
Additionally such counters should allow the user to trade off the consistency characteristics from 2 for availability. I.e. scarifying some availability results in hight consistency.