Joe Gregorio originally posted about Sharded Counters for Google Appengine.
This is like a downloadable gist:
from sharc import Counter
assert not Counter('A').exists()
Counter('A', initial_value=5, shards=5)
assert Counter('A').exists()
Counter('A').increment()
Counter('A').decrement()
Counter('A') + 2
Counter('A') - 2
assert Counter('A') == 5
Counter('A').shards = 10
Counter('A').delete() # .delete_async()
assert not Counter('A').exists()
- Added decrement
- Increment and decrement variable deltas (default=1)
- Set initial value of the counter (default=0)
- Set initial value of the num of shards (default=20)
- Added delete()