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

38
PostgreSQL: ком´юніті чи бізнес Історія розвитку, розробка й впровадження 1

Upload: pavel-golub

Post on 10-Feb-2017

121 views

Category:

Software


2 download

TRANSCRIPT

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

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

Історія розвитку, розробка й впровадження

1

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

Голуб Павлоfacebook.com/pasha.golubtwitter.com/[email protected]

20162

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

GOLUB!!! SLONIK!!!

3

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

4

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

План доповіді

● Історія розвитку○ Академічний Postgres○ Версії 7.х○ Версії 8.х○ Версії 9.х

● Хакаєм Postgres○ Для чого○ Що потрібно вміти○ Спільнота○ Місце докладання зусиль○ Життя патча

● Бізнес с Postgres○ Компанії○ Послуги

● Питання і відповіді5

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

Як правильно вимовляти PostgreSQL

● SQL вимовляється як [es-que-ell] або як [sequel]

● PostgreSQL вимовляється як [post-GRES-que-ell]

6

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

Як НЕ правильно вимовляти PostgreSQL

Постгрі

7

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

Історія розвитку

8

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

Ingres

● Де?

○ University of California, Berkeley● Коли?

○ Початок 70х років● Хто?

○ Michael Stonebraker та Eugene Wong● Що?

○ INteractive Graphics REtrieval System● Ingres вимовляється як [ɪŋˈɡrɛs]

9

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

University Postgres

● Де?

○ University of California, Berkeley● Коли?

○ Початок — 1985, прототип — 1988р.● Хто?

○ Michael Stonebraker та його студенти

10

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

University Postgres

● Реалізація підтримки типів користувача

● Таблиці називались класи

● Постгрес використав багато ідей Інгрес

● Але не використав жодного рядку коду

● Вбудована мова POSTQUEL

● Пізніше проект був комерціолізований як Illustra

○ придбаний компанією Informix○ інтегрован в їх продукт Universal Server○ в 2001 придбаний IBM за 1 міліард $

11

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

University Postgres

● Мова перевершувала тогочасний SQL

● Але не задовольняла потреби галузі

● Кожна команда оперувала рядковою змінною (tuple variable)

● Синтаксис був більш “нормалізований”, ніж у SQL

● Мала вбудовані команди для імпорту\експорту даних

PostQUEL

12

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

University Postgres

range of P is PRACOWNICY

retrieve into W

(COMP = P.PLACA / (P.WIEK - 18))

where P.NAZWISKO = "Kowalski"

PostQUEL

13

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

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

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

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

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

PostgreSQL

● В 1996р. стає зрозумілим невдалий вибір назви Postgres95

● Вирішено дати нове ім’я PostgreSQL

● Повернутися до нумерування версій починаючи з проекту Postgres

● Перша гілка оновленого PostgreSQL мала версію 6.0

● Функціонує сайт www.postgresql.org

● Документація доступна для версій, починаючи з 6.3 http://www.

postgresql.org/docs/manuals/archive/

16

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

17

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

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

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

19

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

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

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

21

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

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

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

23

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

Хакаєм Постгрес

24

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

Хакаєм Постгрес

● Для чого?○ Бази даних — це круто○ Участь в ком´юніті, навіть в якості рев´ювера○ Стати кращим программістом, код ПГ — це взірець○ Можливість заробити копійку

25

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

Хакаєм Постгрес

● Що маю вміти?○ Знати plain C○ ОС не важлива○ IDE не важлива○ Все інше з´явиться з часом

26

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

Хакаєм Постгрес

● Взаємодія з ком´юніті○ Все спілкування відбувається в поштових розсилках

■ pgsql-general — загальна розсилка для всіх■ pgsql-hackers — головна розсилка■ pgsql-bugs — для роботи над багами■ pgsql-docs — робота над документацією

○ Ви маєте чітко висловлювати свою думку. Англійською○ Хороший програміст — завжди хороший письменик○ Для нагальних питань використовується IRC

27

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

Хакаєм Постгрес

● Шо можу зробити○ Код (Ядро, Баги, Інтерфейси, Додатки)○ Тестування○ Пакети (VM, vagrant, docker, liveCD etc.)○ Програми○ Переклад○ Мануали, статті, виступи, advocacy

28

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

Життя патча

29

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

Життя патча

30

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

Життя патча

● Дослідження ○ чи реалізовано?○ чи обговорювалось?○ чи потрібне?○ чи частина стандарту?○ чи можливе?○ яку користь принесе?○ скільки зусиль потрібно для підтримування?

31

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

Життя патча

● Пропозиція до спільноти на pgsql-hackers○ Отримуємо зворотній зв’язок

● Розробка специфікації○ Отримуємо зворотній зв´язок

32

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

Життя патча

● Реалізуємо WIP патчи○ Отримуємо зворотній зв’язок

● Реалізуємо бета-патч для комміт фесту○ Отримуємо зворотній зв’язок

33

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

Життя патча

● Отримуємо рев´ю● Патч приймається в реліз● Пишемо документацію

34

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

Бізнес. Як заробляти?

35

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

Бізнес. Як заробляти?

36

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

Бізнес. Як заробляти?

● Хостинг ● Обслуговування і налаштування● Тюнінг під задачі● Використання в своїх рішеннях● Створення статей і матеріалів● Курси і навчання

37

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

Запитання і відповіді

38