SlideShare a Scribd company logo
1 of 38
Download to read offline
PostgreSQL:
ком´юніті чи
бізнес
Історія розвитку, розробка й
впровадження
1
Голуб Павло
facebook.com/pasha.golub
twitter.com/pasha_golub
pavel@microolap.com
2016
2
GOLUB!!! SLONIK!!!
3
4
План доповіді
● Історія розвитку
○ Академічний Postgres
○ Версії 7.х
○ Версії 8.х
○ Версії 9.х
● Хакаєм Postgres
○ Для чого
○ Що потрібно вміти
○ Спільнота
○ Місце докладання зусиль
○ Життя патча
● Бізнес с Postgres
○ Компанії
○ Послуги
● Питання і відповіді
5
Як правильно вимовляти PostgreSQL
● SQL вимовляється як [es-que-ell] або як [sequel]
● PostgreSQL вимовляється як [post-GRES-que-ell]
6
Як НЕ правильно вимовляти PostgreSQL
Постгрі
7
Історія розвитку
8
Ingres
● Де?
○ University of California, Berkeley
● Коли?
○ Початок 70х років
● Хто?
○ Michael Stonebraker та Eugene Wong
● Що?
○ INteractive Graphics REtrieval System
● Ingres вимовляється як [ɪŋˈɡrɛs]
9
University Postgres
● Де?
○ University of California, Berkeley
● Коли?
○ Початок — 1985, прототип — 1988р.
● Хто?
○ Michael Stonebraker та його студенти
10
University Postgres
● Реалізація підтримки типів користувача
● Таблиці називались класи
● Постгрес використав багато ідей Інгрес
● Але не використав жодного рядку коду
● Вбудована мова POSTQUEL
● Пізніше проект був комерціолізований як Illustra
○ придбаний компанією Informix
○ інтегрован в їх продукт Universal Server
○ в 2001 придбаний IBM за 1 міліард $
11
University Postgres
● Мова перевершувала тогочасний SQL
● Але не задовольняла потреби галузі
● Кожна команда оперувала рядковою змінною (tuple variable)
● Синтаксис був більш “нормалізований”, ніж у SQL
● Мала вбудовані команди для імпортуекспорту даних
PostQUEL
12
University Postgres
range of P is PRACOWNICY
retrieve into W
(COMP = P.PLACA / (P.WIEK - 18))
where P.NAZWISKO = "Kowalski"
PostQUEL
13
University Postgres
create student(name = c10, age = i4, sex = c1, state = c2)
range of s is student
append to s (name = "philip", age = 17, sex = "m", state = "FL")
retrieve (s.all) where s.state = "FL"
replace s (age=s.age+1)
delete s where s.name="philip"
copy student(name=c0, comma=d1, age=c0, comma=d1, sex=c0, nl=d1)
into "/student.txt"
PostQUEL
14
Postgres95
● В 1994р. Andrew Yu та Jolly Chen змінили мову на SQL
● Впровадили новий консольний клієнт psql
● Опубликували вихідний код в web
● Postgres95 це наслідник останньої офіційної гілки Postgres v.4.2
● В 1996р. Marc Fournier з Hub.org піднімає перший сервер для розробки
● Першими контріб’юторами стали Bruce Momjian та Вадим Міхєєв
● Postgres стає повноцінним open source проектом
15
PostgreSQL
● В 1996р. стає зрозумілим невдалий вибір назви Postgres95
● Вирішено дати нове ім’я PostgreSQL
● Повернутися до нумерування версій починаючи з проекту Postgres
● Перша гілка оновленого PostgreSQL мала версію 6.0
● Функціонує сайт www.postgresql.org
● Документація доступна для версій, починаючи з 6.3 http://www.
postgresql.org/docs/manuals/archive/
16
17
PostgreSQL 7.x
● Foreign Keys
● JOINs
● Schemas
● Full-text indexing
● Реалізація WAL (write ahead log)
● TOAST (The Oversized-Attribute Storage Technique)
● Процедурні мови, включаючи PL/PGSQL
● i18n та l10n
● Prepared Queries
● Interfaces
● SQL-standard information schema
18
19
PostgreSQL 8.x
● Підтримка Windows
● Savepoints
● PITR (Point-In-Time Recovery)
● Tablespaces
● Role system that replaces users and groups
● Index creation without blocking concurrent
● Support for the SQL/XML
● ENUM and UUID
● Windowing Functions
● Common Table Expressions and Recursive Queries
20
21
PostgreSQL 9.x
● Built-in replication
● Deferrable unique constraints
● Exclusion constraints
● pg_upgrade
● Foreign tables
● Extensions
● Index-only scans
● Range data types
● JSON and JSONB data types
● Materialized views
● Row-level security control
● BRIN and SP-GIST indexes
22
23
Хакаєм Постгрес
24
Хакаєм Постгрес
● Для чого?
○ Бази даних — це круто
○ Участь в ком´юніті, навіть в якості рев´ювера
○ Стати кращим программістом, код ПГ — це взірець
○ Можливість заробити копійку
25
Хакаєм Постгрес
● Що маю вміти?
○ Знати plain C
○ ОС не важлива
○ IDE не важлива
○ Все інше з´явиться з часом
26
Хакаєм Постгрес
● Взаємодія з ком´юніті
○ Все спілкування відбувається в поштових розсилках
■ pgsql-general — загальна розсилка для всіх
■ pgsql-hackers — головна розсилка
■ pgsql-bugs — для роботи над багами
■ pgsql-docs — робота над документацією
○ Ви маєте чітко висловлювати свою думку. Англійською
○ Хороший програміст — завжди хороший письменик
○ Для нагальних питань використовується IRC
27
Хакаєм Постгрес
● Шо можу зробити
○ Код (Ядро, Баги, Інтерфейси, Додатки)
○ Тестування
○ Пакети (VM, vagrant, docker, liveCD etc.)
○ Програми
○ Переклад
○ Мануали, статті, виступи, advocacy
28
Життя патча
29
Життя патча
30
Життя патча
● Дослідження
○ чи реалізовано?
○ чи обговорювалось?
○ чи потрібне?
○ чи частина стандарту?
○ чи можливе?
○ яку користь принесе?
○ скільки зусиль потрібно для підтримування?
31
Життя патча
● Пропозиція до спільноти на pgsql-hackers
○ Отримуємо зворотній зв’язок
● Розробка специфікації
○ Отримуємо зворотній зв´язок
32
Життя патча
● Реалізуємо WIP патчи
○ Отримуємо зворотній зв’язок
● Реалізуємо бета-патч для комміт фесту
○ Отримуємо зворотній зв’язок
33
Життя патча
● Отримуємо рев´ю
● Патч приймається в реліз
● Пишемо документацію
34
Бізнес. Як заробляти?
35
Бізнес. Як заробляти?
36
Бізнес. Як заробляти?
● Хостинг
● Обслуговування і налаштування
● Тюнінг під задачі
● Використання в своїх рішеннях
● Створення статей і матеріалів
● Курси і навчання
37
Запитання і відповіді
38

More Related Content

Similar to PostgreSQL: ком´юніті чи бізнес - 2016

Андрій Корнілов Asterisk
Андрій Корнілов AsteriskАндрій Корнілов Asterisk
Андрій Корнілов AsteriskLviv Startup Club
 
Як робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історієюЯк робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історієюAleksandr Brychuk
 
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....HOWWEDOIT
 
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.Василь Тереховський
 
Kardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessKardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessLviv Startup Club
 
"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov
"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov
"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro PopovFwdays
 

Similar to PostgreSQL: ком´юніті чи бізнес - 2016 (7)

Андрій Корнілов Asterisk
Андрій Корнілов AsteriskАндрій Корнілов Asterisk
Андрій Корнілов Asterisk
 
Як робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історієюЯк робити рефакторинг в продукті з бурхливою історією
Як робити рефакторинг в продукті з бурхливою історією
 
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
Багаті спадкоємці, або як робити рефакторинг у продукті з бурхливою історією....
 
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
Урок 65. Вибір теми проекту. Його планування. Добір ресурсів.
 
Kardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocessKardash victor kardash unisenderprocess
Kardash victor kardash unisenderprocess
 
3 клас урок 28 як створювати програми
3 клас урок 28 як створювати програми3 клас урок 28 як створювати програми
3 клас урок 28 як створювати програми
 
"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov
"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov
"Shape Up: How to Develop Quickly and Avoid Burnout", Dmytro Popov
 

PostgreSQL: ком´юніті чи бізнес - 2016

  • 4. 4
  • 5. План доповіді ● Історія розвитку ○ Академічний Postgres ○ Версії 7.х ○ Версії 8.х ○ Версії 9.х ● Хакаєм Postgres ○ Для чого ○ Що потрібно вміти ○ Спільнота ○ Місце докладання зусиль ○ Життя патча ● Бізнес с Postgres ○ Компанії ○ Послуги ● Питання і відповіді 5
  • 6. Як правильно вимовляти PostgreSQL ● SQL вимовляється як [es-que-ell] або як [sequel] ● PostgreSQL вимовляється як [post-GRES-que-ell] 6
  • 7. Як НЕ правильно вимовляти PostgreSQL Постгрі 7
  • 9. Ingres ● Де? ○ University of California, Berkeley ● Коли? ○ Початок 70х років ● Хто? ○ Michael Stonebraker та Eugene Wong ● Що? ○ INteractive Graphics REtrieval System ● Ingres вимовляється як [ɪŋˈɡrɛs] 9
  • 10. University Postgres ● Де? ○ University of California, Berkeley ● Коли? ○ Початок — 1985, прототип — 1988р. ● Хто? ○ Michael Stonebraker та його студенти 10
  • 11. University Postgres ● Реалізація підтримки типів користувача ● Таблиці називались класи ● Постгрес використав багато ідей Інгрес ● Але не використав жодного рядку коду ● Вбудована мова POSTQUEL ● Пізніше проект був комерціолізований як Illustra ○ придбаний компанією Informix ○ інтегрован в їх продукт Universal Server ○ в 2001 придбаний IBM за 1 міліард $ 11
  • 12. University Postgres ● Мова перевершувала тогочасний SQL ● Але не задовольняла потреби галузі ● Кожна команда оперувала рядковою змінною (tuple variable) ● Синтаксис був більш “нормалізований”, ніж у SQL ● Мала вбудовані команди для імпортуекспорту даних PostQUEL 12
  • 13. University Postgres range of P is PRACOWNICY retrieve into W (COMP = P.PLACA / (P.WIEK - 18)) where P.NAZWISKO = "Kowalski" PostQUEL 13
  • 14. University Postgres create student(name = c10, age = i4, sex = c1, state = c2) range of s is student append to s (name = "philip", age = 17, sex = "m", state = "FL") retrieve (s.all) where s.state = "FL" replace s (age=s.age+1) delete s where s.name="philip" copy student(name=c0, comma=d1, age=c0, comma=d1, sex=c0, nl=d1) into "/student.txt" PostQUEL 14
  • 15. Postgres95 ● В 1994р. Andrew Yu та Jolly Chen змінили мову на SQL ● Впровадили новий консольний клієнт psql ● Опубликували вихідний код в web ● Postgres95 це наслідник останньої офіційної гілки Postgres v.4.2 ● В 1996р. Marc Fournier з Hub.org піднімає перший сервер для розробки ● Першими контріб’юторами стали Bruce Momjian та Вадим Міхєєв ● Postgres стає повноцінним open source проектом 15
  • 16. PostgreSQL ● В 1996р. стає зрозумілим невдалий вибір назви Postgres95 ● Вирішено дати нове ім’я PostgreSQL ● Повернутися до нумерування версій починаючи з проекту Postgres ● Перша гілка оновленого PostgreSQL мала версію 6.0 ● Функціонує сайт www.postgresql.org ● Документація доступна для версій, починаючи з 6.3 http://www. postgresql.org/docs/manuals/archive/ 16
  • 17. 17
  • 18. PostgreSQL 7.x ● Foreign Keys ● JOINs ● Schemas ● Full-text indexing ● Реалізація WAL (write ahead log) ● TOAST (The Oversized-Attribute Storage Technique) ● Процедурні мови, включаючи PL/PGSQL ● i18n та l10n ● Prepared Queries ● Interfaces ● SQL-standard information schema 18
  • 19. 19
  • 20. PostgreSQL 8.x ● Підтримка Windows ● Savepoints ● PITR (Point-In-Time Recovery) ● Tablespaces ● Role system that replaces users and groups ● Index creation without blocking concurrent ● Support for the SQL/XML ● ENUM and UUID ● Windowing Functions ● Common Table Expressions and Recursive Queries 20
  • 21. 21
  • 22. PostgreSQL 9.x ● Built-in replication ● Deferrable unique constraints ● Exclusion constraints ● pg_upgrade ● Foreign tables ● Extensions ● Index-only scans ● Range data types ● JSON and JSONB data types ● Materialized views ● Row-level security control ● BRIN and SP-GIST indexes 22
  • 23. 23
  • 25. Хакаєм Постгрес ● Для чого? ○ Бази даних — це круто ○ Участь в ком´юніті, навіть в якості рев´ювера ○ Стати кращим программістом, код ПГ — це взірець ○ Можливість заробити копійку 25
  • 26. Хакаєм Постгрес ● Що маю вміти? ○ Знати plain C ○ ОС не важлива ○ IDE не важлива ○ Все інше з´явиться з часом 26
  • 27. Хакаєм Постгрес ● Взаємодія з ком´юніті ○ Все спілкування відбувається в поштових розсилках ■ pgsql-general — загальна розсилка для всіх ■ pgsql-hackers — головна розсилка ■ pgsql-bugs — для роботи над багами ■ pgsql-docs — робота над документацією ○ Ви маєте чітко висловлювати свою думку. Англійською ○ Хороший програміст — завжди хороший письменик ○ Для нагальних питань використовується IRC 27
  • 28. Хакаєм Постгрес ● Шо можу зробити ○ Код (Ядро, Баги, Інтерфейси, Додатки) ○ Тестування ○ Пакети (VM, vagrant, docker, liveCD etc.) ○ Програми ○ Переклад ○ Мануали, статті, виступи, advocacy 28
  • 31. Життя патча ● Дослідження ○ чи реалізовано? ○ чи обговорювалось? ○ чи потрібне? ○ чи частина стандарту? ○ чи можливе? ○ яку користь принесе? ○ скільки зусиль потрібно для підтримування? 31
  • 32. Життя патча ● Пропозиція до спільноти на pgsql-hackers ○ Отримуємо зворотній зв’язок ● Розробка специфікації ○ Отримуємо зворотній зв´язок 32
  • 33. Життя патча ● Реалізуємо WIP патчи ○ Отримуємо зворотній зв’язок ● Реалізуємо бета-патч для комміт фесту ○ Отримуємо зворотній зв’язок 33
  • 34. Життя патча ● Отримуємо рев´ю ● Патч приймається в реліз ● Пишемо документацію 34
  • 37. Бізнес. Як заробляти? ● Хостинг ● Обслуговування і налаштування ● Тюнінг під задачі ● Використання в своїх рішеннях ● Створення статей і матеріалів ● Курси і навчання 37