My requirements call for creation of shared amount buckets/counters in the cluster. Given required scale/precision of my counters use of IgniteAtomicLong won't be adequate. I am thinking about using IgniteAtomicReference<Double> or some such wrapper to hold double primitive to accomplish that. However, I couldn't find a getAndAlter()-like method on IgniteAtomicReference that would allow me to perform counter increase atomically. Preferably, there would be getAndAlter(function) method, which would perform set of operations on the counter atomically.
Any suggestions on how this can be implemented would be greatly appreciated.