Чем занимаются графоманы в свободное от графомании время

Автор: Дмитрий Кутейников

Мысль рассказать о своей работе возникла у меня уже довольно давно. 

Собственно, узнать что-то о конкретном человеке сейчас весьма несложно, и единственное, что охраняет тайну нашей приватности — это всеобщая лень. Но, разумеется, Кому Надо — те знают всё, даже больше чем мама-жена-любовница-дети (о, дети — это отдельная тема! сколько всего знают дети — это ни в сказке сказать, ни пером описать! правда, сначала они маленькие и им неважно, а потом они вырастают и ЧАСТЬ забывают). 

Собственно, поэтому я особо и не скрывал основные вехи: закончил МАИ (факультет “Прикладная математика и физика”, кафедра “Численные методы и программирование” — подозреваю, что за прошедшие четверть века что-то могли переименовать), в процессе учёбы вёл семинары по физике в ФМШ МАИ, немного знаю математику, но физику знаю и люблю гораздо больше (после “Нормана” ко мне в личку неоднократно обращались люди с порой совершенно неожиданными вопросами, было очень лестно, с удовольствием помогал им по мере сил), какое-то время работал сисадмином (больше техподдержка, на самом деле, но в те времена в этих тонкостях все разбирались ещё плохо), сейчас уже много лет (с 2010-го) вновь работаю программистом, по основному профилю. 

С компьютерами вообще и с программированием в частности столкнулся в конце далёких 1980-х, в седьмом, кажется, классе. Подробности сейчас неважны, но меня зацепило, и весьма сильно. Паскаль (Борланд Паскаль), немного Си (тоже Борланд, разумеется), ассемблер под ДОС. По профилю успел немного поработать на космос (большое спасибо всем, принявшим участие в моей судьбе!), потом женился и очень остро встал вопрос зарплаты, пришлось идти в те самые “админы техподдержки”, благо, ладить с людьми я умею и объяснять люблю. 


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


Текущий проект, в котором я работаю — “Рапид”/“Rapeed” (искажённое английское rapid, “быстрый”, ибо правильное слово уже занято, патенты и торговые марки — ну вы поняли). Проект является развитием, продолжением и эволюцией идей системы “Полиматика”/”Polymatica”, в которой я тоже работал примерно с самого начала. История там была некрасивая, сложная и запутанная, и сейчас уже тоже не особенно важная. 


Как я неоднократно упоминал по разным поводам в самых разных местах — это бизнес-аналитика. В отличие от многих других систем, с самого начала был сделан упор на быстрые точные вычисления. Для тех, кто от темы далёк, поясню: есть ОЧЕНЬ развитые алгоритмы приблизительных вычислений, которые позволяют, например, взять пару миллиардов записей в базе и за условные 10 секунд посчитать какие-нибудь показатели с точностью в условные 0.1% (время и погрешность могут варьироваться от задачи к задаче, разумеется), однако, если мы хотим получить абсолютно точный ответ — ждать придётся дольше… сильно дольше. В лучшем случае — на порядок, иногда — на полтора-два и даже три (но это совсем-совсем плохие случаи). 

И вот в “Полиматике” с самого начала была поставлена амбициозная цель всё считать только точно, никаких приближений. Без ложной скромности могу заявить, что примерно четверть скорости “Полиматики” — именно моя заслуга, как бэкенд-разработчика. Просто для понимания: самые большие объёмы реальных клиентских данных, которые довелось “потрогать” — 855 миллионов строк, и “Полиматика” выполняла большинство аналитических операций с ними за те самые десять-двадцать секунд, некоторые даже быстрее. Более скромные объёмы крутились вообще практически в реальном времени, у меня на ноуте тогда стандартная тестовая база была на 50 миллионов и в виртуальной машине действия выполнялись за две-три секунды. Это фантастически круто! 

“Рапид” взял идеи “Полиматики” про строго точные и максимально быстрые вычисления и размазал их по нескольким серверам, ибо было абсолютно очевидно, что монолитная система, что с ней ни делай, даже миллиард записей не сможет “крутить” с желаемой скоростью примерно никогда. А вот параллельная обработка такое вполне позволяет… правда, разумеется, с оговорками: синхронизация и агрегация результатов обработки отдельных кусков данных — задача архисложная. Но! Помимо синхронизации и агрегации есть ещё и вопрос самих вычислений, который в “Полиматике” был решён исходя из условий монолитной системы, которые (условия) принципиально отличаются от системы распределённой… 

Опять же, без ложной скромности могу сказать, что все проблемы распределённой аналитики я решил вполне успешно, причём теперь моя доля в результате именно бэкенда достигает половины минимум, скорее даже больше. Да, я — немеряно крут! Уже сейчас у нас идут пилотные проекты с разными заинтересованными организациями, и в некоторых сценариях “Рапид” демонстрирует время вычислений порядка единиц секунд на объёмах в несколько миллиардов записей. С некоторыми оговорками, разумеется — система всё ещё в стадии активнейшего развития и местами откровенно сыровата, тем не менее, сопоставимой скорости на рынке нет ни у кого. В мире. 


Ну а когда тараканы в очередной раз достраивают взлётную полосу для кукушки — я достаю из заначки черновики и переключаюсь с написания кода на написание чего-нибудь другого… 

+81
361

0 комментариев, по

7 192 1 400 8
Наверх Вниз