@Mercury13
Программист на «си с крестами» и не только

Как сделать кэш динамики запасов?

У нас есть несколько товаров и последовательность событий: сделать что-то сложное с запасом товара (не просто добавить/отдать X, а, например, посчитать, сколько есть товара и в результате запустить производство) и получить результат.

Каждое событие работает ровно с одним товаром.

Парочку событий мы меняем, а затем запускаем всю цепочку, чтобы посмотреть, что вышло.

Как сделать кэш длины O(n), чтобы можно было запустить алгоритм просчёта результата с i-го события, а не с самого начала?
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
@Mercury13 Автор вопроса
Программист на «си с крестами» и не только
Пока вижу такой способ закэшировать динамику запасов. Вместе с каждым событием держим двойной кэш.
1. Товары по очереди (0, 1, 2, 0, 1, 2…)
2. Тот товар, который задействован в событии.

Тогда, прочитав m старых событий, можно восстановить полный запас всего на любой момент.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
В этом случае кеш может хранить документ-товар и историю событий и историю состояний с ним.
Например

{ "tovar" : {
    "id" : "0001",
    "events" : [
         ......
         { "event" : 555, ......}
     ]
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы