Всё, что написано ниже, относится к Oracle Database и Oracle Exadata.
Преамбула
Полная луна освещала пыльную, петляющую дорогу, исчезающую среди холмов впереди. Я стоял в раздумье в начале своего пути, размышляя о том, куда может привести эта дорога. Отбросив сомнения прочь, я начал свой путь к виднеющейся вдалеке пирамиде, вершина которой терялась среди облаков. По дороге мне никто не встретился, кроме памятника, больше похожего на надгробие с изображением человека и надписью огромными буквами “In Codd we trust”. Подойдя к пирамиде на достаточно близкое расстояние, я сумел разглядеть, что она состоит из DB_BLOCK-ов, большей частью размером 8Kb, но можно было найти и больше. На каждом блоке был изображен логотип компании, которая использовала блок для хранения своих данных. Заметив небольшую толпу около входа в пирамиду, я заинтересовался, и решил узнать, что это такое. Подойдя совсем близко, толпа приобрела очертания – большой частью она состояла из студентов, но встречались и бизнес-аналитики, тестеры, программисты, можно было даже заметить пару менеджеров по продажам – все они рвались внутри.
Проскользнув через незаметную щель рядом с главным входом, я очутился в удивительном месте. Огромное пространство было заполнено искрящимися данными, стены покрыты AWR снимками и лозунгами. Некоторые из них были для меня непонятны, а некоторые хорошо знакомы – “Exadata быстрее X в 6 раз”,”Oracle быстрее Y в 16 раз”,”Oracle БЫСТРЕЕ!!!”,”RAC – наше всё!”,”Back up or not back up? – choose your death”,”No backup – no luck!”,”ASM – дорога в будущее”,”DataGuard – make life easier!”. Публика внутри несколько отличалась от той, что была снаружи. Программисты всех направлений и мастей, руководители проектов, архитекторы, аналитики, консультанты, интеграторы – все они нашли прибежище внутри огромной пирамиды. Тут же были и евангелисты, невнятно и быстро что-то говорившие, повышая голос и интонацию при слове Oracle. Оглядевшись внимательнее, я заметил несколько групп людей, не имеющих лихорадочного блеска в глазах, которых передергивало при слове Oracle. Это группа людей в рубашках корпоративного синего цвета с надписью Microsoft и табличкой SQL Server. Они плакали в бессильной злобе, тихо бормоча “У нас тоже есть MVCC, просто оно не включено по дефолту”. Чуть подальше от них, находились палатки с надписью PostgreSQL – суровые ребята в черных балахонах, недоверчиво смотрящие на все происходящие вокруг и продолжающие заниматься своим делом. Жаль, Стоунбрейкер оставил их. Переведя взгляд дальше, я увидел флаги IBM и DB2 – группа людей в круглых очках, полностью закрывшаяся от всех остальных мэйнфрэймами. Они находились в некоем непонятном трансе, создавалось впечатление, что они не понимают, что происходит вокруг. В их странных Вселенных параллельные прямые пересекались, а перпендикуляр имел отрицательное значение.
Немного освоившись, я убедился, что самое интересное находится в центре пирамиды и направился туда. Именно там несла свое служение каста жрецов под названием DBA. Каста имела три уровня, по степени благословления от Oracle, и располагалась в соответствующем порядке. Внизу холма, состоящего из бэкапов, находились послушники в красных балахонах c большими буквами OCA на спине – размахивая мануалами, они заучивали случаи, когда необходимо использовать bitmap индекс, а также, чем nested loop отличается от hash join-a. Чуть повыше, на подножии, стояли адепты в желтых балахонах с надписью OCP. Они держали в руках свитки с SQL и RMAN скриптами, заучивая их наизусть, а особо сложные и красивые откладывали в стороны или обменивались ими с соседями. На середине холма сидели жрецы OCM в черных балахонах, давно постигшие дао Oracle, они мудро кивали головами, и снимали бэкапы силой мысли, а производительность оптимизировали наложением рук.
Чуть повыше, на импровизированной сцене, Том Кайт умело объяснял заповеди Oracle, одной рукой швыряя в толпу металинковские ноты, а другой рукой ведя блог в Интернете. На самой вершине холма располагался трон, на котором восседал солнцеподобный Ларри Эллисон. В левой руке он держал уменьшенную копию Exalytics, в правой Exadata, а сам он восседал на Big Data Appliance. Громко стучали сотни барабанов, отсчитывая постоянно растущий SCN. Время от времени Ларри поднимал то одну, то другую руку, указывая мэйнстрим развития баз данных, при этом толпы маркетологов и последователей, радостно вопя, поддерживало его начинания.
Ища мудрости и знания, я добрался до получения заветного желтого балахона и получил привилегию создавать свои свитки, обсуждать ORA-00600 и ORA-12704, притронутся к RMAN и Data Guard и многое другое. Я постиг дао реляционной модели, впитал в себя принципы ACID, познал инь данных и ян транзакций. Я по праву занял свое место и знал все смещения в datablock header-e.
Однако, со временем окружающая меня обстановка стала меняться, пока не превратилась в кошмар и как-то темной ночью, побросав бэкапы и скрипты, я бросился вон из этого храма, не оглядываясь. По пути к выходу я успел заметить давно остывший труп лисы, и скачущих вокруг него невменяемых людей в майках FoxPro. От их прыжков лиса подлетала, и создавалось впечатление, что она все еще жива.
Мне в спину неслись маркетинговые выкрики, потрясание мануалами, сладкие обещания HR – но я лишь ускорял свой бег, пелена спала с моих глаз, и все вокруг превратилось в жуткий кошмар. Очнувшись на зеленой поляне, я остановился, оглянулся вокруг и постарался оценить мой предыдущий опыт.
Амбула
Недавно, находясь на конференции, я имел мимолетное знакомство с коллегами из сходной области, где сейчас работаю я. Во время обсуждения платформы, представленной на этой конференции, коллега, пытаясь показаться остроумным, высказал фразу «Exadata для бедных», имея в виду как раз обсуждаемую платформу. Половина поддержала это высказывание одобрительным смешком, а я понял, что все те деньги, затрачиваемые Oracle на маркетинг, потрачены не зря, и Exadata превратилась в брэнд. Ну как же, я захотел сказать, вы можете любить и молиться на Oracle, если он наплевал на один из принципов ACID? И даже может потерять commit — Ссылка
Постоянно встречаюсь с людьми, имеющими зашоренный взгляд на Oracle, думающими, что Oracle может решить все проблемы и утверждающими, что Oracle – это лучшее из лучшего. В той среде, где обитает Oracle, такие настроения внедрены повсеместно и напоминают скорей религиозное поклонение, чем профессиональное использование инструмента. Почему бы не разобраться, где Oracle действительно лучший, а где нет? В чем у меня лично нет сомнений, так это в том, что в маркетинге Oracle действительно лучший. Тому есть масса примеров, из последнего я видел рекламный баннер в Шереметьево, объявляющий, что Oracle во сколько-то раз быстрее HP. Oracle использовала этот слоган против всех конкурентов – это грязный пиар, что именно Oracle декларировала, можно увидеть на картинках ниже. Причем, перед всеми Oracle пришлось извиниться и забрать свои слова обратно – но шум-то уже произошел, цели достигнуты – все услышали про Exadata.
Соглашусь с тем, что Oracle – это лучшее решение по функциональности в OLTP сфере – тут трудно поспорить, и я даже сам посоветую каждому использовать Oracle. Богатые функциональные возможности – бэкапы, standby, партиционирование, RAC, ASM, Flashback, MVCC и многое-многое другое давно сделали его лидером в этом сегменте. Кто-то захочет упомянуть PL/SQL – вот тут уже есть место для спора, так как использование бизнес логики на уровне базы данных в наше время страшный моветон и не приветствуется вовсе.
Но почему-то большинство уверено, что Oracle решает абсолютно все задачи и применим ко всему спектру проблем. По собственной практике, могу сказать, что это не всегда так – Oracle хорош в чем-то, а в чем-то это напрасная трата денег, тут нужны уже совсем другие решения, основанные на других принципах и использующие другие механизмы. Как наглядный пример, могу привести область DWH, аналитическую обработку больших объёмов данных – можно, конечно, купить Oracle Exadata – но соотношение эффективность на объем затраченных денег у него будет минимальным по сравнению с решениями других производителей.
Маркетинг проникает в умы технических специалистов, а они-то казалось бы должны понимать что к чему, так как их работа и заключается в том, чтобы строить следственно-причинные связи и разбираться в происходящих процессах. Не хочу и не буду говорить, что решение Oracle плохие, так как это неправда. Но сказать про то, что агрессивный маркетинг Oracle делает из их пользователей слепых последователей и фанатов мне, кажется, надо.
Даже такая компания, как IBM стоит в моих глазах гораздо выше, по причине того, что они тратят значительные средства на R&D. В случае с Oracle можно наблюдать обратную ситуацию — компания преследует только получение прибыли, а никак не качественное улучшение научно-технического уровня существующих решений. Exadata – это пока большой маркетинговый шум, оплачиваемый за счет простых пользователей. Как Вы считаете, может быть, Oracle стоит задуматься о том, чтобы тратить меньше на маркетинг и больше на R&D?
Автор: donjenya