Там большой набор объектов. Набор динамичен: объекты можно добавлять или удалять в любое время. Назовем общее количество объектов N.
У каждого объекта есть два свойства: масса (M) и время (T) последнего обновления.
Каждые X минут небольшая группа из них должна быть выбрана для обработки, которая обновляет их T до текущего времени. Общее количество M всех объектов в пакете ограничено: не более L.
Здесь я хочу решить три задачи:
- найти алгоритм выбора следующего пакетного объекта;
- ввести классы объектов: простой, приоритетный (предоставляется вписывающийся хотя бы в каждую n-ю партию) и частый (вписывается в каждую партию);
- прогнозировать исчерпание емкости системы (время добавления следующего сервера = увеличение L).
Какая модель лучше всего описывает такую систему?
Все дело в сервисе, который обрабатывает «объекты» во временных интервалах. Каждый объект необходимо «измерять» каждые N часов. N может варьироваться в диапазоне. X исправлено.
Объекты добавляются/удаляются людьми. N растет экспоненциально, довольно медленно, с некоторыми всплесками, вызванными публикациями. Конечно, прогноз не может быть точным, это всего лишь некоторая оценка. M варьируется от 0 до 1E7 с экспоненциальным распределением, большинство из них ближе к 0.
Я вижу, что здесь может быть несколько стратегий:
A. полный газ — упаковывайте каждую партию максимально близко к 100%. По мере роста N средний интервал попадания в конкретный объект будет расти.
B. равный темперамент :) - старайтесь держать средний интервал вокруг некоторого значения. Уровень заполнения партии будет расти с некоторого низкого уровня. Когда он приближается к 100 %, пора приобретать больше серверов.
К. - ?