• Слайды курса «Технологии и разработка СУБД»



      На протяжении последнего года моя коллега Анастасия Лубенникова и я вели курс под названием «Технологии и разработка СУБД». Данный курс посвящен разработке реляционных СУБД с акцентом на конкретную реализацию в лице PostgreSQL. Мы сотрудничали сразу с несколькими ВУЗами. На ВШЭ это был обязательный предмет, рассчитанный на студентов 4-го курса (на фото студенты сдают экзамен). В ВМК МГУ это был предмет по выбору, на который ходили студенты разных курсов.
      Читать дальше →
    • PGCon 2018: фотографии, слайды, впечатления



        На прошлой неделе, с 29 мая по 1 июня, состоялась конференция PGCon 2018. PGCon проходит в Оттаве каждый год. В отличие от других конференций, посвященных PostgreSQL, PGCon позиционируется, как конференция не пользователей, а разработчиков. Это делает ее крайне важным событием в жизни проекта. Далее я хотел бы поделиться своими впечатлениями от конференции и рассказать о наиболее запомнившихся мне моментах.
        Читать дальше →
      • Что нового в PostgreSQL 11: улучшения в кастинге



          Продолжая тему новый возможностей грядущего релиза PostgreSQL 11 (предыдущие посты: раз, два, три), я хотел бы рассказать об одном небольшом, но важном изменении. Изменение это касается кастинга одних типов в другие. И, конечно же, оно касается JSONB, потому что в PostgresPro мы его очень любим!
          Читать дальше →
          • +13
          • 6,6k
          • 7
        • Что нового в PostgreSQL 11: JSONB-трансформы



            В предыдущих постах вы могли прочитать про INCLUDE-индексы и встроенный веб-поиск. Эти фичи появятся в PostgreSQL 11, релиз которого, напомню, планируется в октябре. Сегодня мне хотелось бы продолжить обзор новых фичей грядущего релиза, рассказав про JSONB-трансформы для языков PL/Python (3f44e3db) и PL/Perl (341e1661). Оба патча написаны Антоном Быковым.
            Читать дальше →
            • +27
            • 7,5k
            • 3
          • Что нового в PostgreSQL 11: встроенный веб-поиск



              Продолжая тему интересных возможностей грядущего релиза PostgreSQL 11, я хотел бы рассказать про новую встроенную функцию websearch_to_tsquery. Соответствующий патч разработали Виктор Дробный и Дмитрий Иванов, с правками от Федора Сигаева. Давайте же разберемся, что реализовано в этом патче.
              Читать дальше →
            • Что нового в PostgreSQL 11: INCLUDE-индексы

                image

                Релиз PostgreSQL 11 состоится еще не скоро, только в октябре. Но фичфриз уже наступил, а значит мы знаем, какие фичи попали в этот релиз, и можем их потестировать, собрав PostgreSQL из ветки master. Особого внимания заслуживает фича под названием INCLUDE-индексы. Патч изначально написан Анастасией Лубенниковой, а потом допилен Александром Коротковым и Федором Сигаевым. Протолкнуть его в PostgreSQL заняло «всего лишь» что-то около трех лет.
                Читать дальше →
              • Примеры реальных патчей в PostgreSQL: часть 3 из N

                • Tutorial

                Сегодня я хотел бы вновь рассказать о некоторых патчах, принятых за последнее время в PostgreSQL (а также утилиту pg_filedump). Аналогичные статьи, опубликованные на Хабре ранее, набрали достаточно много плюсиков, что заставляет думать, что они представляют для кого-то интерес. Если вы пропустили предыдущие статьи, вот они — раз, два, три. Несмотря на то, что рассмотренные патчи были написаны мной, не стоит забывать о вкладе людей, которые их ревьювили и тестировали. Проделанная этими людьми работа зачастую оказывается больше и сложнее работы самого автора. Особо активное участие в разработке рассмотренных пачтей приняли Федор Сигаев, Robert Haas, Tom Lane, Дмитрий Иванов, Григорий Смолкин, Andres Freund, Анастасия Лубенникова и Tels.

                Читать дальше →
              • Еще одна новая фича pg_filedump: восстанавливаем каталог PostgreSQL



                  В прошлой статье мы узнали, как при помощи утилиты pg_filedump можно восстановить данные, или, по крайней мере, какую-то их часть, из полностью убитой базы PostgreSQL. При этом предполагалось, что мы откуда-то знаем номера сегментов, соответствующих таблице. Если мы знаем часть содержимого таблицы, ее сегменты действительно не сложно найти, например, простым grep'ом. Однако в более общем случае это не так-то просто сделать. К тому же, предполагалось, что мы знаем точную схему таблиц, что тоже далеко не факт. Так вот, недавно мы с коллегами сделали новый патч для pg_filedump, позволяющий решить названные проблемы.

                  Читать дальше →
                • Пример восстановления таблиц PostgreSQL с помощью новой мега фичи pg_filedump



                    Позвольте я расскажу вам об одной классной фиче, которую мы с коллегами из Postgres Pro недавно запилили в утилите pg_filedump. Фича эта позволяет частично восстанавливать данные из базы, даже в случае, если база была сильно повреждена и инстанс PostgreSQL с такой базой уже не запустишь. Конечно, хочется верить, что потребность в таком функционале возникает крайне редко. Но на всякий случай нечто подобное хотелось бы иметь под рукой. Читайте дальше, и вы узнаете, как данная фича выглядит в действии.
                    Читать дальше →
                    • +45
                    • 10,6k
                    • 4
                  • ZSON: расширение PostgreSQL для прозрачного сжатия JSONB

                    • Tutorial


                    Недавно мы выложили на GitHub ZSON. ZSON — это расширение к PostgreSQL для прозрачного сжатия JSONB-документов. Сжатие осуществляется путем выделения строк, наиболее часто встречающихся в ваших документах, и построения словаря с этими строками. Притом строки могут быть не только ключами документа, но и значениями или, например, строками из вложенных массивов. В некоторых случаях ZSON позволяет уменьшить размер базы до двух раз и увеличить количество транзакций в секунду на 10%. В shared buffers документы хранятся в сжатом виде, за счет чего память тоже экономится.

                    Интересно? Читайте дальше, и вы узнаете, как пользоваться всем этим хозяйством на практике.
                    Читать дальше →
                  • Примеры реальных патчей в PostgreSQL: часть 2 из N

                    • Tutorial


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

                    Сегодня мы рассмотрим примеры уже более серьезных патчей, устраняющих узкие места в коде, исправляющих достаточно серьезные баги, относительно крупные рефакторинги, и так далее. Как и ранее, основная цель статьи — не столько осветить изменения, принятые в PostgreSQL 9.6, сколько показать, что разработка open source проектов, в частности PostgreSQL, это интересно и не так сложно, как вам это может казаться.

                    Если эта тема вам интересна, прошу под кат.
                    Читать дальше →
                  • Контрибьютим в PostgreSQL: примеры реальных патчей, часть 1 из N

                    • Tutorial


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

                    Теперь же мы рассмотрим примеры реальных патчей, принятых в PostgreSQL за последнее время. Какие-то из этих патчей были написаны непосредственно мной, при разработке других я активно участвовал в качестве ревьювера. Это сравнительно небольшие патчи. На момент написания этих строк я занимаюсь разработкой PostgreSQL менее года, и ранее разработкой СУБД я не занимался (ровно как и разработкой на языке C за деньги). Поэтому есть основания полагать, что данные патчи будут интересны новичкам, желающим начать участвовать в разработке открытых проектов, притом не обязательно именно PostgreSQL. Чтобы не писать лонгридов, статья разбита на части.

                    Заинтересовавшихся прошу проследовать под кат.
                    Читать дальше →
                  • Становимся контрибьютером в PostgreSQL

                    • Tutorial
                    PostgreSQL Logo В этой статье я хотел бы рассказать о том, как выглядит процесс разработки PostgreSQL глазами одного из контрибьютеров в этот самый PostgreSQL. Заниматься разработкой этой СУБД я начал в декабре 2015 года, когда устроился работать в компанию Postgres Professional. То есть, не так уж давно. А значит, еще свежи воспоминания о моментах, которые поначалу казались мне не вполне очевидными. Хотелось бы их законспектировать, чтобы новым людям, приходящим в нашу команду, а также всем тем, кто желает попробовать себя в роли разработчика открытой реляционной СУБД, было легче. Я расскажу о том, как выглядит процесс разработки PostgreSQL, какие инструменты я использую в своей повседневной работе, как следует оформлять патчи, и так далее. Заинтересовавшихся прошу проследовать под кат.
                    Читать дальше →
                  • Вышел первый онлайн-выпуск BSDMagazine

                      BSDMagazine

                      BSDMagazine — журнал об операционных системах семейства BSD — Free/Open/Net/DragonFly BSD, MacOS, SunOS и дистрибутивах на их основе. С недавних пор журнал перестал публиковаться на бумаге, выпуск за март 2010 является первым онлайн-изданием. Ссылка для скачивания и содержание выпуска — под катом.
                      Читать дальше →
                    • Mutt, ssmtp и отправка отчетов

                        В свое время, когда меня еще не было на Хабре, эта статья была опубликована в песочнице. К сожалению, она никому не понравилась и со временем была удалена. Долго думал, что с ней делать — забить, запостить таки на Хабре или в своем блоге Записки программиста. Решил, раз она писалась для Хабра, пусть на нем и будет опубликована. Итак, под катом — статья о практике отправки отчетов по e-mail. Сейчас, перечитывая текст, понимаю, что статья — не фонтан, но может кому-нибудь пригодится.
                        Читать дальше →
                        • +4
                        • 47,2k
                        • 5
                      • Позвольте представить — Записки программиста

                          Интернет-журнал Записки программиста главным образом посвящен таким непростым вещам, как unix-like системам (главным образом — FreeBSD) и программированию на С/C++ и Perl. Тем не менее, я стараюсь время от времени писать посты, рассчитанные на бОльшую целевую аудиторию, потому, надеюсь, блог заинтересует многих.

                          Чуть подробнее — под катом.
                          Читать дальше →
                        • FreeBSD: отчет за четвертый квартал 2009

                            На freebsd.org опубликован очередной ежеквартальный отчет о развитии проекта. Отчет состоит из 38 пунктов. Разработчики особенно отмечают выход долгожданной FreeBSD 8.0 и готовящаяся релиз FreeBSD 7.3.

                            Краткое содержание отчета:

                            • BSD-версия утилиты iconv
                            • Замена компилятора GCC на CLang
                            • Демон webcamd
                            • VirtualBox и веб-браузер Chromium появились в дереве портов
                            • Портирование фаервола pf из OpenBSD 4.5
                            • Поддержка NFSv4 ACL
                            • Перевод документации на немецкий, испанский и венгерский
                            • Бета-версия видео-драйвера NVIDIA для FreeBSD/ia64


                            Читать полностью: http://www.freebsd.org/news/status/report-2009-10-2009-12.html
                          • Mini-FAQ по Perl (Частые вопросы, ЧаВо)

                              Меня часто спрашивают, как я учил Perl — какие книги читал, какие сайты посещал и так далее. Многие считают, что Perl имеет сложный синтаксис, и потому не хотят или бояться его учить. В этом FAQ я хотел бы поделиться своим мнением относительно языка Perl.
                              Читать дальше →