Упорядоченное или связанное хранилище несовместимо с целями сетки данных - высоко параллельное и распределенное хранилище.
Упорядоченное извлечение возможно. Hazelcast's Paging Predicate с компаратором сделает это. Или объем не слишком велик, вы можете получить набор записей и отсортировать их самостоятельно.
Уловка в том, что вам нужно предоставить поле для заказа.
Если ваши данные уже какой-то порядковый номер или временная метка, которые всегда уникальны, это просто.
Если нет, возможно, что-то вроде Atomi c Long подойдет. getAndIncrement()
даст вам уникальный номер, который будет использоваться для каждой вставки.
Обратите внимание, это имеет состояние гонки, если два или более потока вставляются одновременно. Чтобы решить эту проблему, вам понадобится какой-то синглтон @Service
, работающий где-то, чтобы выполнить шаг " get next seqno; inset `.
И если вы перезапустите сетку, seqno в счетчик atomi c необходимо переставить в нужное место.