Чем занимаются графоманы в свободное от графомании время
25 февраля 2025 г., 10:10
Мысль рассказать о своей работе возникла у меня уже довольно давно.
Собственно, узнать что-то о конкретном человеке сейчас весьма несложно, и единственное, что охраняет тайну нашей приватности — это всеобщая лень. Конкретно со мной всё довольно просто — в седьмом, кажется, классе, в конце 1980-х, впервые столкнулся с компьютерами и залип на всю оставшуюсь. Потом закончил МАИ (факультет “Прикладная математика и физика”, кафедра “Численные методы и программирование”), потом какое-то время работал по профилю на космос (большое спасибо всем, принявшим участие в моей судьбе!), потом женился и очень остро встал вопрос зарплаты, и я пошёл в “админы техподдержки”, благо, ладить с людьми я умею и объяснять люблю.
Текущий проект, в котором я работаю — “Рапид”/“Rapeed” (искажённое английское rapid, “быстрый”). Проект является развитием идей системы “Полиматика”/”Polymatica”, в которой я тоже работал примерно с самого начала.
Как я неоднократно упоминал, это бизнес-аналитика. Если кто не знает, классические системы big data используют ОЧЕНЬ развитые алгоритмы приблизительных вычислений, позволяющие за десяток секунд посчитать какие-нибудь показатели по паре миллиардов записей с погрешностью в условные 0.1%, но точный ответ ждать придётся сильно дольше, на порядок, иногда — на полтора-два и даже три.
“Полиматика” с самого начала целилась исключительно в точные расчёты, никаких приближений. Без ложной скромности могу заявить, что примерно четверть скорости “Полиматики” — именно моя заслуга, как бэкенд-разработчика. Для примера: самые большие объёмы реальных данных — 855 миллионов строк, и большинство операций с ними выполнялись за те самые десять-двадцать секунд. Более скромные объёмы крутились вообще со свистом, у меня на ноуте тестовая база была на 50 миллионов и в виртуалке действия выполнялись за две-три секунды. Это фантастически круто!
“Рапид” идеи “Полиматики” размазал по нескольким серверам, ибо было очевидно, что монолитная система даже миллиард записей не сможет “крутить” с желаемой скоростью. А параллельная обработка такое позволяет… с оговорками: синхронизация и агрегация результатов обработки отдельных кусков данных — задача архисложная. Плюс есть ещё и вопрос самих вычислений, который в “Полиматике” был решён весьма хорошо, но строго для монолитной системы, и для распределённой эти решения пришлось допиливать…
Скажу без ложной скромности, что эти проблемы я решил, и теперь мой вклад в скорость именно бэкенда достигает половины, скорее даже больше. Уже сейчас идут пилоты с разными организациями, в некоторых сценариях “Рапид” обсчитывает несколько миллиардов записей за единицы секунд. Есть оговорки, разумеется — система всё ещё в активнейшем развитии и местами сыровата, тем не менее, сопоставимой скорости на рынке нет ни у кого. В мире.
Ну а когда тараканы в очередной раз достраивают взлётную полосу для кукушки — я достаю из заначки черновики и переключаюсь с написания кода на написание чего-нибудь другого…