Расширенная история одной стажировки

21 июля 2021

Вот уже несколько лет как Qrator Labs работает с различными университетами с целью найти студентов, заинтересованных во вполне определенных задачах, над которыми мы работаем. Студентам это помогает получить новый опыт или обозначить будущую карьерную тропу в области сетевой и, в общем, компьютерной инженерии. А Qrator Labs — найти потенциальных сотрудников.

На данный момент в составе Qrator Labs работают несколько сотрудников, пришедших со стажировки, в свою очередь начавшейся с участия в небольших проектах, курируемых разработчиками Qrator Labs в рамках университетского “инновационного практикума”. Конечно, далеко не все в итоге выбирают компьютерную инженерию в качестве области специализации: из 23 студентов, прошедших практику под нашим кураторством в 2019 и 2020 годах, лишь 9 были приглашены на стажировку. И только четверо из них стали нашими коллегами, что делает каждую такую историю особенной.

В этот раз мы бы хотели подробнее рассказать об одном из наших коллег — Дмитрии Камальдинове, который все еще находится на пути к обретению степени магистра.  Однако бакалаврская степень была присвоена Дмитрию после успешной защиты диплома, над которым он работал, будучи интерном в Qrator Labs.

По признанию Димы, первоначально поставленная задача не была связана напрямую ни с деятельностью компании как таковой, ни с тем, чем сейчас Дмитрий занимается в Qrator Labs. Задача заключалась в предоставлении доступа к опенсорсной C++ библиотеке из Python. Звучит как хорошее задание для студента? Вы можете сами ознакомиться с имеющимся результатом: https://github.com/QratorLabs/pysdsl.

Спустя некоторое время после этого погружения в стажерскую практику Дмитрию необходимо было подобрать тему бакалаврской диссертации. Факультет Дмитрия позволял ему выбирать любого научного руководителя, которого он хотел, не ограничиваясь только профессорами университета. После ответов на пару вопросов другой наш коллега-математик, Артем Шворин, связался с Дмитрием и предположил, что задача доработки и специализации известного алгоритма Space Saving может быть хорошей темой для диплома и подходящей для решения задач, над которыми в то время работала команда Qrator Core. Другая задача заключалась в доработке идеи алгоритма выделения тяжелых потоков с помощью дерева принятия решений.
Наконец, оценив обе идеи, Дмитрий выбрал вторую. Далее мы кратко опишем суть алгоритма, и каких результатов удалось достичь.

Задача выделения тяжелых потоков (heavy hitters) уже интересна сама по себе: постоянно публикуются новые статьи, где предлагаются новые алгоритмы и различные оптимизации существующих. Эта область знаний оказывается особенно полезной в задачах анализа трафика, в первую очередь из-за растущего распространения IPv6. Напомним, что в IPv6 количество уникальных адресов равно 2^128, что исключает любые тривиальные подходы, такие как отдельная обработка каждого адреса.

Sketch-based алгоритмы — группа алгоритмов, которые уменьшают размер исходного пространства ключей, разделяя его на подмножества, причем с важной особенностью — разбиение может осуществляться динамически. Хотя в большинстве подобных алгоритмов используется фиксированное разбиение, идея, предложенная Артемом Швориным заключалась в том, чтобы сделать его динамическим, то есть изменяющимся во время работы алгоритма. Структура данных, которая управляет этим процессом, представляет собой дерево решений, двоичное дерево с предикатами, где используется префиксная маска в качестве предиката, в его узлах, в соответствии с которым принимается решение о спуске ключа либо в левое, либо в правое поддерево.

Основными моментами разработки алгоритма, о которых Дмитрий рассказал в своей работе, были эффективное обновление структуры при получении нового ключа, поддержание устойчивости дерева на стационарных потоках, эффективный поиск новой префиксной маски при необходимости. И, наконец, стратегия применения алгоритма при фильтрации трафика. В окончательной версии используются хорошо известные идеи (например, повороты, широко используемые для балансировки двоичных деревьев), а также некоторые новые преобразования и алгоритмы, которые привели к хорошей асимптотике обновления. Было также показано, что алгоритм хорошо работает на некоторых нетривиальных паттернах трафика.




 

Нам в Qrator Labs нравится заниматься и наукой, и искать ее практическое применение для создания высококачественного и востребованного продукта.

Следите за историями от новичков Qrator Labs из академической среды, их ещё будет.

Если вы заинтересованы в работе в Qrator Labs или хотите попросить нас о стажировке — пишите на hr@qrator.net.

Ознакомьтесь со всеми функциями
в 7-дневной пробной версии

Наши специалисты готовы оказать вам поддержку

Будьте в курсе наших новостей и продуктов!

Подпишитесь на ежемесячный обзор самых популярных идей Интернета от CURATOR!

E-mail *

Читайте также

Curator
Измерение интенсивности трафика при помощи u-моделей
Введение В одной из наших предыдущих публикаций мы рассказывали о способе измерения интенсивности потока событий при помощи счетчика на основе экспоненциального распада. Оказывается, идея такого счётчика имеет интересное обобщение.
02 июля 2021
Curator
Обзор счётчиков Морриса
Мы рады представить вам заметку, написанную инженером Qrator Labs Дмитрием Камальдиновым. Если вы хотите быть частью нашей команды Core и заниматься подобными задачами - пишите нам на hr@qrator.net . 1 Введение При реализации потоковых алгоритмов часто возникает задача подсчёта каких-то событий: приход пакета, установка соединения; при этом доступная память может стать узким местом: обычный \(n\) -битный счётчик позволяет учесть не более \(2^n - 1\) событий. Одним из способов обработки большего диапазона значений, используя то же количество памяти, является вероятностный подсчёт. В этой статье будет предложен обзор известного алгоритма Морриса, а также некоторых его обобщений. Другой способ уменьшить количество бит, необходимое для хранения значения счётчика, — использование распада. Об этом подходе мы рассказываем здесь , а также собираемся в ближайшее время опубликовать ещё одну заметку по теме. Мы начнём с разбора простейшего алгоритма вероятностного подсчёта, выделим его недостатки (раздел 2). Затем (раздел 3) опишем алгоритм, впервые преложенный Робертом Моррисом в 1978 году, укажем его важнейшие свойства и приемущества. Для большинства нетривиальных формул и утверждений в тексте присутствуют наши доказательства --- интересующийся читатель сможет найти их во вкладышах. В трёх последующих разделах мы изложим полезные расширения классического алгоритма: вы узнаете, что общего у счётчиков Морриса и экспоненциального распада, как можно уменьшить ошибку, пожертвовав максимальным значением, и как эффективно обрабатывать взвешенные события.
27 мая 2021
Curator
Ценность партнерских программ Qrator Labs
В чем заключается ценность участия в одной из партнерских программ Qrator Labs? Мы твердо верим — работая вместе, можно добиться лучшего результата, нежели по отдельности. Это основная причина, по которой мы годами прикладывали усилия к построению осмысленных партнерских отношений с самыми разнообразными компаниями. Но на верхнем уровне все наши партнеры делятся на два типа. Первые хотят предоставить собственному потребителю первоклассную технологию защиты от DDoS-атак, разрабатываемую в Qrator Labs, вместе со всеми экосистемными продуктами и услугами. Вторые заинтересованы в том, чтобы предоставить продукт собственной разработки клиентам Qrator Labs, интегрировавшись в нашу сеть фильтрации.
14 апреля 2021
Ваша подписка успешно активирована
На главную