company_banner

PostgreSQL и задачи, с ней связанные, на HighLoad++



    Наблюдать за развитием разных баз данных — увлекательное занятие, особенно — если понимаешь подводные течения. Одно из самых сильных сообществ вокруг СУБД в России — это PostgreSQL-сообщество. Две тематические конференции в год, консалтинговая компания и даже компания-разработчик модулей к PostgreSQL.

    Руководитель и идеолог международного сообщества, Брюс Момжан, вот уже какой год приезжает к нам на HighLoad++. Этот год не исключение, Брюс будет рассказывать про «Upcoming PostgreSQL Features» — кому рассказывать про будущее этой СУБД, как не Брюсу?

    Почему же, несмотря на такую активность, это база данных по-прежнему далеко не так распространена, как, например «базулька» MySQL. В чем подвох? Эту тему мы активно обсуждали на конференции PGDay'15, которую организовал один из докладчиков HighLoad++ Илья Космодемьянский.

    Для начала небольшое исследование:
    1. Крупнейшие платные CMS в России (Битрикс, Netcat, UMI) не поддерживают PostgreSQL;
    2. Самые популярные бесплатные CMS (Wordpress, Drupal, Joomla) тоже (или поддерживают с трудом или поддерживают недавно);
    3. Только каждый третий хостинг провайдер предлагает поддержку PostgreSQL.


    Соответственно, один из важнейших каналов для привлечения неофитов в сообщество, а именно взращивание новичков через простые проекты, PostgreSQL не использует. Эта ниша плотно занята MySQL.

    С другой стороны, «Яндекс» находит всего три курса по PostgreSQL и несколько десятков по MySQL и Oracle. У последнего также существует серьезная поддержка со стороны вендора, включающая экосистему сертификаций, удобных для работодателей. То есть научиться PostgreSQL, даже если захочешь, негде.

    С третьей стороны, у сообщества PostgreSQL отличные внутренние ивенты. Но на общих отраслевых мероприятиях значительно более представлен MySQL, чем PostgreSQL. Последнее время ситуация стала выправляться, появились митапы, но в целом и этот канал привлечения новичков сообщество PostgreSQL использует слабо.

    Получается, что у нас есть хороший продукт, есть крепкое сообщество и почти полное отсутствие деятельности по вовлечению масс.

    Возникает вопрос — за счёт чего замечательный во всех отношениях PostgreSQL будет набирать армию поклонников? Просто быть замечательным недостаточно!

    Мое предложение сообществу и компаниям, в нем оперирующим — к PostgreSQL надо подходить как к продукту, его надо продавать! Продавать не в смысле получать за него деньги, а вовлекать людей им пользоваться. И делать это надо не только среди своей лояльной аудитории, а, в первую очередь, среди аудитории новой, с PostgreSQL не знакомой.

    Закономерным итогом позиции «нас все устраивает, в том числе скорость развития» будет то, что на HeadHunter и дальше на одно резюме с PostgreSQL будет приходиться 5 резюме с MySQL и 10 упоминанием с Oracle, как приходится сейчас.

    Поможем немного сообществу? Дело кармической важности.

    Прошлые года


    Пара примеров докладов от самих двух организаторов двух конференций по PostgreSQL в России. Вот такие гранды на HighLoad++!





    Текущий год




    О докладах на этот год, да и вообще о том, что происходит в мире PostgreSQL-движения лучше всего расскажет член Программного комитета, организатор многочисленных митапов по этой СУБД Николай Самохвалов.

    — Развитие PostgreSQL за последний год и успехи?
    Успехи очень обширные. Налицо высокая популярность, которая продолжает расти — и в мире, и в России.

    Прошлогодний релиз PostgreSQL 9.4 позволил спозиционировать эту СУБД не только как надёжную и производительную реляционную систему с богатыми возможностями, но и теперь уже как NoSQL-систему. Грубо говоря, если раньше конкурировали с MySQL (и по тенденции последних лет 5 мы видим, что очень даже успешно), то теперь — с новомодными NoSQL-СУБД, в частности, с MongoDB. Причём реализация JSON-типов данных в Постгресе позволила ему войти в эту нишу сразу с богатейшей индексной поддержкой, надёжной репликацией, предсказуемым поведением и отличной производительностью. Кстати, о последней — тесты многих компаний показывают, что PostgreSQL смотрится более предпочтительно.

    Параллельно в мире последние годы планомерно развивается ещё один фронт, где играет Постгрес — это конкуренция с СУБД промышленного (Enterprise) уровня. Есть такое мнение: как и на рынке ОС в своё время открытые системы (прежде всего, с появлением Linux) заняли прочное место, по очень многим возможностям ничуть не проигрывая — а зачастую и выигрывая — у коммерческих ОС, так и на рынке СУБД. PostgreSQL обрастает всё более серьёзными возможностями. При этом он много десятилетий (первый коммит в проект в том виде, в котором мы его знаем, состоялся ещё в июле 1996-го).

    Поэтому приходит время его уверенной игры в средних и крупных компаниях.

    — Значение PostgreSQL в России и значимость HighLoad++?
    PostgreSQL теперь в России имеет особенное значение. С недавних пор страна живёт в условиях санкций. Именно по этим причинам интерес к PostgreSQL стал расти лавинообразно. Я это почувствовал в прошлом году, когда, перезапустив нашу meetup-группу под брендом #PostgreSQLRussia, спустя несколько месяцев с удивлением осознал, что мы теперь 3-и в мире по численности среди всех локальных сообществ в мире.

    При этом в дело вступили серьёзные игроки. Всё более активно используется Postgres в «Яндексе» (кстати, один из докладов от компании Postgres Professional на Highload++ будет в том числе об этом опыте), ему доверяют свой бизнес такие крупные компании, как Авито (крупнейший в Европе сервис частных объявлений, от них будет два доклада) и Headhunter (крупный сайт по поиску работы, на конференции они расскажут о мониторинге серверов, в том числе баз данных).

    На встречи сообщества также всё чаще приходят представители государственных организаций, банков. Некоторые из них уже вовсю используют Постгрес — надеюсь, скоро мы увидим доклады.

    Что касается Highload++, то так сложилось, что вот уже много лет, несмотря ни на что, нам удаётся «вытаскивать» отличных зарубежных докладчиков. Вот и в этот раз мы увидим отличные доклад по PostgreSQL — приедут эксперты из Испании, Германии и США.

    Конечно же, стоит упомянуть и то, что будут доклады и от представителей двух отечественных компаний, бизнес которых целиком связан с Постгресом — это DBA-эксперты PostgreSQL-Consuting.com и быстро растущая команда Олега Бартунова Postgres Professional. Каждая компания представит сразу несколько докладов.

    Подводя итог, хочу сказать, что растущая активность PostgreSQL-докладчиков на конференции Highload++ – это просто отражение реально растущего интереса к этой системе и в России, и в мире.



    Из Postgres-докладов Highload++ 2015 можно легко было бы создать однодневную конференцию.
    Программному комитету пришлось нелегко — в этой нише конкурс заявок превысил 3 доклада на место.

    Одна из основных тем — горизонтальное масштабирование PostgreSQL. По ней отобрано сразу три доклада:
    • Олег Бартунов, Александр Коротков, Федор Сигаев, Postgres Professional. Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в «Постгресе»
    • Bruce Momjian. The Future of Postgres Sharding
    • Алексей Клюкин, Zalando. Spilo, отказоустойчивый PostgreSQL-кластер

    Создание надёжного и эффективного кластера — одна из главных задач, поставленных перед созданной в начале этого года компанией Postgres Professional. Задача очень объёмная и предстоит ещё многое сделать, и очень интересно будет услышать, как продвигается её решение силами команды, собранной Олегом Бартуновым.

    Завсегдатай конференции, сооснователь проекта PostgreSQL Брюс Момжан (Bruce Momjian) расскажет посетителям, что вообще представляет из себя задача горизонтального масштабирования, какие решения существуют в экосистеме Postgres-а и что стоит ожидать в ближайшем будущем.



    Ну и, наконец, Алексей Клюкин из крупнейшего онлайн-ритейлера Европы Zalando SE (ETR: ZAL) поделится опытом своей компании в области масштабирования баз данных Postgres. Стоит ли упоминать, что рассказ из первых рук о решении на базе Open Source, успешно применяемом в очень крупном бизнесе, — это безумно интересно.

    Рядом с темой масштабирования особняком стоит доклад испанского докладчика Альваро Хернандеса (Alvaro Hernandez) «ToroDB: scaling PostgreSQL like MongoDB». ToroDB – это СУБД на базе PostgreSQL, которая совместима с MongoDB и может заменить её в уже созданных приложениях.

    Совсем скоро выходит PostgreSQL 9.5, содержащая ряд отличных новшеств и ожидаемых улучшений. Обзор — в докладе Ильи Космодемьянского из PostgreSQL-Consulting «Что нового и полезного в PostgreSQL 9.5».

    Учитывая опыт Ильи, стоит ожидать не просто перечисление, а прагматичную и трезвую оценку каждой новинки с точки зрения DBA-практика. Для тех, кто хочет научиться быстро понимать, что происходит в «Постгресе» в критических ситуациях, почему база «тормозит» и «кто виноват» — доклад Алексея Лесовского (также PostgreSQL-Consulting) «Deep dive into PostgreSQL internal statistics».

    Компании «Яндекс» было мало существующих средств мониторинга PostgreSQL. Как следствие, совместно с разработчиками из Postgres Professional было создано специальное решение (конечно же, уже доступное на Github), о котором пойдёт речь в докладе Ильдуса Курбангалиева «Мониторинг ожиданий в PostgreSQL».

    И напоследок, ещё несколько докладов, затрагивающих не только СУБД, но и многие компоненты «вокруг», из опыта крупных проектов:


    И последнее: Для пользователей «Хабрахабра» конференция предлагает специальную скидку в 15%, всё что нужно сделать — это воспользоваться кодом "IAmHabr" при бронировании билетов.
    Конференции Олега Бунина (Онтико)
    640,00
    Конференции Олега Бунина
    Поделиться публикацией

    Комментарии 46

      +1
      ---не так распространена, как, например «базулька» MySQL.

      Некрасиво господа писатели. Имейте мужество признавать поражение.
        +1
        Да никто и не гониться за MySQL, у него своя ниша, у PostgreSQL — своя, об этом и говорится в статье.
          +12
          Это не я сказал, это сказал пару десятков лет назад Игорь Сысоев :)
          И это шутка, все же понимают :)
            0
            Не пару десятков, а еще лет 7 назад это была горькая правда.
            Назвать mysql реляционной СУБД до 5 версии язык не повернется — именно что «базулька».
          +8
          Почему же, несмотря на такую активность, это база данных по-прежнему далеко не так распространена


          Одну из причин я знаю совершенно точно. Что не ищешь в поисковие по PostgreSQL, попадаешь на дебильные списки рассылок. Кто-то конечно привык, но какой век на дворе? Хочется видеть knowledge base article с описанием симптомов и решением проблемы.
            0
            Вот по этому сейчас в списке рассылки огромный «срач» на тему баг трекера. Который к сожалению вылился в ещё больший бред.
            Пока ключевым разработчикам ~>50 лет изменений в области ждать не стоит ИМХО.
              –2
              и как же это хорошо!
            +3
            Такое ощущение, что на хайлоаде будет только постгрес.
              –1
              Самое печальное то, что на реальном highload нету postgres и близко.
                0
                На реальном? А как же твиттер
                +3
                Слишком голосновно :)
                  0
                  Буду рад если вы опровергните мое высказывание своими знаниями. Приведите примеры (кроме инстраграмма)
                    +2
                    Zalando (Крупнейший в Европе интернет-магазин одежды)
                    Avito (Крупнейший в Европе классифайд)

                    Это только из докладчиков HL++ этого года.
                    PostgreSQL меньше распространён, это действительно так, но это серьёзная СУБД для реализации серьезных задач.
                      0
                      Skype, LastFM?
                        0
                        tripadvisor — как бы ноукоментс, у них pg там везде, и очередь картинок даже (с картинками внутри)

                        www.pgconfsv.com/sessions/heart-giant-postgres-tripadvisor

                        Real time main site anomaly detection database that ingests 87,000 tuples per second.
                        там норм по лоаду.

                        ! и — это заблуждение колоссальное про кеши, так как запись не закешируешь
                      0
                      В чистом виде MySQL то же нету.
                      А так его к примеру Reddit юзает github.com/reddit/reddit/wiki/Architecture-Overview
                        0
                        В принципе в highload проекте можно использовать любую СУБД, хоть h2 или даже свою файловую. Говорить «Мы используем Postgres» хитрость огромная, т.к. скорее всего у вас над базой еще миллион кэшей есть, которые не дают нагружать базу по полной.
                          0
                          Различия в БД тогда в первую очередь про «удобство».
                        +1
                        Самое печальное то, что на реальном highload нету postgres и близко


                        А 7 тысяч транзакций в секунду — это highload или нет?
                      +7
                      Нет, не так, следующий рассказ про MySQL. А там ещё круче — там докладчики из Alibaba и Facebook!
                        +1
                        привезем зимой доклад от alibaba на pgconf.ru, у них куча postgres а
                      0
                      Около 5 лет плотно перешел на Postgres. Как же я попал в мейнстрим:)
                        0
                        Мы уже пару лет пытаемся внедрить postgesql но начальство упорно не хочет перемен. Так вот и живем на mysql и очень очень древнем.
                          0
                          3.23?!
                          0
                          Получается, что у нас есть хороший продукт, есть крепкое сообщество и почти полное отсутствие деятельности по вовлечению масс.

                          Возникает вопрос — за счёт чего замечательный во всех отношениях PostgreSQL будет набирать армию поклонников? Просто быть замечательным недостаточно!

                          Поможем немного сообществу? Дело кармической важности.


                          Вы забываете, что для вас, и вашей компании это дело в первую очередь финансовой важности. И закидываете пробный шар — может найдутся бесплатные евангелисты? Не продали.
                            +6
                            Почему для нас это дело коммерческой важности? Мы не продаём PostgreSQL, не зарабатываем на нём, даже курсы по PostgreSQL не продаём, не консультируем по этой СУБД. В общем, мимо.
                              +3
                              Тогда приношу вам искренние извинения. Я пробежался по вашему сайту и сделал неверные выводы.

                              Сейчас многие коммерческие компании играют в сомнительные игры с ИТ-сообществом, прикрывая простой коммерческий интерес разными благими идеями.

                              Удачи вам и вашей компании.
                            +3
                            Небольшое, но важное замечание от пресс-службы Postgres Professional: мы не просто молодая компания и быстро растущая команда. Postgres Professional — российский вендор PostgreSQL.
                              +1
                              мы не просто молодая компания и быстро растущая команда. Postgres Professional — российский вендор PostgreSQL.


                              «Отшельник, подвижник, но не святой...»
                              0
                              При всем уважении, позиционировать Postgres как замену Mongodb рановато, по-моему, учитывая что из коробки нет даже базовых апдейтов индивидуального элемента, если конечно я ничего не упустил из последних новостей…
                                +1
                                В 9.5 есть:
                                jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
                                Returns target with the section designated by path replaced by new_value, or with new_value added if create_missing is true ( default is true) and the item designated by path does not exist. As with the path orientated operators, negative integers that appear in path count from the end of JSON arrays.


                                www.postgresql.org/docs/9.5/static/functions-json.html
                                  0
                                  спасибо, вот видите — упустил новости :)
                                0
                                Жду с нетерпением UPSERT в версии 9.5. Захожу на страничку Roadmap по два раза в день. Альфу/бету ставить очень не хочется, жду полноценного релиза, а пока приходится пользоваться костылями. А в остальном и прочем — прекрасная СУБД, и действительно непонятно, почему тот же Wordpress не реализует ее поддержку — приходится одновременно крутить и MySQL и PostgreSQL на одном VPS.
                                  +1
                                  ИМХО так как для дружбы PHP и Postgres нужен ещё пулер сессий, с этим не хотят заморачиваться хостеры да и все остальные в PHP мире.
                                    0
                                    действительно непонятно, почему тот же Wordpress не реализует ее поддержку

                                    В свое время MySQL успел занять «рынок». Поэтому удивляться отсутствию поддержке от того или иного вендора не стоит. Занятый рынок в отсутствии катаклизмов (а их не предвидится, MySQL просто так не может внезапно исчезнуть) очень инертен.
                                      +1
                                      В целом согласен… в эту картинку укладывается и то, что эти CMS все поголовно на PHP, а не на модных JS,Go,Rust,Python,Ruby,D…
                                    0
                                    Возникает вопрос — за счёт чего замечательный во всех отношениях PostgreSQL будет набирать армию поклонников? Просто быть замечательным недостаточно!

                                    Надо напомнить взрослым Дядькам, что каждый человек, который принимает решения обязательно когда-то был школьником. В дистрибутив к постргесу достаточно вложить gui уровня хотябы микрософт акцесса 90-х годов и подождать лет 10. И тогда армия поклонников-школьников будет ставить везде и всюду и его тоже.

                                    Пока что жизнь большинства людей какбы незаметно так проходит в обход PostgreSQL…
                                      0
                                      А что, в дистрибутивах MySQL нынче есть GUI? Когда я был школьником, мы ставили Denver с phpMyAdmin. Сейчас с PostgreSQL должно быть как минимум не сложнее.
                                        0
                                        Да, после того как кто-то там купил MySQL, стало можно рисовать бд и рисунки даже сохранять, а потом сравнивать со структурой бд и синхронизировать по ним саму базу, выбирая какие расхождения учесть, а что оставить в покое. И каждый из этих процессов работает в любую сторону. Не сказать, что без глюков, но на уровень школьника отрабатывает, в ютубе есть соответствующие мультяшки.

                                        Для постгреса тоже бывают зачетные и некошмарные гуи, но они не входят в дистрибутив, а порой, вообще, денег просят.

                                        С тех времен, когда вы были школьником, мир школьника немного изменился в том плане, что раньше сайты на PHP нельзя было клепать под бд акцес97, а сейчас есть гуи для mySQL, т.е. я говорю о том, что необходимость использования грубой силы 14-тилетними (когда прописываются рефлексы) детьми отпала, так что постгресу можно только посочувствовать, ведь он сделал все чтобы его боялись на уровне подсознания и лени.

                                        Ну, и, таким образом, общие массы с детства сидят на mySQL и не парятся даже и думать, чтобы как-то пересечься со с л о в о м postgreSQL, а ведь именно для них и делаются все эти битриксы, джумлы и друпалы.
                                          0
                                          Небольшой оффтоп: учителя говорят, что сейчас дети наоборот быстрее развиваются и умнее не по годам. По крайней мере, самые умные 5-10-20 процентов. То есть, может, идет поляризация: умные еще умнее, глупые еще глупее, а может просто все умнее.
                                            0
                                            Когда их отпустили в свободное плавание, 95% действительно откололось от льдины и поплыло ниже по течению (если смотреть на кривую распределения, то наверняка там уже два максимума), но я и не про это. Мир у всех школьников один и он немножко поменялся. Я говорю о месте постгреса в этом развивающемся мире, в этом мире в глазах детей он проигрывает и они привыкают не к нему.

                                            А то что 1% самых умных может рулить всеми процессами на Земле — это может и так, но, если, как сейчас, эти одаренные будут ходить и рекламировать преимущества своей субд на своих конференциях, общей погоды это не изменит. Это все равно, что пользователю ОС с мышкой, рассказывать про ОС с моргающим на черном фоне курсором, поздно — рефлексы уже сформировались. Хотите привлечь массы — будьте добры запрограммировать мышку.

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое