Привет, участник HighLoad++. Создатели Moira 2.0 приготовили для тебя задание.
Moira — система для отправки уведомлений о нештатных ситуациях. Приложения отправляют в Graphite десятки тысяч метрик в секунду, а Moira получает их полную копию. Уведомления в Moira настроены только на несколько процентов метрик. Поэтому важно уметь быстро фильтровать метрики по известным шаблонам.
Задание. Есть тривиальная, но не очень быстрая реализация фильтра в файле matcher.go
. Она проходит модульные тесты на Travis CI. Напишите свою, более быструю реализацию фильтра и пришлите пулл-реквест.
Условия:
fastmatcher.go
.Пример. Алексей Кирпичников прислал пулл-реквест с другой реализацией фильтра. Она работает на 11 % быстрее, как утверждает Travis CI.
Победители и награждение: