Для распределенного приложения нужен сервис, который бы возвращал монотонно возрастающие целочисленные значения. Желательно без значительных и регулярных пробелов между значениями.
Изначально был разработан локальный сервис на основе разделяемой памяти и mutex и sparsed int set.
Добавилось несколько требований — распределенные клиенты и high availability.
Рассматриваются варианты использования Redis, ZooKeeper и базы данных с пред-выделением блоков.
Что можно еще рассмотреть, чтобы велосипед не изобретать?
Основное требование — производительность. Ну и надежность, конечно.