Рубрика:
Базы данных /
Персона
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Олег Бартунов: «Нам нужны люди, которые хотят делать карьеру в Open Source!»
О том, как ему удается вести множество проектов, что ждет Postgres-сообщество в ближайшем будущем, зачем он ходит в горы, и еще о многом другом Олег Бартунов рассказал нашему журналу
|
Досье |
Олег Бартунов – профессиональный астроном, создатель проекта Астронет, работает научным сотрудником в ГАИШ МГУ, а также регулярно покоряет высокогорные перевалы Гималаев. Но больше всего Олег известен как подвижник идей свободной СУБД PostgreSQL.
С 1996 года занимается созданием новых функциональных возможностей PostgreSQL, ведущий разработчик СУБД PostgreSQL, член PostgreSQL Foundation.
Основные интересы в PostgreSQL – расширяемость (GiST, GIN, SP-GiST), новые типы данных, индексы. Cоавтор полнотекстового поиска, хранилища для слабоструктурированных данных hstore, типа данных jsonb и многих других расширений. |
– Олег, скажите, вы закончили МГУ, стали астрономом, работали в ведущем институте страны… Почему вы увлеклись разработкой?
– Астрономия – это фактически огромное количество данных, которые надо где-то хранить. База данных для этого подходит больше всего. Раньше мы занимались тем, что писали свои «программки», свои небольшие базы данных. Потом, когда появилась возможность, я узнал, что существует бесплатная доступная база данных – Рostgres95 она тогда называлась, я тогда был в Америке, в Санта-Крузе. Я ее скачал. Попытался скомпилировать – не получилось, начал разбираться, смотреть, заниматься.
Собственно, свои астрономические задачи я решал уже на ней.
– А как случилось, что вы из пользователя, пусть даже продвинутого, стали разработчиком?
– В Москве я решил немного подработать – мы делали архив в «Учительской газете». Поисковый архив по материалам. Я, естественно, решил… Я даже не знаю, почему для меня это было естественно – в те годы – это был 96-й – это было совсем не естественно. Но у меня возникла идея сделать полнотекстовый поиск с использованием Postgres. Я взял материалы «Учительской газеты» и с помощью операторов LIKE, регулярных выражений и т.д. начал пытаться строить свой поисковый движок. Обнаружилось, что кириллические символы превращались в какую-то белиберду.
– Проблемы с локалью?
– Да, Postgres не поддерживала локаль совсем. Надо сказать, что перед этим я занимался вопросом локализации языка Perl. Я этим активно занимался, и у меня уже были опыт и понимание, что надо сделать. Сделал патч, который работал. А потом, через какое-то время, решил отдать его в Postgres, где он был принят и применен. Это был очень важный патч – он дал возможность работать с СУБД не только англоязычным разработчикам.
– То есть выбор Postgres был во многом случаен?
– Нет-нет. Я прочитал статью Стоунбрейкера о Postgres, которая меня вдохновила своей идеей расширяемости. Та самая расширяемость, о которой сейчас говорят, она уже тогда была заложена в Postgres. Ее можно было использовать в научных работах, она мне понравилась идеологически.
– С тех пор прошло уже почти 20 лет, не было мысли заняться чем-нибудь другим?
– Нет, не было. Потому что я, во-первых, вжился в комьюнити, во-вторых, это комьюнити дало мне возможность реализовывать мои идеи. Наконец, это стало просто кормить меня. И Postgres остался фактически единственным таким хардкордным Open Sourсe-проектом, за которым не стоит ни одна компания. Ею никто не владеет. То есть это по-настоящему Open Sourсe-проект.
– Наступила эпоха HighLoad, стали широко применяться NoSQL-решения – key/value-хранилища, графовые, документоориентированные базы данных, та же MongoDB. Как на фоне этих новых тенденций себя чувствует Postgres?
– Postgres долгое время отворачивался от подобных нововведений. Говорили: мы объектно-реляционная база данных. Но жизнь есть жизнь, и мы все же потихоньку этим занимались. Как вы помните, hstore появился еще в 2003 году. Тогда еще JSONа не было, и термин NoSQL тогда не понимали. А теперь выясняется, что уже в 2003 году у Postgres была поддержка schemaless баз данных! Те, кто знали, пользовались. А сейчас релиз 9.4 – это Postgres, повернутый в сторону тех кастомеров, которым нужен NoSQL-функционал, но при этом они желают оставаться на Postgres, в рамках реляционной теории.
– Расскажите поподробнее, что из NoSQL-функционала реализовано в новом релизе?
– В нем появился новый тип данных – jsonb. Это json с бинарным хранением данных. То есть довольно давно, несколько лет назад, в Postgres уже был json. Но он хранился как строка. Все действия с ним проходили как со строкой. Всякий раз надо было парсить, чтобы вытащить какое-нибудь значение или искать. Практически полноценно его использовать было невозможно. Хранить json было можно, а использовать – нельзя. Jsonb является продолжением нашей работы по hstore. Грубо говоря, это вложенный hstore. Но уже с поддержкой массивов и с синтаксисом json. С возможностью поиска, индексов и прочего. Мы сделали такие индексы, что даже MongoDB нам проигрывает.
Но мы на этом не остановились, потому что у нас есть jsquery-расширение – оно просто не вошло в этот релиз, оно развивается отдельно. Это язык для запросов к jsonb. То есть когда мы можем делать не только простые запросы, вроде «найти по ключу = значение», а найти значения, где значения ключа больше или меньше чего-то, например. Больше операторов добавлено.
– Теперь с такими возможностями и с таким типом данных Postgres перекрывает все возможности MongoDB?
– Нет, конечно. MongoDB – распределенная система. Postgres, правда, тоже может поддерживать распределенность – это шардинг. С точки зрения schemaless данных – да, возможности перекрываются.
– А нет планов добавить в аналог map/reduse?
– Это требует слишком больших изменений. У нас нет таких задач. Нет таких задач потому, что уже были эксперименты. Есть форки Postgres, которые поддерживают map/reduse. Они сильно отстают по производительности. Да и что касается map/reduse, вы знаете, что Postgres стоит на Hadoob? Называется HadoobDB. И там есть map/reduse и все прочие прелести. Еще существует коммерческий вариант – Hadapt.
Postgres Professional |
На протяжении трех лет Олег Бартунов пребывал в поисках инвестора для создания в России центра компетенций PostgreSQL. И вот недавно произошло событие, которое может заметно повлиять как на судьбу PostgreSQL, так и на IT-инфраструктуру в России. Основатель компании «Энвижн» Антон Сушкевич инвестировал в создание компании-вендора PostgreSQL. Компания Postgres Professional будет оказывать услуги по разработке, внедрению и продвижению свободной системы управления базами данных (СУБД) PostgreSQL в России. Возглавит компанию (среди соучредителей которой российские разработчики Федор Сигаев, Александр Коротков, Иван Панченко) Олег Бартунов. |
– Среди прочих новинок – что такое VODKA?
– VODKA – это новая инфраструктура, которая позволяет создавать акцес-методы как бы с помощью «лего». То есть комбинировать несколько различных существующих акцес-методов в один. Например, в Postgres есть такая проблема – вы не можете создать композитный индекс, в котором используются разные акцес-методы. Например, индекс по двум колонкам, при этом в одной колонке используется B-tree, а в другой, например, GIN сделать нельзя. Из-за этого нам приходится делать расширения типа btree_gin. VODKA нам позволит этого избежать. С помощью нее вы можете делать такие интересные индексы, как полнотекстовый поиск вместе с пространственным поиском одновременно. Все это можно конструировать с помощью некого API. То есть это дальнейшее улучшение расширяемости Postgres. Не просто делать акцес-методы, а манипулировать ими.
– Какое участие во всех этих новшествах принимают российские разработчики Postgres?
– Да мы все это и разрабатываем. Это сложная большая работа, требующая перетряхивания внутренностей Postgres, и быстро новшества не появляются. Но мы работаем.
– Вы рассказали, как сами влились в разработку. А как образовалось пусть небольшое, но сейчас очень значимое российское сообщество разработчиков?
– Мы начали делать Rambler и взяли на работу Федю Сигаева. И его полностью поставили на Postgres. Rambler мы изначально делали на Postgres, и нам хотелось сделать полнотекстовый поиск. И столкнулись с расширяемостью Postgres – он этим занимался. Все началось с GiST. Первый наш модуль был intarray – сейчас он один из самых популярных для работы с целочисленными массивами. С тех пор Федя вырос в серьезного разработчика. Потом появился Саша Коротков (из МИФИ). Саша даже диссертацию по Postgres защитил. Срок получения хорошего контрибьютора Postgres – три года. Саша – тому пример.
– Значит, должен появиться кто-то еще?
– Да, мы набираем студентов-стажеров, даем им задачи, платим деньги. Чтобы вырастить из них контрибьюторов.
– Импортозамещение. Сейчас это политическая тема… Олег, скажите, а зачем это вообще нужно?
– Я тоже об этом думал, и пришел к выводу, что оно нам не очень нужно. Само по себе. Тут дело в другом: самое святое для человека – это выбор. Клиенту мы должны давать право выбора. Например, Oracle или Postgres. Другое дело, что Oracle и Postgres сейчас находятся на разных стартовых позициях. Потому что у Oracle есть вендор, есть широкая сеть поддержки, обучения и т.д. А у Postgres есть только мы. Вот как раз мы и образовали компанию, чтобы у Postgres появился свой вендор, причем в России. Который будет делать все, что требуется от вендора. Тогда мы сможем уже предложить клиенту возможность выбрать. Вот есть Oracle, а есть Postgres, здесь такой функционал, здесь такой. Здесь надо платить столько, здесь столько… А импортозамещение, оно просто дает нам дополнительный шанс. Как бы стартовый пинок.
– Вы ранее предлагали Postgres как национальную СУБД.
– Да, это было три года назад, если бы мы тогда начали эту работу, мы бы уже сейчас имели целое поколение разработчиков.
– Почему такая СУБД должна быть, вы уже объяснили и довольно убедительно. Другой вопрос: а национальная СУБД – она нужна России? Ну, вот, скажем, в Швеции или Франции нет своей национальной СУБД, в Германии нет...
– Не нужна, конечно. Национальная СУБД – это просто Postgres. Возможно, могут быть какие-то форки – например, для министерства обороны, какие-нибудь специальные сборки возможны. Но в целом наша компания собирается разрабатывать код и коммитить его обратно. Возвращать.
Это очень полезно, потому что ответственность за разработку придется уже на большое комьюнити. У Postgres большое комьюнити, это означает, что код больше тестируется, больше идей появляется. Мы все время в струе.
– То есть закрытой от сообщества эта национальная СУБД не будет?
– Нет. Мы такого не хотим.
– Вы давно говорили о своей идее – «Центре компетенции баз данных», вы не один год с нею ходили, добивались ее осуществления, и вот теперь, насколько я понимаю, вас можно поздравить!
– Да. Мы получили разрешение.
– Идеи Postgres Professional (недавно созданная компания, где Олег Бартунов – генеральный директор – прим. ред.) отличаются от идей «Центра компетенции»?
– По внешним признакам вроде бы отличаются. Мы строим экспертизу внутри компании. Нельзя просто так взять деньги у государства и построить центр – такого не получается. Нужен бизнес. Поэтому мы пошли в сторону создания такового. То есть у нас есть разработчики, есть внедренцы, есть саппорт. На сторону при этом работают половина людей. Скажем, разработка работает на P, но она же дает поддержку третьего уровня.
– То есть клиент может непосредственно обратиться к core-разработчику?
– Да. Мы действуем как вендор.
– Что можно ждать сообществу от полученных инвестиций?
– Ну, наши средства – это все-таки не инвестиции. Инвестиции – когда ты берешь внешнее финансирование, а у нас Антон Сушкевич (инвестор – прим. ред.) – полноправный член команды. У нас у всех одна идея, миссия. Поэтому я бы не говорил об инвестициях. А сообществу ждать чего? В первую очередь появления вендора. Это значит, что крупные компании будут понимать, что они не останутся в одиночестве, без поддержки, когда они перейдут на Postgres. То есть будет компания, которая станет выполнять обязательства по сопровождению и поддержке, проводить тренинги и т.д.
– Вы ожидаете, что в связи с этими событиями ваша жизнь изменится? Будет в ней место астрономии или чему-то другому, кроме Postgres?
Postgres – это очень гибкий, расширяемый инструмент, с помощью него сооружаются другие инструменты для работы с данными
|
– Ну как изменится? Больше задач, меньше возможности уйти в горы... Сейчас надо строить компанию. Очень хотелось в горы на майские праздники, но нет, не получится.
– Гималаи, Postgres, звезды, семья... Как вам удается находить на все время и энергию?
– Ну я же с Postgres не один. Вокруг меня есть друзья, коллеги, которые помогают мне. А в остальном – нужно меньше спать, наверное, держать себя в форме. Вообще у меня вся жизнь прошла так насыщенно — я всю жизнь где-то работал, где-то подрабатывал. Да и вообще мне просто везет по жизни.
– А почему горы? Ведь вы же выросли в степях?
– По степям я тоже скучаю на самом деле. Но вот горы... Гималаи, Пакистан, там, где настоящие масштабы. Размер имеет значение, короче говоря. Там ты чувствуешь себя изолированным от всех проблем – технологических, житейских и прочих. Там гораздо проще жизнь. Там ты лучше понимаешь, что на самом деле важно для тебя. В обычной жизни, в беготне, часто человек забывает, что для него действительно важно. Ему кажется, что, например, проект важен, который он делает. А в горах начинаешь понимать, что важнее всего – это твои мысли. Это очень простая истина, но понимать ты ее начинаешь только там. Скажем (не дай бог), если у тебя кто-то умер близкий, только потом начинаешь понимать, что он был действительно близкий. А там тебе дается возможность это понять еще при жизни. Потом горы – они позволяют тебе лучше узнать и самого себя... То есть, когда тебя горы пустили, ты начинаешь осознавать, что ты чего-то стоишь. Если ты все честно прошел, особенно если ты был с друзьями, эта дружба становится сильнее...
– Прямо по Высоцкому!
– Да-да, по Высоцкому. Это действительно так. Конечно, челенжей возникает масса. Бывает действительно тяжело. Есть такой модный термин – «преодолеть себя». На самом деле все начинаешь видеть под другим углом. Есть физиологическая особенность организма – на больших высотах наступает кислородное голодание, у вас многое перестраивается, вы начинаете думать совсем по-другому. И, возвращаясь, я начинаю тосковать по горам уже в Домодедово.
Я люблю Непал – мне нравятся его люди, мне нравится его культура, чувство безопасности, отсутствие агрессии...
– Как вы совмещаете разработку и астрономию?
– Современная астрономия вся пронизана ИТ. То есть раньше люди занимались изучением обычно одного объекта. Полжизни. А сейчас люди работают с миллионами и миллиардами объектов. Инструментов особых нет, и, если ты хочешь получить результат, ты должен писать их сам. Спутники, все эти Gaia... Знаете, что на Gaia тоже Postgres используется? Их люди пишут сами.
Наши студенты использовали Postgres – один из них написал специальный тип индекса к Postgres, который де-факто теперь используется как стандартный в решении астрономических задач. Сейчас он работает в Кембридже, в проекте Gaia, и тоже использует Postgres.
Postgres – это инструмент. Он очень гибкий, расширяемый, с помощью него ты сооружаешь себе другие инструменты для работы с данными. Астрономия – это данные. Данные наблюдений. И у нас, в ГАИШ, это понимают, и на наши занятия с базами данных смотрят очень даже хорошо. У нас даже есть тема, я веду тему «информационные технологи в астрономии».
Мы набираем людей. Нам нужны люди. Нам нужны программисты, инженеры и нам нужны не просто люди, а люди, которые хотят интересной работы, программисты, которые любят челенжи, любят работать с алгоритмами, люди, которые хотят расти, делать карьеру в Open Source.
– А если человек хочет расти, но пока не имеет практического опыта?
– Да, мы берем таких стажерами. Стажеру даем соответствующие задачи.
Беседовал Кирилл Сухов
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|