Майкл Стоунбрейкер: отец реляционных баз данных
Когда вы собираетесь почитать новости в интернете, покупаете билет на поезд в онлайн-кассе или бронируете номер в отеле, вы неизбежно взаимодействуете с базами данных, хотя порой даже не догадываетесь об этом. Отчасти все эти возможности доступны нам благодаря вкладу одного человека: Майкла Стоунбрейкера, в 2014 году удостоившегося за свои разработки в области баз данных премии Тьюринга, которую часто называют «Нобелевской премией» в мире информационных технологий.
Ingres
Майкл родился 11 октября 1943 года в Массачусетсе, США. Он не сразу решил посвятить себя компьютерным наукам — сначала его заинтересовали инженерные дисциплины. Он поступил в Принстонский университет, затем продолжил обучение в магистратуре Университета Мичигана, и там же в 1971 году защитил диссертацию на соискание степени Ph.D. Однако когда пришло время определяться с карьерой, он выбрал направление, которое на тот момент не было в центре внимания общественности — информационные системы. Получив степень доктора философии, Стоунбрейкер стал преподавать в Калифорнийском университете в Беркли. Именно там началась его работа, которая со временем изменила ландшафт IT-индустрии.
Вместе со своим университетским коллегой Юджином Воном он присоединился у проекту по разработке реляционных баз данных — в те времена новаторской технологии. К началу 70-х IBM уже начала свои эксперименты с реляционной моделью данных, предложенной британским ученым Эдгаром Коддом. В те времена данные чаще всего хранились в виде больших массивов, и поиск нужной информации занимал огромное количество времени и ресурсов. Кодд предложил организовать данные в виде таблиц, которые можно было связывать между собой, основываясь на общих атрибутах. Это казалось простым решением, но за ним стояла мощная идея, которая обещала сделать работу с базами данных гораздо эффективнее и доступнее.
Стоунбрейкер увидел потенциал этой идеи и решил, что реляционные базы могут стать ключом к решению проблемы управления большими объемами информации. Это привело к созданию проекта Ingres (Interactive Graphics and Retrieval System), одного из первых реляционных движков баз данных. На тот момент Ingres не был единственным подобным проектом, но именно в нём применялись все возможности, заложенные в модель Кодда: декларативная ссылочная целостность, триггеры, представления (как хранимые подстановки текстов запросов), индексы на основе B-деревьев. Кроме того, это был продукт с исходным кодом, который предоставлялся всем желающим за небольшую плату, более доступный, чем похожие коммерческие решения. Всего к 1980 году было распространено около 1000 копий, в основном, среди университетов и научных организаций.
Ingres функционировала на компьютерах DEC, как под Unix, так и под управлением VAX/VMS (в то время как аналоги ориентировались в основном на большие мейнфреймы). Работа над проектом была непростой. Создание реляционной базы данных подразумевало решение множества технических задач, начиная с оптимизации хранения записей и заканчивая разработкой удобных инструментов для их поиска и извлечения. В первую очередь команда Ingres решила использовать универсальный язык запросов QUEL для работы с базами данных. Кроме того, Ingres был одним из первых проектов в мире, который не просто работал с данными, но позволял пользователям взаимодействовать с ними через специальный диалоговый интерфейс. В это время большинство баз данных требовали умения обращаться с командной строкой, но Ingres делал шаг к тому, чтобы упростить этот процесс и сделать его интуитивно понятным. Позже, рассказывая о работе над Ingres, Стоунбрейкер вспоминал, что он и не думал, будто создает что-то столь революционное. Для разработчиков это была попытка решить конкретную техническую проблему. Но иногда именно такие моменты и становятся ключевыми в истории технологий — когда кто-то не просто решает задачу, но делает это так, что меняет сами технологии.
Проект не остался внутри академических стен: вскоре Ingres стал основой для нескольких коммерческих решений: Sybase, NonStop SQL и ряда других. Исходный код Sybase позже был использован при создании Microsoft SQL Server. Также в течение долгого времени Ingres напрямую конкурировал с Oracle, до тех пор, пока Американский национальный институт стандартов (ANSI) не отдал предпочтение языку запросов SQL вместо QUEL в рамках стандарта SQL 1986 года (SQL-86), в результате чего Ingres стал менее конкурентоспособным по сравнению с аналогичными СУБД.
Postgres
Вместе с другими профессорами Беркли Ларри Роу и Юджином Вонгом Майкл Стоунбрейкер основал компанию Relational Technology, Inc., позже переименованную в Ingres Corporation. Эта фирма под руководством Стоунбрейкера занялась разработкой следующего поколения СУБД, призванного преодолеть технологические ограничения Ingres и обеспечить поддержку сложных типов данных. Проект назвали Post Ingres, сокращенно — Postgres. В этой СУБД пользователи могли регистрировать новые типы данных, а также задействовать скалярные и агрегатные функции для работы с этими типами. Postgres обладал богатыми возможностями расширения, что позволяло программистам при необходимости добавлять альтернативный оптимизатор, использовать другой язык запросов, настраивать среду выполнения и среду индексирования.
В основе лежала простая, но мощная идея: база данных должна быть не просто хранилищем, но и гибким инструментом для работы с новыми типами данных. В отличие от своих предшественников, СУБД Postgres не была ограничена рамками традиционных реляционных систем, она предлагала пользователю расширяемую модель данных, которая давала гораздо больше свободы. Postgres также распространялась на основе BSD-подобной лицензии, хотя существовала и коммерческая версия под названием Illustra, которая позже была приобретена компанией Informix. Ну, а фирма Стоунбрейкера Ingres Corporation в итоге была продана корпорации Computer Associates, однако в 2005 году Стоунбрейкер восстановил независимость своей фирмы и переименовал ее в Actian.
Другие проекты
Создав Postgres, Майкл Стоунбрейкер решил не останавливаться на достигнутом, и взялся за развитие других инновационных проектов. Первый из них получил название Mariposa. В 1990-х годах, в период активного развития интернета, возникла необходимость в СУБД, которые могли бы эффективно работать в распределенной среде, где данные физически находятся в географически удаленных точках. Mariposa стала решением этой задачи: в предложенной Стоунбрейкером модели данные, распределенные по нескольким организациям, можно было интегрировать и запрашивать из одной реляционной системы. Этот подход позволял реализовывать традиционные идеи оптимизации запросов на конкурирующих сайтах, а также служил основой для хранения, репликации и перемещения данных внутри распределенной системы. Но самое важное — это принцип «аукционов», заложенный в основу Mariposa, который позволял управлять распределением данных на основе их стоимости. Каждый узел в сети мог решать, какие данные хранить или передавать, основываясь на принципе экономической целесообразности. Многие современные системы, такие как облачные базы данных, используют заложенные в Mariposa базовые идеи, описывающие не только доступ к данным, но и их оптимальное размещение в распределенной среде.
Чуть позже вместе с коллегами из Университета Брандейса, Университета Брауна и Массачусетского технологического института Стоунбрейкер занялся созданием технологии управления потоковой передачей данных, используя специально созданный для этого язык запросов. Так родились проекты Aurora и StreamBase.
В отличие от традиционных СУБД, Aurora была ориентирована на обработку данных в режиме реального времени, что позволяло системам моментально реагировать на поступающую информацию. Вместо того чтобы хранить данные и затем обрабатывать их по запросам, Aurora обрабатывала их на лету, что было необходимо для приложений, требующих молниеносной реакции — от финансовых транзакций до мониторинга сетевой активности. Одной из ключевых идей Aurora стало создание архитектуры с низкими задержками, что значительно улучшило эффективность обработки потоковой информации.
На основе успеха Aurora появился коммерческий проект StreamBase — платформа, разработанная для компаний, которым требовались мощные инструменты анализа больших потоков данных в реальном времени. StreamBase нашёл применение в финансовой сфере, где миллисекунды могут иметь решающее значение, а также в телекоммуникациях и других отраслях, где важно быстро обрабатывать огромные потоки непрерывно поступающей информации.
В 2005 году Стоунбрейкер вместе с сотрудниками Массачусетского технологического института и Массачусетского университета в Бостоне разработал принципиально новую архитектуру базы данных C-Store, основанную на столбцовом хранении записей. В отличие от традиционных реляционных баз данных, которые хранят данные построчно, C-Store хранил информацию в столбцах. Это решение оказалось гораздо более эффективным для аналитических запросов, где нужно было обрабатывать большие объемы информации, и значительно сокращало время обработки запросов.
Идеи C-Store легли в основу коммерческого проекта Vertica. Компания Vertica продолжила развитие столбцовой модели хранения данных, и выпустила на рынок СУБД, способную обрабатывать огромные объемы информации с высокой скоростью и точностью. Особенность Vertica заключалась не только в столбцово-ориентированном хранении, но и в высокоэффективной системе сжатия данных, что делало её одной из самых производительных аналитических СУБД своего времени. В 2011 году компания Hewlett-Packard приобрела Vertica, увидев в ней стратегически важное решение для своей облачной и аналитической инфраструктуры.
В 2006 году Майкл Стоунбрейкер вместе с исследователями из Университета Флориды запустил проект Morpheus, направленный на интеграцию и управление множеством гетерогенных баз данных. В условиях, когда компании работают с разнообразными системами и источниками информации, начиная от традиционных реляционных баз и заканчивая облачными хранилищами, возникла проблема объединения этих разнородных данных в единую систему для анализа и обработки.
Morpheus предлагает новый подход к интеграции данных, используя гибридную архитектуру, которая работает с различными типами баз данных как с единым целым. Проект направлен на то, чтобы обеспечить гибкость и масштабируемость при объединении разнородных источников информации. На основе Morpheus в 2009 году была запущена специализированная поисковая система Goby, которая фокусировалась на поиске сведений о событиях, мероприятиях и местах для отдыха. В отличие от традиционных поисковых систем, таких как Google или Bing, которые предлагают обширные результаты по любым запросам, Goby был предназначен для пользователей, ищущих что-то конкретное для досуга: куда сходить, чем заняться на выходных или где найти интересные активности.
Вместо послесловия
Одной из важнейших черт Майкла Стоунбрейкера как ученого была его способность видеть за горизонтом. Когда индустрия привыкла к одной модели данных, он уже начинал работать над чем-то новым. Он никогда не останавливался на достигнутом и всегда искал способы сделать свои разработки быстрее, удобнее и эффективнее.
Еще одна черта — его удивительная способность видеть пересечения науки и бизнеса. Каждый его проект рано или поздно превращался в успешный коммерческий продукт. Это редкость среди ученых, многие из которых остаются в рамках чисто исследовательской работы. Стоунбрейкер же нашел баланс между академическими достижениями и реальной практической пользой. В итоге он стал одним из немногих ученых, чьи разработки нашли широкое применение в индустрии, и сумел собрать на этом внушительный капитал.
За свою карьеру Майкл Стоунбрейкер получил множество наград, включая премию Тьюринга в 2014 году, которую часто называют «Нобелевской премией по информатике». Это признание стало логическим завершением многолетней работы, но, несмотря на преклонный возраст, он по-прежнему активен в исследовательской и предпринимательской деятельности.
Статья поддерживается командой Serverspace.Serverspace — провайдер облачных сервисов, предоставляющий в аренду виртуальные серверы с ОС Linux и Windows в 8 дата-центрах: Россия, Беларусь, Казахстан, Нидерланды, Турция, США, Канада и Бразилия. Для построения ИТ-инфраструктуры провайдер также предлагает: создание сетей, шлюзов, бэкапы, сервисы CDN, DNS, объектное хранилище S3.
IT-инфраструктура | Удвоение первого платежа по коду HABR