1998 г
Воссоединение SQL в 1995 г.: люди, проекты, политика
Под редакцией Пола МакДжонса
Перевод: Сергей Кузнецов
Страницы: назад 1 2 3 4 5 6 7 8 9 10 вперед
Распространение подхода
Майк Блазген: Это было в мою эру, и я помню, что люди из Санта-Тереза снова стали обсуждать возможность использования System R для чего-нибудь. Решение было положительным, система им нравилась, но они не хотели генерировать машинный код. Они хотели генерировать вместо машинного кода нечто слегка более высокого уровня; тривиального высокого уровня, вроде символического ассемблера, а затем интерпретировать его, что и сделали. И мы были против этого, да, можно понять, почему мы были против этого; я знаю, почему я был против: потому что не хотел, чтобы они что-нибудь испортили. Я думал, что было бы правильнее не делать работу заново, не распространять заново разработанную систему. У меня имеется дата, в которую они решили начать поставки VS QUERY и DB2; это было в марте 1979 г. В этом месяце была произведена первая поставка заказчику. GA, мы называли это GA.
Джим Грей: Это была архитектура 811.
Майк Блазген: Они добились этого на три года позже первой поставки архитектуры System R.
Джим Грей: Но проект назывался 811 потому, что это была дата поставки: одиннадцатый месяц 1978 г. И я думаю, что [Майк] Саранга ([Mike] Saranga) и я ... Я держал пари, что они никогда ничего не начнут поставлять, и до сих пор так и расплатился за проигрыш.
Франк Путцолу: Это была VSS?
Джим Грей: Да, то, что превратилось в DB2. Поставка велась вместе с аппаратурой. Это была архитектура 811, так что XA было частью пакета.
Майк Блазген: С адресом в тридцать один бит.
Джим Грей: Было так: "FS потерпела крах; что мы будем делать? Мы вернемся на исходные позиции и сделаем новую систему баз данных для MVS. Мы поставим на 370 архитектуру XA." Адрес был длиной не в тридцать один, а всего лишь в двадцать четыре бит. Адресация была горизонтальной.
Нельзя пропустить тот факт, что Ирв был откомандирован в Пало Альто, я думаю, своевременно.
Разные: STL.
Майк Блазген: Нет, дважды; он командировался дважды.
Ирв Трейджер: Леонард предложил мне и Франко отправиться в Пало Альто, где мы познакомились со Стивом Вейком (Steve Weick), Джоном Науманом (John Nauman), Бобом Джексоном (Bob Jackson) и массой других людей, участвующих в этом гигантском проекте FS. Не знаю, много ли дали эти взаимодействия. Он старался научить нас опыту реальных систем.
Франко Путцолу: Это были странные взаимодействия. Это было частью большой попытки FS. Предполагалось, что мы будем представителями реляционного знания, реляционной мудрости. Конечно, проект FS покрывал все, что есть на свете, поэтому он должен был покрывать и реляционные базы данных. Мне было очень нелегко, потому что в то время я не обладал большим опытом в области баз данных. С другой стороны, немного поговорив с этими людьми ...
Майк Блазген: ... ты чувствовал себя немного лучше. [смеется]
Франко Путцолу: Я отдавал себе отчет в уровне своей компетентности, но эти люди, они были экспертами ...
Майк Блазген: Я работал на FS два или три года в Пафкипси в строении 77.
Франко Путцолу: Я работал год на FS в Mohansic.
Майк Блазген: Я участвовал в этом в течение двух лет. Я работал на Рича Ойлера (Rich Oehler), который работал на Пита Шнейдера (Pete Schneider), который работал на Джорджа Рейдина (George Radin), который работал на Дика Кейса (Dick Case), который работал Боб Эванс. Как вы знаете, Боб Эванс заведовал практически всеми разработками в IBM. Потому что Отделение системных разработок разрабатывало все системы. Все, кроме пишущих машинок, все, за исключением Тома [Прайса]50. Я ушел из проекта FS, потому что он был слишком сложным, слишком трудным для понимания. Джим написал длинную статью и сказал "Это действительно привлекательно, но не делайте этого". Что-то вроде этого, точно не помню. Что бы это не было, не делайте этого.
Джим Мехл: Эта штука в Пало Альто: она называлась проектом Dawn Treader?
Джон Науман: Нет, это был другой проект; тот тоже выполнялся в Пало Альта, но был другим.
Майк Блазген: У меня есть техническая записная книжка - нечто в картонной обложке, с проставленной на обложке датой: ноябрь 1974 г. В ней содержатся записи обо всех моих встречах в Пало Альто со всеми этими людьми, имена людей. Все эти имена утеряны. Несколько людей находятся неподалеку. Среди них Стив Вейк.
Франко Путцолу: Да, мы с Ирвом провели там пару месяцев. Я не знаю, почему мы закончили; проект FS умер?
Ирв Трейджер: Это было нечто вроде продвижения ползком. Мы ни с кем не имели действительно хороших контактов. Мы встречались, и они давали нам подзатыльники, улыбались и возвращались к своей работе.
Том Прайс: Я помню, что когда FS умер, ходили слухи, что он умер за год до того, как они реально остановили проект. Это было так странно - каждый участник проекта знал, что он умер, но должен был продолжать над ним работать.
Майк Блазген: Кстати, только что вышла книга. Насколько я знаю, у Пат есть экземпляр. Это книга Эмерсона Пафа (Emerson Pugh) Building IBM51. Она начинается с Германа Холлерита. Действительно, в первой сентенции говорится о том, что произошло в 1889 г. в тот день, когда с помощью табуляторов Холлерита были выданы первые патента. А ближе к концу имеется раздел про FS, в котором говорится: "Это был самый дорогостоящий провал разработки в истории IBM"52. Непривычно видеть напечатанным такой текст по поводу FS. Мы все это знали, но никто никогда не хотел об этом писать. Кроме Джима, который первым сказал: "Не делайте этого".
К. Мохан: На самом деле, автор говорит, что был обеспечен полный доступ ко всем архивам IBM без каких-либо ограничений на то, о чем можно говорить. От него не требовалось прохождение цензуры IBM до публикации рукописи.
Майк Блазген: Как вы знаете, Паф уже не сотрудник IBM. Поэтому он написал это как независимый автор. До этого он написал три книги: Memories That Shaped an Industry, IBM's Early Computers, and IBM's 360 and Early 370 Systems, две последние являлись частью проекта IBM Technical History. Он был служащим IBM, имелись люди, которые на него работали, а у него были связи с издателями. А потом он ушел из IBM, но продолжил писать независимо и в результате получил немного большую свободу от редакторов, чем та, которую имел бы, будучи служащим.
Джим, я думаю, что наступило время ланча; что там у нас с ланчем?
Раймонд Лури: Если говорить про компилятор, то я хотел бы поблагодарить Бреда за ужасную работу. Если вы действительно хотите что-нибудь узнать про 360 и о том, как работают базовые регистры, спросите у него; я думаю, что он еще помнит.
Франко Путцолу: Ты помнишь это?
Майк Блазген: Я помню одну историю о базовых регистрах Бреда и прочем. В нашем коде возникали последовательности на языке ассемблера. В такой последовательности встречался текст "Load R1, и т.д.", и это обрабатывалось некоторой программой, преобразующей последовательность в реальный машинный код. Мы выполняли проверку кода в Санта-Тереза, поскольку люди в Санта-Тереза подумывали о том, чтобы взять наш код. Они пришли и сказали, что в этом коде много ошибок, пардон, много дефектов. И в чем же были дефекты? Мы были несколько удивлены, поскольку думали, что кодируем достаточно чисто. Они сказали: "Ну, у вас есть литеральные ссылки на регистры". Другими словами, мы генерировали "Load one".
Том Прайс: Ты не использовал EQU.
Майк Блазген: Правильно, мы ничего не сравнивали. [смеется] Но потому, что это был back end компилятора. Я имею в виду нечто, занимающееся назначением регистров. Они были в беспорядке, они пересчитывались, вы знаете, четыре сотни ...
Бред Вейд: В тысяче строк моего кода было обнаружено пятьсот семь дефектов. [смеется]
Майк Бзазген: Как вы знаете, в это время имелось правило, пункт семь или что-то вроде этого. И вот Франк или кто-то из нас обратился к парню, который отвечал за качество кода, и сказал: "Мы поработаем над этим". А парень сказал: "Мы будем поставлять этот код только через мой труп". И мы поставляли его. [смеется]
К. Мохан: Но в SQL/DS, правильно? Не DB2.
Майк Блазген: Да, его поставлял Эндикотт (Endicott).
Франко Путцолу: Зачем они все переименовали? Насколько я помню, соглашения об именовании в RSS и RDS были достаточно либеральными. В начале имени ставилось Y или X. Ведь они все переименовали после поступления кода в Эндикотт?
Брюс Линдсей: A01, A02, A03, да, они переписали все модули RDS на PL/1 и переименовали все модули в соответствие со соглашением об именовании Эндикотта, в котором требовалось что-то вроде семи символов для имени продукта, один символ для компонента, а последний можно было использовать по своему желанию. [смеется] Помню, как я работал над кодом авторизации Бреда, написанным на PL/1 и PL/S. Время работы над версией PL/S было для меня трудным, поскольку требовалось иметь мнемонические имена - по меньшей мере три символа для мнемоники для всего, что делается - и они решили, что правильными именами являются 01, 02, 03, 04. Они действительно никогда не доходили до 10, но ...
Том Прайс: Значит, у тебя были перекрестные ссылки между старыми и новыми именами.
Брюс Линдсей: Да, мне пришлось сделать это. В то время соглашения IBM о кодировании представляли собой нечто.
Джим Грей: Что у нас будет происходить дальше?
Майк Блазген: Есть несколько вещей, которые я хочу сделать после ланча, если сейчас мы должны идти на ланч.
Джим Грей: Мы сейчас должны идти на ланч.
Майк Блазген: Во-первых, когда мы вернемся, Бред может включить видеозапись, и мы можем кое-что на ней посмотреть. Во-вторых, после ланча я хотел бы немного поговорить о связях между Сан-Хосе и Санта-Тереза в то критическое время, которое в конце концов привело к появлению DB2 и SQL/DS. В особенности SQL/DS, которая, хотя и была завершена в Эндикотте, на самом деле, началась в Санта-Тереза, и за которой последовала DOS DL/1, по крайней мере, по моим воспоминаниям. Менеждером всех этих проектов был Боб Джоллс, он здесь, и никто из присутствующих не может ему возразить. Я думаю, что ты можешь пополнить всю эту историю и рассказать нам, как ты добился всего, что произошло. И мы сделаем это после ланча. Это то, что происходило в начале или в течение 1982 г. и кульминацией чего в конце концов стали SQL/DS и DB2. Имеется еще кое-что для обсуждения; нам следует оставить для этого достаточное время. Нам нужно разобраться в том, почему Ларри Эллисон стал богатым, почему Джим Грей покинул IBM, почему Боб Джоллс живет в Chapel Hills и куда собирается Марио в следующем месяце. Масса интересных вещей. И это будет после того, как мы прокрутим ленты. Посмотрим на Дона Чемберлина с усами Бреда Вейда.[смеется]
Перерыв на ланч
Майк Блазген: Исходно мы планировали после обеда переключить наше обсуждение на то, что происходило после всей работы в Строении 28; исследования, которые производились после нас, а затем мы собирались перейти к разговорам о продуктах. Кто выиграл, разделяемых 10K и подобных вещах. Но мы отстали утром, и я думаю, что нам следовало бы обсудить некоторые вещи, связанные со взаимодействиями исследовательской лаборатории Сан-Хосе и других частей IBM, которые были успешны или неуспешны в смысле продвижения этого продукта за пределы лаборатории. Я уже утверждал раньше, что публикации во многом способствовали тому, что IBM стала готовой к тому, чтобы вывести системы за пределы лаборатории и перевести в разряд продуктов. Конечно, полученными в конце концов продуктами были система SQL/DS, которая остается действующим продуктом и все еще содержит много кода System R, и DB2, которая напрямую вообще не содержит код System R, но System R оказала основное влияние на ее разработку. И потом имеется много других производных System R, разработанных другими компаниями. Джим мог бы рассказать нам о том, как компания Tandem позаимствовала все наши хорошие идеи, если это так на самом деле, и о том, что сделала компания Oracle. Но я хотел бы в особенности сосредоточиться на шагах, сделанных до 1981 г., которые привели к выпуску IBM первого набора продуктов. Прежде всего, производился обмен людьми между Сан-Хосе и группой разработчиков, которая первоначально базировалась в Пало-Альто, а затем перебралась в Санта-Тереза, когда там достроили здание. Что было последствием этого? Ты ведь провел там год, Ирв?
Ирв Трейджер: Мы с Франко были направлены на временную работу в Пало-Альта для участия в проекте FS. Позже мы оба получили назначение в лабораторию Санта-Тереза, где принимали участие в начальной стадии работы, когда принимались ключевые решения, приведшие к возникновению DB2.
Франко Путцолу: Потом прибыл Джим.
Майк Блазген: Правильно, потом в Пало-Альто приехал Джим, и вы провели там год.
Джим Грей: Да. В процессе мы перебрались в Санта-Тереза. Так что закончил я в Санта-Тереза.
Майк Блазген: И ты работал над Eagle?
Джим Грей: Да, тогда это называлось VSS. В группу входил Джон Науман, и Томас Уорк (Thomas Work) был менеджером; [Стив] Вейк являлся менеджером Томаса. Отвечал за это Энди Хеллер (Andy Heller). В течение шести месяцев мы собирались построить продукт, который мог бы заменить IMS и делал все, что делает System R. В то время Энди был еще более агрессивным.
Майк Блазген: По этому поводу у меня есть история про Энди Хеллера. В том время, когда вы были там, мы с Томом Прайсом писали статью "How Database Systems Recover", которую собирались опубликовать, но так и не сделали этого. Мы старались задокументировать, как работает восстановление в нескольких существующих системах, а затем поразмышлять о более общих вещах, приводящих к терминам "no-force", "steal/no-force", "no-steal/force"; все эти вещи частично происходили из выполняемой нами работы. Мы хотели написать, как работает VSS. Поэтому, увидев как-то Энди в здании лаборатории, мы подошли к нему и спросили: "Как в точности это работает в данной ситуации?". Энди сказал: "Бла, бла, бла", мы записали, и он ушел. Потом мы уселись и попробовали написать это в том виде, как смогли понять. И не смогли. Мы дошли до такой ситуации, в которой алгоритм не работает. И мы дождались новой встречи с Энди, принесли ему свои записки и сказали, что это не работает. А он сказал: "Нет, нет, нет; это не то, что я имел в виду; возможно, это то, что я сказал". Мы были вынуждены встречаться с ним семь или восемь раз и так и не смогли выяснить ... однако, должен сказать, было изобретено семь или восемь неработающих алгоритмов. [смеется] Это была фантастика.
Франко Путцолу: Мы в конце концов пришли к соглашению, что если ты хочешь рассказать что-нибудь Энди, то он должен это записать во всех деталях. Иначе говорить с ним было невозможно.
Джон Науман: Это остановило взаимодействия. [смеется]
Джим Грей: После того, как я ушел, пришел Франко. И Франко провел там, я думаю, около ...
Франко Путцолу: Почти три года.
Джим Грей: Ну да, ты провел там год, и наступило время возвращаться. Он сказал: "Мне пора уезжать", а они сказали: "Нет, ты не можешь этого сделать!". И он сказал: "Хорошо, я буду на вас работать. Если мы не должны доводить процесс Санта-Тереза до конца, я останусь. Но это должна быть только работа: никаких отчетов, никаких рецензий. Раз в месяц я буду говорить вам о состоянии работы." Я могу в чем-нибудь ошибаться ...
Франко Путцолу: Да.
Джим Грей: И они сказали: "Иди молоть песок." И он вернулся в Сан-Хосе. Совершенно внезапно через месяц или два ты опять оказался в Санта-Тереза. И там была группа, включающая [Дона] Хэдерли ([Don] Haderle), Боба Гумаера (Bob Gumaer) и ...
Франко Путцолу: Посмотрите, это было с 1977 по 1979 гг., около трех лет.
Джим Грей: Значит, в 1978 г. ...
Франко Путцолу: Да, имелись незначительные конфликты по части управления всем этим. [смеется]
Джим Грей: Франко хотел преобразовать одиннадцатифазный процесс в двух- или трехфазный.
Франко Путцолу: Ну, лаборатория Санта-Тереза была действительно парализована. У них была эта большая группа, и они непрерывно меняли название проекта. Сначала он назывался VSS, потом DS/1, потом Eagle, потом Ampersand, что было единственным симпатичным названием, поскольку Ampersand означает переменную в языке SCRIPT. Предполагалось, что эта система заменит все системы баз данных. Она должна была заменить IMS, обеспечить новые причудливые интерфейсы, обеспечить все виды совместимости. Имелись три компонента. Единственной выжившей частью являются System Services. Такие вещи как журнализация, восстановление и блокировки; это единственный компонент, который выжил в DB2. Имелся Data Communication Component, который полностью сошел на нет.
Джим Грей: Подсистемы ввода/вывода; управление буфером.
Франко Путцолу: Нет, это было добавлено позже. И еще была Future Database System, которая прошла через ряд инкарнаций. На некоторое время это было расширение PL/1 Криса Дейта (Chris Date).
К. Мохан, Майк Блазген: UDL.
Франко Путцолу: Представляйте себе это как систему баз данных с малым импедансом, если использовать современную объектную терминологию. И в течение некоторого времени это была система со многими лицами: у нее имелась иерархическая личность, реляционная личность, сетевая личность; к ней был привит DL/1. И все это происходило не слишком хорошо. Поэтому, когда присоединился к проекту, я решил, что имеется очевидная потребность в подсистеме, которая поддерживала бы все эти внешние интерфейсы. Я решил работать над подсистемой низкого уровня, которая поддерживала бы все эти интерфейсы. Это была подпольная работа, поскольку в это время управление в Санта-Тереза было очень ограничивающим; они действительно лишали тебя свободы. Итак, этот проект назывался Technology Evaluation (проверка техники). У него даже не было кодового названия IBM. Я имею в виду, что обычно каждый проект в Санта-Тереза должен был иметь имя, я не знаю, какого-нибудь языческого божества, какого-нибудь животного, какого-нибудь кровожадного животного. Но эта штука называлась просто Technology Evaluation, и только спустя некоторое время мы собрались и решили, продукт не может иметь такого названия, для заказчиков будет странно видеть ядро системы баз данных под названием Technology Evaluation. Оно было переименовано просто в Data Manager. Посмотрите, сколько людей работали над этим в начале. Жозефин Ченг работала над кэшем, Дик Крус (Dick Crus), Тим Малкемус (Tim Malkemus), Сид Корнелис (Sid Kornelis), Боб Гумаер, Минг Шен (Ming Shan) и Джейн Дуфти (Jane Doughty), которая в конце концов перешла в Sybase; она была единственной разбогатевшей в процессе этой работы.
Майк Блазген: В связи с упомянутыми тобой вещами у меня имеется впечатление, что в Санта-Тереза делался собственный продукт; эта System R, если она относилась к делу, была источником программистов. Я имею в виду, что можно было нанять таких людей как Франко. Мы вели переговоры; взамен мы получили Боба Йоста. Я думаю, что это был хороший обмен. У меня есть вопрос: какую роль должна была играть System R?
Франко Путцолу: Ну, в течение долгого времени официальная позиция состояла в том, чтобы не принимать в расчет System R. Важно было разработать сетевую систему баз данных. Изо всех интерфейсов - я упоминал пять или шесть интерфейсов,- которые предполагалось поддерживать в этой экуменической системе, реальным интерфейсом предполагался сетевой; и конечно, это была не DBTG, это было нечто иное.
К. Мохан: Это из-за Боба, как его имя?
Том Прайс: Инглс (Bob Engles).
Франко Путцолу: Может быть, это был Боб Инглс; я не помню.
Джим Грей: Это было культурно; это было потому, что все эти деньги приходили от IMS.
Франко Путцолу: Предполагалось, что IMS будет прививкой. Привить только часть кода. Итак, они дали нам спокойно работать около трех лет. Мы знали, что эта подсистема должна стать частью промышленной системы, поэтому мы старались писать хороший код и, в отличие от System R имели соглашение об именовании; мы старались применять хорошую технологию программирования.
Майк Блазген: Это привело к появлению серии компонентов, которые теперь являются частью DB2, это так?
Франко Путцолу: Да, я думаю, что большая часть продолжает существовать в DB2, а теперь мне бы хотелось услышать о том, что происходило после моего ухода.
Майк Блазген: Мне тоже, но давайте сначала завершим эту тему. Итак, эти компоненты были разработаны. Эти компоненты имели небольшое отношение к System R, не так ли?
Франко Путцолу: Ну, они были написаны в предположении, что поверх них будет работать интерфейс System R. Я предполагал, что одним из интерфейсов, работающим поверх нашей подсистемы, будет SQL, поэтому она подходила и для реализации SQL.
Я был убежден, что другим основным интерфейсом, работающим поверх Data Manager - или Technology Evaluation, что одно и то же, - должен быть DL/1. И в действительности мы потратили треть кода и времени для написания специального кода в Data Manager для поддержки DL/1. Был реализован целый ряд хитростей для DL/1. К 1979 г. у нас был прототип, работающий в среде VM. Он обладал значительной функциональностью, и мы пропускали первые содержательные тесты на том, что позже стало называться DB2. Имелись регрессионные тесты физических баз данных DL/1. Это было достаточно интересно; DL/1 работал довольно хорошо.
50 Том Прайс позже работал в Отделении офисных продуктов.
51 Emerson Pugh. Building IBM. The MIT Press, Cambridge, Massachusets (1995).
52 Pugh, page 309.
Страницы: назад 1 2 3 4 5 6 7 8 9 10 вперед