Если объем вашего хранилища ограничен и вы получаете неизвестное количество поступающих данных, вам нужно решить, что делать, когда есть больше данных, которые вы можете сохранить. Это придет так или иначе. Если вы притворяетесь, что предоставляете неограниченное хранилище, тогда будет DoS, когда вы не сможете.
Любая стратегия, вероятно, подпадает под следующие два (3, если возможно) пути:
Когда выше отметки уровня воды,
- сбросить самые старые / наименее требуемые данные, чтобы освободить место
- отбрасывать входящие данные, чтобы избежать переполнения
- приостанавливать поступающие данные до тех пор, пока не опустится ниже отметки уровня воды
2 и 3 вам все равно понадобится найти новое хранилище, поэтому что-то нужно будет удалить или вам понадобится больше памяти. 1 довольно самодостаточен, но может быть возможно удалить из него все старые полезные данные, отправив достаточно нового мусора. Создание системы ранжирования (последний доступ, наиболее доступный, загруженный привилегированным пользователем, объединение этих ...) и удаление наименее важных может быть наиболее сбалансированной вещью.