Verteiltes Zählen

Motivation: viele Algorithmen benötigen eine zentrale Ausgabe von Tickets (mit eindeutigen und aufsteigenden Nummern).


Das wäre ein Flaschenhals (bei vielen Prozessen):

class Counter { int count;
synchronized int next () { return count++;}}


interessante und überraschende Lösung: Zählnetzwerke

James Aspnes, Maurice Herlihy, and Nir Shavit.

Counting networks, JACM 41(5):1020–1048, Sept. 1994

http://www.cs.yale.edu/homes/aspnes/papers/ahs-abstract.html


wesentlicher Baustein: AtomicBoolean.negate()



Johannes Waldmann 2013-02-01