20-21 апреля состоялась очередная, 10-ая, юбилейная,
конференция «Корпоративные Базы Данных 2005», проводимая
Центром Информационных Технологий.
В тексте даны ссылки на доклады в htm или ppt (citforum.ru). Доклады в ppt занимают размер от 500 до 5 мегабайт.
Первый день
20 апреля я решил сходить только на первые два доклада Microsoft. Доклады
«Решения Microsoft для бизнес-анализа» и
«Интеграция бизнес-решений с использованием Microsoft BizTalk Server 2004» пришлось принести в ущерб ради общения с Дмитрием Емановым и «подгонки и корректировки» собственной презентации, которую я должен был читать на следующий день.
Кроме того, доклады InterSystems (Cache) меня не интересовали (некоторые в курсе моего отношения к Cache, в силу вполне приличного общения с MUMPS (Диамс) в 1990-1992 годах). А ждать полдня Linter 2005 и СУБД Empress – простите, ребята...
Все плохое к лучшему, ибо второй день был насыщенным, и я провел его на конференции от начала до конца.
Итак, что же нам поведал Microsoft
«Обзор Microsoft SQL Server 2005» представлял собой весьма сжатый доклад по обширному количеству нововведений в MS SQL 2005. Тут я вас отправлю к
ссылке и самому докладу, потому что пересказывать все это невозможно – очень много.
Второй доклад,
«Технологии повышенной доступности данных в Microsoft SQL Server 2005» был более конкретным и интересным. Тут нам рассказали о
Версионности в MS SQL
С этим все ясно, я уже давал ссылки на статью на
RSDN и
письма на форуме. Добавить к этому можно только то, что Microsoft называет уровни изолированности с поддержкой версионности как READ COMMITTED SNAPSHOT ISOLATION и .. SNAPSHOT ISOLATION (?). В кулуарах я выразил обеспокоенность смешиванием понятий, однако представитель Microsoft нисколько не сомневаясь сообщил, что это нормально. (Ответ был дан так уверенно, что у меня возникло подозрение, что версионность придумал именно Microsoft). Как мне кажется, с течением времени Microsoft сам разберется и исправится, т. к. у них не только есть теперь уровень изолированности SNAPSHOT, но и снимки БД (DATABASE SNAPSHOTS), что если будет оставлено, то внесет полную сумятицу в умы пользователей.
Поскольку на sql.ru в недавнем времени некоторые люди впали в панику, узнав что в IB/FB уровень изолированности ReadCommitted
не обеспечивает согласованность (атомарность) select. Я заинтересовался утверждением докладчика, что в ReadCommitted + версионность MS SQL теперь обеспечивает согласованность select. О чем и спросил его, там же, в кулуарах. Похоже, что на представителей российского отделения Microsoft свалилась куча информации, которую они не успели переварить, и поначалу я никак не мог объяснить докладчику смысл моего вопроса. Когда же я наконец его доколебал (в силу своей природной язвительности и буквоедства), то он чуть ли не с негодованием ответил: "Ну, конечно же, да!!!". Убоявшись быть побитым, я тихо слинял в уголок для курения. Короче, по ходу будем читать подробности на microsoft.com.
Database Snapshots
Как сказал DE, это натурально наш NBackup. Только мы его в FB 2.0 используем как инкрементальный бэкап, а MS SQL 2005 – как "срезы" базы данных на определенный момент только для чтения.
Database Mirroring & Failover Clustering
Вот тут я должен несколько скакнуть вперед и упомянуть доклад Oracle 21 апреля утром, где в принципе по поводу Failover Clustering говорилось то же самое. То есть, кластеризация гигантами SQL-индустрии на нынешнем этапе воспринимается в первую очередь как осуществление защиты сервера от сбоев, и только потом – как распределение нагрузки и масштабирование.
Database Mirroring, в свою очередь – программное зеркалирование базы данных на разных серверах.
Мне, кстати, в этот момент вспомнилось про shadow, и пришла идея – почему бы в FB 2.0 или 2.5 не сделать для shadow чередующееся чтение, то есть читать страницы группами поочередно из БД и из shadow. Поскольку обычно БД и shadow располагаются на разных физических носителях, этим можно было бы серьезно ускорить чтение. Второй вариант – данные читать из базы, а индексы – из shadow....
Здесь Дмитрий Еманов упомянул, что неплохо бы некоторым из fb-architect посещать подобные конференции. Т. к. пока в FB Clustering не рассматривается как защита от сбоев, и может быть поэтому отношение к кластеризации весьма вялое. А при нынешних объемах данных именно защита от сбоев и скорость восстановления становится все более важным фактором.
Кстати, путем Mirroring и Database Snapshots MS SQL решает проблему с поддержкой OLAP. То есть, с копиями для чтения могут работать аналитики, а с "живой" базой данных работают пользователи OLTP. В результате пропадает необходимость в организации отдельного сервера для OLAP-запросов.
Подробнее смотрите упомянутые презентации и сайт MS.
Линтер 2005
Я хоть и не был на
презентации, хочу упомянуть один момент. Докладчик по Ingres почему-то сослался на то, что в Linter встроили версионность от PostgreSQL. Павел Пасечник, представитель РЕЛЭКС, опроверг эту информацию – сказал, что версионность в Линтере самостоятельная, то есть код из PostgreSQL не использовался.
Empress
Тоже не был на
презентации, но в материалах доклада как-то странно упоминаются требования разработчиков ко встроенным серверам БД и СУБД реального времени. РСУБД не устраивают из-за "сложности" SQL, и ресурсов много потребляют, и другие весьма сомнительны критерии. Конечно, если ничего не знать про Yaffil Personal или Firebird Embedded... И как-то странно объединяется "встроенность" и "реального времени"... В общем, будь я на докладе, обязательно поспорил бы.
День второй
Oracle 10g
Конечно, огромное количество функциональности,
GRID-computing, DB Flashback, Automatic Storage Management и т. п. Докладчик, Сергей Томин, просто потряс своей жизнерадостью. Почему бы и нет?
Но мораль опять та же самая – перенос mirroring и fail-safe с аппаратных средств на программные, то есть под управление РСУБД. Это "жжжж" неспроста (например, одна из фишек ASM – возможность организацияи программного аналога RAID5 из трех, например, файлов...).
DB2 Information Integrator Software
Мощное ПО, позволяющее интегрировать кучу разнородных источников данных в доступ через один интерфейс. Без разницы, объединяются 2 таблицы из Oracle и MSSQL, или из DBF и TXT. Но остался за кадром вопрос, что делать со старыми приложениями. Понятно, что использовать всю эту прелесть могут только новые приложения, причем обращающиеся к Integrator через его интерфейсы (пусть и стандартные – ODBC и т. п.). А такую роскошь, то есть, и написание новых приложений, и закупку DB2 Integrator могут позволить у нас очень редкие компании. Как правило, все сводится к приложениям, которые самостоятельно (м. б. и мучительно, но за меньшую стоимость) интегрируют данные, находящиеся в разных источниках.
XML-СУБД Sedna
Оставлю оценку СУБД и
доклада на Алексея Ковязина. Т. к. я имею слабый интерес к деталям функционирования XML-СУБД:
Cреди традиционных баз данных выделялась
XML-СУБД Sedna российской разработки.
XML-СУБД – достаточно молодые по сравнению со "стариками" вроде InterBase, но бурно развивающиеся (
www.rpbourret.com/xml/ProdsNative.htm).
Суть идеи состоит в том, чтобы хранить в СУБД XML-документы не в виде XML-кода, а в уже распарсенном виде, т. е. готовом древообразном представлении, с возможностью быстрого доступа как к узлам, так и к целым XML-документам.
XML-СУБД очень хорошо подходят для документоориентированных систем. В Sedna, например, реализована возможность загрузки документов произвольной структуры, метаданные которых определяются на лету. К загруженным документам можно производить запросы на языке XQuery.
По сравнению с SQL XQuery выглядит, конечно, более "птичьим" (мое личное мнение), но на самом деле все достаточно понятно. Хочется отметить, что в Sedna реализовано индексирование данных, которое позволяет производить не только достаточно простые запросы с выборкой по индексу, но и использовать XQuery по выполнению запросов с группировкой.
Рекомендую скачать их дистрибутив и попробовать Sedna в деле – благо имеется отличное руководство Getting Started и дистрибутив своим размером приятно напомнил нестареющую классику :)
На мой взгляд, Sedna имеет очень хорошие перспективы, но нужны шаги по развитию коммьюнити: создание мощного сайта, форумов, активной работе по продвижению и развитию СУБД.
Блок OpenSource СУБД
Мне посчастливилось выступать третьим «OpenSource-докладчиком» по счету, фактически окруженным конкурентами. Интерес аудитории был весьма высок, т. к. часть людей пришла на конференцию именно на этот блок. Мне показалось, что слушателей было даже больше, чем на утренних докладах по MS SQL в первый день. И вопросы докладчикам задавались разработчиками, использующими либо "конкурентов" по OpenSource, либо коммерческие СУБД.
Ingres r3
Это
СУБД, имеющая древние корни, и выпущенная в OpenSource компанией Computer Associates (CA). К сожалению, в отличие от выпуска InterBase в OpenSource подобная акция в отношении Ingres была вынужденным шагом, по причине сильного падения распространенности Ingres. Однако, функциональность сервера вполне на уровне, так что эта РСУБД однозначно расширит число своих пользователей и разработчиков в России в ближайшее время.
PostgreSQL
Доклад Олега Бартунова представлял собой живой и вольный рассказ об истории и нынешнем состоянии PostgreSQL. Мне к тексту доклада добавить нечего, разве что докладчик так увлекся, что занял лишних 15 минут.
InterBase и Firebird
Вы можете посмотреть
презентацию доклада (PowerPoint) – практически для каждого слайда есть подробные комментарии. В силу OpenSource-направленности блока об InterBase пришлось только изредка упоминать, в основном сосредоточившись на Firebird вообще и Firebird 2.0 в частности.
Один из «тезисов», который я «двинул» в аудиторию – что исходники – вовсе не главное. И это подтвердил живой опрос слушателей (подняли руки как заинтересованные в исходниках только ~6-7 человек из примерно 80-ти). И что главное, в том числе для популярности СУБД – это грамотное управление проектом и наличие готовых дистрибутивов под массу различных платформ. Также я упомянул, что настало время версионных СУБД. "Не прошло и 25 лет с выхода InterBase, как... даже ведущие коммерческие и OS СУБД встали на тот же путь. Радует, что в IB/FB благодаря столь долгой жизни (и OpenSource) с версионностью меньше проблем, чем у "версионных конкурентов".
Craig Stunz
раскопал более подробно историю многоверсионности. Со слов Анны Харрисон (Ann Harrison), жены Джима Старки (James Starkey):
[Jim] начал пробовать версии данных (shadowing), при помощи которых он увидел способ обеспечить режим repeatable read без блокирования updates. Затем, однажды утром в душе, он понял, что версии (shadows) также могут предотвратить конфликты обновлений и отменять работу незавершенных транзакций. Все это происходило где-то в 1981-1984 году, а реализация многоверсионности и InterBase появились в 1985 году.
Однако, многоверсионный доступ описан в литературе в 1981 году Филиппом Бернштейном и Натаном Гудменом (Philip Bernstein and Nathan Goodman), которые впоследствии работали в Computer Corporation of America (Замечание: для чтения документов ACM требуется оплата подписки). Документ Бернштейна и Гудмена цитируют диссертацию D. P. Reed 1978 года, где достаточно четко описана MVCC, и утверждается, что это оригинальная работа. Документ Рида цитируется 66-ю авторами в The Guide to Computing Literature, и 180 раз Бернштейном и Гудменом.
Так что, идеи многоверсионности появились как минимум в виде обсуждения в документах намного раньше чем InterBase. Однако, до реализаций так и не дошло. DEC Rdb/ELN была коммерческой СУБД, использующей MVCC, и была выпущена прямо перед InterBase, но она также разработана Джимом Старки в тот же период времени и имеет одно и то же ядро (JRD) (Rdb/VMS в свою очередь, явилась прародителем Oracle RDB). Все что существовало до этого, это некоммерческое приложение, обсуждаемое в документе Рида.
Джим Старки
упоминает в комментариях, что он не был в курсе документа Рида и не обсуждал этот вопрос с Бернштейном, а пришел к этой идее независимо, но несколько позже.
Не упустив возможности попинать конкурентов с высокой трибуны (чисто по-дружески), я искренне порадовался за Оракл, у которого дистрибутив сервера теперь один CD вместо трех, а также отметил, что в моей презентации, в отличие от PostgreSQL и Ingres, нет "таблицы сравнения серверов".
Также, кстати, обратите внимание на цифры об ускорении производительности в некоторых докладах (в т. ч. по Oracle). Шутка про то, что если одним махом сервер в определенной области ускоряется в 10-30 раз – значит, в предыдущей версии сервера данный участок кода был совершенно криво написан, была оценена аудиторией.
MySQL
Тоже неплохой
доклад, и... опять версионность. И, разумеется, MySQL Cluster. Если честно, я уже иссяк, да и в общем на фоне всего остального доклад по MySQL не показался мне содержащим какие-то новые (для меня) знания.
Итог
Замечательная конференция, скажу я вам. Спасибо ЦИТ и Сергею Дмитриевичу Кузнецову (ИСП РАН) за отлично справленный юбилей «Корпоративных Баз Данных». Правда,
финальный доклад С. Д. Кузнецова, закрывший конференцию, мне показался излишне футуристическим. Конечно, о перспективах развития СУБД надо думать, но лучше пока предоставить это науке. А мы как-нибудь, пока, более приземленно, к потребностям бизнеса. Задач, которые востребованы и которые нужно решать, на ближайшее время определено вполне достаточно. А там, глядишь, потихоньку и вольемся в светлое будущее не только РСУБД, но и СУБД вообще.
Изучайте материалы (доклады) конференции.