Шаблоны, чтобы не блокировать большие коллекции при выполнении работ по обслуживанию (например, удаление записей)? - PullRequest
1 голос
/ 20 января 2020

Один вопрос, с которым я часто сталкиваюсь, заключается в том, как эффективно заставить писателей использовать коллекцию (в основном добавить к ней) и в то же время иметь логику обслуживания c, чтобы не блокировать коллекцию или замедлять работу писателей. Есть ли какой-либо шаблон, который эффективно достигает этого или использует параллельные коллекции единственный путь к go?

1 Ответ

0 голосов
/ 24 января 2020

Идея заключалась бы в использовании сегментированного списка, списка, подкрепленного двумя внутренними сегментами (List). Чтобы прочитать значение из коллекции, вы должны взглянуть на оба сегмента, чтобы не было чтения. Чтобы удалить старые записи из коллекции, вы должны просто заменить старый сегмент новым пустым сегментом (старый сегмент будет переработан).

Эта идея может быть жизнеспособной, если вы не читаете из коллекции слишком часто .

...