Slide 1

Slide 1 text

Passado, Presente e Futuro Uma visão histórica do PostgreSQL

Slide 2

Slide 2 text

Agenda ● 60’s - Os primeiros bancos de dados ● 70’s - A Teoria Relacional ● 80’s - O surgimento do Postgres ● 90’s - De Berkeley para o mundo ● 00’s - O fortalecimento da comunidade ● 10’s - Brigando com gigantes ● 20's - Novos modelos de negócio ● E o futuro?

Slide 3

Slide 3 text

Num passado muito muito distante…. surge a IBM

Slide 4

Slide 4 text

Surge a IBM ● 1884 - Herman Hollerith cria a “Tabulating Machine Company”, com uma máquina de tabular dados para o censo demográfico de 1890 nos EUA usando cartões perfurados ● 1911 - É criada a Computing-Tabulating-Recording Company (CTR) ● 1924 - A CTR muda o nome para International Business Machine

Slide 5

Slide 5 text

Os anos 60 ● A era dos mainframes e supercomputadores ● Computadores passar a ter uso civil além de militar ● Surgimento dos primeiros HD’s na IBM ● Surgimento dos primeiros SGDBs ● Surgimento da cultura Hacker, particularmente no MIT

Slide 6

Slide 6 text

Onde guardar os dados ● Antes dos anos 60 ○ Cartões perfurados ○ Tambor magnético ○ Fitas magnéticas (acesso sequencial) ● A partir dos anos 60 ○ Discos magnéticos (acesso aleatório)

Slide 7

Slide 7 text

IBM 350 ● Lançado em 1956 ● 4,4MB ● 50 discos de 61cm ● 2 cabeças de leitura ● 1200rpm ● 8,8KB/s ● seek time 600ms ● 5KVA ● 971Kg ● 150cm X 170cm X 70cm ● USD 9.200 em 1956 ou USD 88.000 em 2019 crescimento máximo

Slide 8

Slide 8 text

Como guardar os dados ● Antes do anos 60 ○ Arquivos texto com campos de tamanho fixo ○ Acesso a dados feitos 100% via código na aplicação ● A partir dos anos 60 ○ Modelo em rede ou navegacional ○ Modelo hierárquico ○ (COBOL -> CODASYL) ○ Primeiros SGDBs (Sistemas Gerenciadores de Bancos de Dados)

Slide 9

Slide 9 text

IBM Information Management System ○ ● Criado pela IBM para o projeto Apolo da NASA em 1966 ● Seu maior legado foi ter atrasado os planos da IBM em adotar o modelo relacional

Slide 10

Slide 10 text

Edgar Frank “Ted” Codd

Slide 11

Slide 11 text

Edgar Frank “Ted” Codd Algumas publicações na IBM: ● 1969 - Derivability, Redundancy and Consistency of Relations Stored in Large Data Banks. (publicação interna na IBM) ● 1970 - A Relational Model of Data for Large Shared Data Banks ● 1971 - A Data Base Sublanguage Founded on the Relational Calculus ● 1972 - Relational Completeness of Data Base Sublanguages ● 1974 - Interactive Support for Non-Programmers: The Relational and Network Approaches (c/ C. J. Date) ● 1981 - The Capabilities of Relational Database Management Systems https://dblp.org/pers/hd/c/Codd:E=_F=

Slide 12

Slide 12 text

Michael Ralph Stonebraker

Slide 13

Slide 13 text

Michael Ralph Stonebraker ● 1971 - Professor na Universidade de Berkeley ● 1973 - Interactive Graphics and Retrieval System ou INGRES ● 1980 - Relational Technology Incorporated ● ⇒ Ingres ⇒ ASK Computer Systems ⇒ Computer Associates ⇒ Ingres Corporation ⇒ Actian ⇒ ParAccel ⇒ Actian X ● 1986 - POST inGRES ● 1992 - Illustra Information Technologies ⇒ Informix ⇒ IBM ● 1996 - Cohera (Mariposa) ⇒ PeopleSoft ⇒ Oracle

Slide 14

Slide 14 text

Michael Ralph Stonebraker ● 2001 - Professor no MIT ● 2003 - StreamBase Systems ⇒ TIBCO Software ● 2005 - Vertica (C-Store) ⇒ HP ● 2006 - Morpheus ● 2007 - H-Store and VoltDB ● 2008 - Paradigm4 (SciDB) ● 2009 - VoltDB (H-Store) ● 2013 - Tamr

Slide 15

Slide 15 text

Os anos 70 Projeto Ingres System-R (DB2) Oracle Mantenedor Berkeley University IBM Software Development Laboratories (SDL) Início 1973 1974 1977 Primeira versão 1974 1977 1979 Linguagem QUEL SEQUEL (SQL) SEQUEL (SQL) Plataforma Mini Mainframe Mini

Slide 16

Slide 16 text

SQL X QUEL "Along those lines, there was this whole other development, which was the INGRES project at U.C. Berkeley. The INGRES project had a language called QUEL. They started a company that implemented QUEL. QUEL fought SQL tooth-and-nail, and explained how QUEL was better than SQL in many different ways, and in fact it is better at doing aggregates. There are lots of areas where QUEL is better. Some people at Ingres now feel that the reason that they were less than successful is because they fought SQL rather than embraced it, so this gave Oracle a chance to differentiate themselves. " Jim Gray, em “The 1995 SQL Reunion: People, Projects, and Politics” https://www.mcjones.org/System_R/SQL_Reunion_95/SRC-1997-018.pdf

Slide 17

Slide 17 text

INGRES Os herdeiros do INGRES: ● Informix ● Sybase ● SQL Server ● NonStop SQL ● Postgres

Slide 18

Slide 18 text

Fases do INGRES / Postgres ● 1973 a 1985: Ingres (Berkeley) ● 1986 a 1994: Postgres (Berkeley) ● 1994 a 1995: Postgres95 (Jolly Chen e Andrew Yu) ● 1996 em diante: PostgreSQL (PGDG)

Slide 19

Slide 19 text

Postgres

Slide 20

Slide 20 text

Postgres Um projeto ambicioso: ● Supporting ADTs in a Database System ○ Complex Objects (i.e., nested or non-first-normal form data)* ○ User-Defined Abstract Data Types and Functions* ○ Extensible Access Methods for New Data Types* ○ Optimizer Handling of Queries with Expensive User-Defined Functions ● Active Databases and Rules Systems (Triggers, Alerts)* ○ Rules implemented as query rewrites+ ○ Rules implemented as record-level triggers+ ● Log-centric Storage and Recovery ○ Reduced-complexity recovery code by treating the log as data,* using non-volatile memory for commit status+ ○ No-overwrite storage and time travel queries+

Slide 21

Slide 21 text

Postgres ● Support for querying data on new deep storage technologies, notably optical disks* ● Support for multiprocessors or custom processors* ● Support for a variety of language models ○ Minimal changes to the relational model and support for declarative queries* ○ Exposure of “fast path” access to internal APIs, bypassing the query language+ ○ Multi-lingual support+ * 1986 - The design of Postgres, M. Stonebraker and L. A. Rowe + 1991 - The Postgres next generation database management system, M. Stonebraker and G. Kemnitz

Slide 22

Slide 22 text

Postgres + SQL ● SQL se torna um padrão ANSI e ISO ● DB2, Oracle e outros bancos de dados adotam o SQL ● Em 1994, o projeto Postgres se encerra em Berkeley ● 2 alunos recém formados decidem implementar a linguagem SQL no Postgres

Slide 23

Slide 23 text

Postgres95 ● Sem constraints (FKs, PKs, CHECKs) ● Sem INNER JOINs ● Sem NULL ● Sem MVCC ● Sem Window Functions

Slide 24

Slide 24 text

A escolha do novo nome…

Slide 25

Slide 25 text

A escolha do novo nome… From: Tom Lane Subject: The name of the game Date: 2006-07-13 03:42:54 It might help to explain that the pronunciation is "post-gres" or "post-gres-cue-ell", not "post-gray-something". I heard people making this same mistake in presentations at this past weekend's Postgres Anniversary Conference :-( Arguably, the 1996 decision to call it PostgreSQL instead of reverting to plain Postgres was the single worst mistake this project ever made. It seems far too late to change now, though. regards, tom lane

Slide 26

Slide 26 text

PGDG - Postgres Global Development Team (1997) ● Thomas Lockhart ● Jolly Chen ● Vadim Mikheev ● Andrew Yu ● Tom Lane ● Bruce Momjian ● Marc Fournier

Slide 27

Slide 27 text

PGDG - Postgres Global Development Team (2006)

Slide 28

Slide 28 text

Evolução do PostgreSQL

Slide 29

Slide 29 text

Versões do PostgreSQL

Slide 30

Slide 30 text

No Brasil (PGCon.Brasil 2007)

Slide 31

Slide 31 text

No Brasil (PGConf.Brasil 2022)

Slide 32

Slide 32 text

Brasil ● Listas por email a partir de 1999 pgsql-pt-geral em https://www.postgresql.org/list/ ● Grupo no telegram c/ ~3800 inscritos https://t.me/postgresqlbr ● PGCon Brasil 2007 - São Paulo / SP ● PGCon Brasil 2008 e 2009 - Campinas / SP ● PGBR Brasil 2011 - São Paulo / SP ● PGBR Brasil 2013 - Porto Velho / RO ● PGBR Brasil 2015 e 2017 - Porto Alegre / RS ● PGConf Brasil 2018 - São Paulo / SP ● PGConf Brasil 2019 ● PGConf Brasil 2022 ● PGDays em todo país!

Slide 33

Slide 33 text

Why Postgres is so cool? ● Comunidade ● Liberdade ● Qualidade ● Bacon

Slide 34

Slide 34 text

Comunidade 1996-04-23 Jolly Chen wrote: I’ve posted a TODO list on the postgres95 web site (http://s2k-ftp.CS.Berkeley.EDU:8000/postgres95/www/todo.html) I’ve casually sorted the list by priority and I have some editorial comments on some of them. If all the items on the TODO list were completed, postgres95 would be much improved, and would really be a viable replacement for commercial RDBMSs in some settings. Some of the items require quite a bit of work and deep knowledge of postgres95 internals, though. We would need a few contributors with quite a lot of volunteer hours to make this happen anytime soon. (A large number of contributors each with only a little bit of time to contribute would not be equivalent)

Slide 35

Slide 35 text

Ética Hacker ● Acesso à tecnologia deve ser ilimitado ● O conhecimento deve ser livre ● Promover a descentralização ● Meritocracia (julgamento independente de cor, credo, raça, sexo, etc) ● Você deve criar arte e beleza ao resolver problemas técnicos ● A tecnologia deve promover a liberdade e o bem-estar das pessoas

Slide 36

Slide 36 text

Liberdade ● Código aberto com licença aberta e permissiva (BSD Like) ● Não existe um “dono” ● Comunicação aberta ● Ferramentas abertas ● Aberto para novos desenvolvedores ● Regras claras e objetivas para todos (commitfest)

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

Forks • AgensGraph (orientado a grafos) • Aurora (AWS) • BDR (replicação multimaster) • CitusDB (BI) • EnterpriseDB (compatibilidade com Oracle) • HadoopDB (cluster shared nothing) • PipelineDB (streaming) • PostgresX2 (cluster) • Pivotal (BI) • Redshift (BI) • ToroDB (document model) https://wiki.postgresql.org/wiki/PostgreSQL_derived_databases

Slide 39

Slide 39 text

Desenvolvimento aberto Empresas que patrocinam o PostgreSQL: https://www.postgresql.org/about/sponsors

Slide 40

Slide 40 text

Qualidade

Slide 41

Slide 41 text

Qualidade ● Projeto visionário ● Fazer a coisa certa ● Código limpo e bem escrito ● Foco na confiabilidade e capacidade de manutenção ● Rock Solid Database ● Flexibilidade e extensibilidade

Slide 42

Slide 42 text

Bacon

Slide 43

Slide 43 text

PostgreSQL hoje

Slide 44

Slide 44 text

● 35+ anos de desenvolvimento ● 25+ anos de versões novas ● ~180 novas funcionalidades por versão ● Correções de erro e segurança lançadas 4x ao ano

Slide 45

Slide 45 text

Most Popular Database https://survey.stackoverflow.co/2023/#technology

Slide 46

Slide 46 text

Most growing database https://db-engines.com

Slide 47

Slide 47 text

Open Source X Commercial Licence https://db-engines.com/en/ranking_trend

Slide 48

Slide 48 text

Desafios atuais

Slide 49

Slide 49 text

Desafios ● Liderança dentro do PGDG https://www.postgresql.org/community/contributors ● FUD: Fear, uncertainty, and doubt ● Guerra de patentes ● A era dos serviços em nuvem ● Novos modelos além do relacional ● Forks

Slide 50

Slide 50 text

Desafios técnicos ● Write Amplification ○ Non-HOT updates ○ Vacuum dead tuples ○ Wraparound ● Encriptação de arquivos ● Guerra de patentes ● Escalabilidade horizontal ● Novas tecnologias

Slide 51

Slide 51 text

Perguntas? Fábio Telles Rodriguez ● email: [email protected] ● telegram: @fabio_telles ● LinkedIn: www.linkedin.com/in/telles ● Blog: savepoint.blog.br