Конференция «Корпоративные Базы Данных 2005»

Конференция «Корпоративные Базы Данных 2005»

20 апреля я решил сходить только на первые два доклада Microsoft. Доклады «Решения Microsoft для бизнес-анализа» и «Интеграция бизнес-решений с использованием Microsoft BizTalk Server 2004» пришлось принести в ущерб ради общения с Дмитрием Емановым и «подгонки и корректировки» собственной презентации, которую я должен был читать на следующий день.

Кроме того, доклады InterSystems (Cache) меня не интересовали (некоторые в курсе моего отношения к Cache, в силу вполне приличного общения с MUMPS (Диамс) в 1990-1992 годах). А ждать полдня Linter 2005 и СУБД Empress – простите, ребята.

Все плохое к лучшему, ибо второй день был насыщенным, и я провел его на конференции от начала до конца.

Итак, что же нам поведал Microsoft

«Обзор Microsoft SQL Server 2005» представлял собой весьма сжатый доклад по обширному количеству нововведений в MS SQL 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 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 Empress День второй Oracle 10g

Конечно, огромное количество функциональности, GRID-computing, DB Flashback, Automatic Storage Management и т. п. Докладчик, Сергей Томин, просто потряс своей жизнерадостью. Почему бы и нет?

Но мораль опять та же самая – перенос mirroring и fail-safe с аппаратных средств на программные, то есть под управление РСУБД. Это "жжжж" неспроста (например, одна из фишек ASM – возможность организацияи программного аналога RAID5 из трех, например, файлов. ).

DB2 Information Integrator Software 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 СУБД Ingres r3 PostgreSQL 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

Замечательная конференция, скажу я вам. Спасибо ЦИТ и Сергею Дмитриевичу Кузнецову (ИСП РАН) за отлично справленный юбилей «Корпоративных Баз Данных». Правда, финальный доклад С. Д. Кузнецова, закрывший конференцию, мне показался излишне футуристическим. Конечно, о перспективах развития СУБД надо думать, но лучше пока предоставить это науке. А мы как-нибудь, пока, более приземленно, к потребностям бизнеса. Задач, которые востребованы и которые нужно решать, на ближайшее время определено вполне достаточно. А там, глядишь, потихоньку и вольемся в светлое будущее не только РСУБД, но и СУБД вообще.

📎📎📎📎📎📎📎📎📎📎