On 29/03/2016 10:12, Galder ZamarreƱo wrote: > Good start but rather than coming out with a general design for a counter, > I'd try to start coming out with functionality needed for the most commonly > use cases for counters, e.g. > > e.g. if you're counting number of visits to your website, you only need an > incrementing counter (and maybe a reset to be called at the end of the > day/week/month/year?) but you'll never decrement, precision not hugely > important? Could you assume you always increment by 1? It might be more > efficient to increment by N...
> e.g. if you're counting number of users logged in at one point to your > website, then you need a counter that both increments and decrements, > precision not hugely important? You probably don't want reset operation? > Moreover, could you assume you always increment/decrement by 1? You want an "Adder" for both of these cases [1]. > e.g. if using a counter to generate a unique identifier that always > increases, you need only increment but precision must be guaranteed, so after > increasing and retrieving an old value can't be retrieved. You probably don't > want reset operation? You can probably assume that increment is only by 1. This is a sequence, and, even in this case, there are two possible variants: - one where you just need uniqueness but monotonic increment is not essential (nodes can retrieve preallocated ranges of ids on demand). - one which is fully monotonic Tristan [1] https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/LongAdder.html -- Tristan Tarrant Infinispan Lead JBoss, a division of Red Hat _______________________________________________ infinispan-dev mailing list infinispan-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/infinispan-dev