Я создаю приложение, и мне нужна помощь в поиске структуры данных, чтобы делать то, что я хочу.
Фон
, который получает около 100 событий в секунду.Эти события состоят из трех частей: строкового сеанса uuid, длинной метки времени (время Unix) и, возможно, строки json.Сессия uuid используется, чтобы связать события из одного и того же сеанса вместе.Первое событие, которое мы получаем с данным набором TTL для сеанса.
Требования
Я пытаюсь сохранить эти сеансы, которые, по сути, являются отсортированными коллекциямисобытия, которые отсортированы по времени их события.Два критерия, с которыми я сталкиваюсь при одновременной проблеме:
- Мне нужно иметь возможность быстро найти сеанс на основе его UUID.
- Мне нужно иметь возможностьопределить, какие сеансы истекли, основываясь на их метке TTL, которая является атрибутом сеанса.
Я имею в виду карту, на которой я могу отключить UUID, но значения хранятся в отсортированном порядке.Я могу сделать объекты EventSession сопоставимыми по времени, но похоже, что SortedMap только сортирует ключи.Я не уверен, есть ли фундаментальные проблемы с тем, что я прошу, но я открыт для идей.