Я пытаюсь создать приложение, которое использует данные из Кафки. Данные объединяются в 5-минутные сегменты, и мне нужно «запомнить» последние 10 блоков, а затем отбросить сегменты, когда они становятся слишком старыми.
Для целей агрегации мне нужно выделить несколько объектов, и я бынравится использовать подход арены, чтобы эти распределения были быстрыми. Я хочу привязать каждое ведро к определенной арене, поэтому, когда оно становится слишком старым, я могу бросить все ведро с его ареной.
Однако я не могу найти способ обосновать время жизни в этой ситуации, если я поддерживаю Vec<Arena>
, тогда время жизни объектов в Vec
не совпадает. Для моего случая использования я не могу использовать Id
арену, потому что я хочу использовать объекты в качестве ключей для хэш-карты. Я не хочу генерировать Rc
для каждого предмета на арене, потому что это увеличит объем памяти каждого предмета (это очень много очень маленьких предметов), поэтому я хочу сохранить в своем хранилище фактические ссылки на выделенные объектына арене.
Извините, вопрос немного расплывчат, но хотелось бы получить несколько советов о том, как решить эту ситуацию.