Да, мы пропустили анонс 0.5.2, но описали, что там делали в предыдущем посте, обязательно посмотрите: Я знаю, что вы сделали с моим open-source проектом.

Итак, что нового в 0.5.3?

ОЗУ Голод

После большой перезаписи и удаления Flink некоторые вычисления, которые выполняет Metarank, были перенесены в его код. И хотя новый подход отлично работает с меньшим набором данных, он приводит к OOM для больших.

Чтобы решить эту проблему, мы ввели определенные оптимизации, которые можно настроить:

  • core.clickthrough.maxSessionLength
  • core.clickthrough.maxParallelSessions

Раньше Metarank сохранял все события ранжирования в памяти до получения событий взаимодействия. Теперь это поведение настроено с помощью указанных выше свойств, поэтому, если пользователь не взаимодействовал с ранжированием, оно будет отброшено.

Подробнее об этом подходе и цифрах, которые мы увидим, мы поговорим в следующих статьях.

Сортировка исторических данных

Мы представили новую команду sort в нашем интерфейсе командной строки, чтобы упростить работу с большими наборами исторических данных, которые не отсортированы.

Metarank ожидает, что исторические данные будут отсортированы по отметке времени. Это гарантирует, что все события обрабатываются в правильном порядке, и по умолчанию Metarank пытается отсортировать входные файлы в памяти.

Это проблематично для больших файлов, которые не помещаются в памяти, и здесь новый режим sort спасет положение.

Просто запустите этот режим со своими данными, и в результате вы получите отсортированный набор данных, который можно использовать напрямую с Metarank:

java -jar metarank.jar sort --config config.yml --data big-unsorted-event-file.jsonl --out sorted.jsonl

Что дальше?

У нас в запасе немало замечательных вещей, так что следите за обновлениями!