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

Post on 10-Feb-2017

121 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

1

Голуб Павлоfacebook.com/pasha.golubtwitter.com/pasha_golubpavel@microolap.com

20162

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

top related