Пионерът на Postgres Майкъл Стоунбрейкър обещава да преобърне базата данни още веднъж

Share

Интервю Какво ще стане, ако изградим операционната система върху базата данни, вместо обратното? Звучи като идея от студент след една микродоза твърде много, но не е така. Това е сериозна идея от някой, който вече е преобърнал компютърната индустрия и чието влияние се е разпространило в познати продукти на Microsoft и Oracle.

Празнувайки 80-ия си рожден ден тази година, Майкъл Стоунбрейкър продължава работата си в областта на изследването на бази данни, но неговият отпечатък върху индустрията е циментиран с PostgreSQL, системата за релационни бази данни с отворен код, която за първи път стана най- популярният избор на база данни сред разработчици тази година, според проучването на Stack Overflow за 2023 г. Освен популярна СУБД с отворен код, доставчиците, включително облачните хиперскалери, CockroachDB и YugabyteDB, предлагат услуги за бази данни с PostgreSQL съвместим преден край.

Първата влиятелна работа на Стоунбрейкър започва с Ingres, ранната система за релационни бази данни, която започва като негова изследователска тема след назначаването му за асистент в Калифорнийския университет в Бъркли през 1971 г.

Говорейки пред The Register , той казва: „Моята докторска дисертация беше върху аспект на веригите на Марков и това, осъзнах, няма никаква практическа стойност. Отидох в Бъркли и имате пет години, за да направите принос и да получите Знаех, че това няма да бъде темата на дисертацията ми. Тогава Юджийн Уонг, който беше друг преподавател в Бъркли, каза: „Защо не разгледаме базите данни?“

Двамата прочетоха неотдавнашно предложение за релационни бази данни от изследователя на IBMЕдгар Код, наречено „Релационен модел на данни за големи споделени банки от данни“.

Стоунбрейкър и Вонг смятат, че идеята на англичанина е елегантна и проста. „Очевидният въпрос беше да се опитаме да изградим система за релационна база данни. И Юджийн, и аз нямахме опит в изграждането на системен софтуер, но, като академици, си помислихме, нека опитаме и да видим какво ще се случи. Така че, без опит, ние тръгнахме да построя Енгр. И това ми осигури мандата.“

Енгр имаше конкуренция. System R на IBM беше първият, който демонстрира, че релационният подход може да осигури работеща транзакционна производителност и първият, който внедри вече повсеместния SQL. Oracle започна своята релационна система по-късно през 70-те години. Енгрес също трябваше да се изправи пред проблем с платформата.

„Имаме много хора, които посещават Бъркли и ни питат кой е най-големият потребител на Ingres. Тогава Държавният университет в Аризона иска да го използва за база данни от 35 000 студенти, но не можаха да преодолеят факта, че трябва да получат неподдържана операционна система от тези момчета в Bell Labs, а именно Unix“, казва той.

Насочването на Ingres към системи от среден клас, в които Unix се появи наскоро, също означаваше, че не поддържа COBOL, доминиращия език за бизнес изчисления по това време.

„Единственото решение беше да се създаде компания“, казва Стоунбрейкър.

Той продължи да основава Relational Technology, за да комерсиализира Ingres. По-късно е преименувана на Ingres Corporation и след това закупена от ASK Corporation през 1990 г., която на свой ред е закупена от Computer Associates през 1994 г. Друг член на екипа на Berkeley Ingres, Робърт Епщайн, основава Sybase, която за десетилетие е на второ място след Oracle в пазара на релационни бази данни. През 1992 г. неговата продуктова линия е лицензирана за Microsoft, който я използва за ранните версии на SQL Server.

Но Стоунбрейкър признава, че търговската кодова база за Ingres е била много по-напред от изследователския проект с отворен код – други изследователи могат да получат кода срещу номинална такса, покриваща лентата, необходима за съхранение, и пощенските разходи – така че неговият екип реши да прокара кода през скала и да започне всичко отначало. Какво идва след Енгрес? Postgres, очевидно.

Нова ера

През 1986 г. документ от 28 страници [PDF] — написан съвместно с Лари Роу — обяви дизайна на Postgres, както беше известен тогава, като изложи шест водещи амбиции. Сред тях имаше две, които биха се оказали подходящи за дълголетието на системата от бази данни. Единият беше да се осигури по-добра поддръжка за сложни обекти. Второто беше да се осигури разширяемост на потребителя за типове данни, оператори и методи за достъп.

Стоунбрейкър ни казва, че е знаел от разговори с клиенти на Ingres, че разширяемостта ще бъде важна за успешна база данни в бъдеще. „Веднъж този клиент ми се обади и ми каза: „Ти внедри времето неправилно“, каза той.

Професорът от Бъркли беше объркан, защото екипът му се беше потрудил, за да гарантира правилното прилагане на юлианския календар, високосните години и всичко останало. Но някои финансови облигации се изплащат за 12 равни месеца в 360-дневна година, което не можете да приложите в Ingres, но можете в PostgreSQL, казва той.

Мотивацията да направим базата данни разширяема идва и от желанието да поддържаме нови типове данни. Един ранен проект с Ingres се опита да го използва като географска информационна система, далеч от домашния терен на бизнес данни. Беше „произволно бавно и непоправимо“, казва Стоунбрейкър.

Визията се изплати през последното десетилетие. Преди десет години PostgreSQL добави поддръжка за Json документи , файловият формат, около който се базира NoSQL базата данни MongoDB и Couchbase.

Stonebraker е критикувал движението NoSQL в миналото. Той казва на The Register, че се сближава с релационни бази данни, защото те приемат SQL или подобни на SQL езици и приемат необходимостта от последователност.

„Най-голямата добра идея на NoSQL беше първоначалното изживяване, защото при SQL базите данни трябва да конструирате базата данни и след това трябва да дефинирате курсора. Те са трудни за използване. Това е една от много основателните критики, отправени срещу SQL базите данни : изживяването извън кутията е гадно. Трябва да можете просто да го включите и да кажете „Ето малко данни“.

Различните услуги, налични за предоставяне на PostgreSQL и PostgreSQL съвместими бази данни, донякъде се справят с това, но появата на СУБД като популярна система с отворен код беше щастлива случайност и един Stonebraker нямаше много общо с това.

Въпреки че изследователският код за базата данни беше — и остава — с отворен код, изграждането на компания за бази данни около него по онова време беше невъзможно, както Stonebraker откри при основаването на Illustra през 1992 г. „Когато получихме финансиране от рисков капитал както за Ingres, така и за Postgres , VC не биха имали нищо общо с отворения код, това беше по-късен феномен“, казва той.

През 2005 г. Стоунбрейкър основава Vertica на базата на ориентирана към колони СУБД за съхранение на данни, за която той сега казва, че „би имала огромна полза, ако беше с отворен код, но жизнеспособността на кода с отворен код и VC общността е сравнително скорошен феномен.“

„Базите данни със затворен код не са вълната на бъдещето“

Illustra имаше успех за известен период. В крайна сметка беше продаден на Informix за около 400 милиона долара през 1996 г., като делът на Stonebraker струваше 6,5 милиона долара, пише Forbes през 1997 г. Стоунбрейкър става технически директор на компанията майка за четири години.

Това е удобна сума, но фураж за кокошки в сравнение с приблизителната нетна стойност на Лари Елисън от 145 милиарда долара. Излишно е да казвам, че Стоунбрейкър е пренебрежителен за Oracle, друг ранен приемник на релационния модел. „Ingres винаги е бил технически по-добър, а Postgres е бил практически по-добър. По-гъвкав е и е с отворен код. И в наши дни PostgreSQL като цяло е сравнима по производителност. Като цяло базите данни със затворен код не са вълната на бъдещето и мисля, че Oracle е на висока цена и не е много гъвкав“, казва Стоунбрейкър.

Въпреки това Oracle взе решение, което даде тласък на PostgreSQL с отворен код. Той купи MySQL с отворен код, който някои от общността не вярваха в ръцете на патентования софтуерен гигант. В същото време Illustra и други компании комерсиализираха Postgres, Бъркли пусна кода за POSTGRES под лиценза на MIT, позволявайки на други разработчици да работят върху него.

През 1994 г. Андрю Ю и Джоли Чен, и двамата завършили Бъркли, заменят езика за заявки POSTQUEL с SQL. Полученият Postgres95 беше направен свободно достъпен и модифицируем при по-разрешителен лиценз и преименуван на PostgreSQL.

„Това, което в крайна сметка се случи, беше, че Illustra някак си набра популярност, но големият удар беше, когато тази група от напълно несвързани хора, които дори не познавах, взеха кода на Postgres с отворен код, който все още беше наоколо, и се заеха с него, напълно без да знам. Това беше чудесен инцидент“, казва той.

„Когато MySQL беше купен от Oracle, разработчиците се усъмниха масово и преминаха към PostgreSQL. Това беше още една щастлива случайност. Търговският му успех е прекрасен, но беше до голяма степен случайна случайност“, добавя Стоунбрейкър.

Междувременно услугите за бази данни се развиха около PostgreSQL. Той се превърна в най-доминиращия преден край за съвместими или почти съвместими системи, налични от Google (AlloyDB и CloudSQL), Microsoft (Azure PostgreSQL), AWS (Aurora и RDS), CockcroachDB, YugabyteDB, EDB и Avien.

„Целият свят се премества в облака и Google, Amazon и Microsoft залагат на ранчото на съвместимостта с PostgreSQL. Мисля, че това е страхотна идея. CockroachDB е съвместим с PostgreSQL по кабел. Можете да вземете PostgreSQL приложение и да го зарежете на CockroachDB. PostgreSQL няма никакви възможности за разпределена база данни, но както YugabyteDB, така и CockroachDB имат“, казва той.

Влиянието на Stonebraker достига дори до портфолиото на конкурента Oracle. Неговата обединена база данни Mariposa стана основа за Cohera, компания за бази данни, която PeopleSoft купи през 2001 г., преди да стане част от Oracle през 2004 г. През 2014 г. Стоунбрейкър беше признат за влиянието на работата си върху Ingres и Posgres с наградата Turing, която спечели 1 милион долара от Google в процеса.

Въпреки че много от неговите идеи са толкова широко използвани в индустрията за бази данни, която според Gartner е струвала 91 милиарда долара през 2022 г., Стоунбрейкър е спокоен относно други хора, които използват неговите идеи.

„Справих се добре финансово. Познавах Тед Код, който беше много великодушен да каза, че всички вие трябва да управлявате [идеите]. Искате да промените света; всеки конкретен човек е само част от това. Винаги съм го правил код с отворен код и споделен код с всеки, който го иска. В този процес се справих добре финансово, така че да, изобщо не съжалявам“, казва той.

Но това не означава, че той е готов да се пенсионира. В последния си проект Стоунбрейкър е готов отново да промени света.

Идеята за DBOS , ориентирана към бази данни операционна система, дойде от разговор с Матей Захария, автор на Apache Spark, който също е съосновател на компанията за анализи и машинно обучение Databricks и доцент в Бъркли.

„Spark и Databricks се занимават с управление на екземпляри на Spark в облака. Той каза, че във всеки един момент Databricks често управлява милиони Spark-sub задачи за различни потребители. Те не биха могли да направят това, използвайки традиционното планиране на операционната система техники: имаха нужда от нещо, което може да се мащабира. Очевидният отговор беше да поставят цялата информация за планиране в база данни. Точно това направиха момчетата от Databricks: поставиха всичко в база данни на PostgreSQL и след това започнаха да хленчат за производителността на Postgres“, казва Стоунбрейкър .

Никога не избягва предизвикателството, Стоунбрейкър си помисли: „Е, мога да се справя и по-добре от това.“

Новият проект замени Linux и Kubernetes с нов стек от операционни системи, в основата на който е система от бази данни, прототипът на многовъзловата многоядрена, транзакционна, високодостъпна VoltDB, която стартира Stonebraker.

„По принцип операционната система е приложение към базата данни, а не обратното“, казва той.

Статия Stonebraker в съавторство със Zaharia и други обяснява: „Цялото състояние на операционната система трябва да бъде представено еднакво като таблици на базата данни и операциите върху това състояние трябва да се извършват чрез заявки от задачи без състояние. Този дизайн улеснява мащабирането и развитието на ОС без рефакторинг на цялата система, проверка и отстраняване на грешки в състоянието на системата, надграждане на компоненти без престой, управление на решения с помощта на машинно обучение и внедряване на сложни функции за сигурност.“

Успешна или не, идеята за приложение OS като база данни едва ли ще бъде последната на Stonebraker. След като навърши 80 години през октомври, той казва пред The Register , че няма намерение да забавя темпото.

„Не мога да си представя да играя голф три дни в седмицата. Харесвам това, което правя, и ще го правя, докато мога да бъда интелектуално конкурентен“, казва той. ®

Подобни статии

Не пропускайте