У меня есть хеш-таблица, которая в условиях интенсивного трафика. Я хочу добавить механизм тайм-аута в хеш-таблицу, удалить слишком старые записи. Мои опасения
- он должен быть легким
- Операция удаления не имеет критического времени. Я имею в виду (время ожидания составляет 1 час), операция удаления может быть через 1 час или 1 час 15 минут. Нет проблем.
Мое мнение таково,
Я создаю большой массив (в виде кольцевого буфера), в котором хранятся время и ключ хеш-таблицы,
При добавлении в хеш-таблицу, используя индекс массива, найдите следующий слот во время размещения массива,
если слот массива пуст, введите время вставки и ключ HT,
если слот массива не пустой, сравните время вставки для истекшего времени ожидания.
если истекло время ожидания, удалите из Hashtable (если еще не удалено)
тайм-аут не наступил, увеличивайте индекс до тех пор, пока не найдете пустой слот или слот массива с временной шкалой.
При удалении из хеш-таблицы нет работы с большим массивом.
Вскоре, для каждой операции добавления в Hashtable, можно удалить 1 элемент с временным графиком из hashtable или ничего не делать.
Какое ваше самое элегантное и легкое решение?
Спасибо за помощь,