Фазово-ориентированное распределение в Rust с аренами - PullRequest
1 голос
/ 07 ноября 2019

Я пытаюсь создать приложение, которое использует данные из Кафки. Данные объединяются в 5-минутные сегменты, и мне нужно «запомнить» последние 10 блоков, а затем отбросить сегменты, когда они становятся слишком старыми.

Для целей агрегации мне нужно выделить несколько объектов, и я бынравится использовать подход арены, чтобы эти распределения были быстрыми. Я хочу привязать каждое ведро к определенной арене, поэтому, когда оно становится слишком старым, я могу бросить все ведро с его ареной.

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

Извините, вопрос немного расплывчат, но хотелось бы получить несколько советов о том, как решить эту ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...