Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Passado, Presente e Futuro, uma visão hstórica do PostgreSQL

Passado, Presente e Futuro, uma visão hstórica do PostgreSQL

Fábio Telles Rodriguez

October 20, 2023
Tweet

More Decks by Fábio Telles Rodriguez

Other Decks in Technology

Transcript

  1. 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?
  2. 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
  3. 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
  4. 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)
  5. 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
  6. 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)
  7. 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
  8. 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=
  9. 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
  10. 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
  11. 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
  12. 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
  13. INGRES Os herdeiros do INGRES: • Informix • Sybase •

    SQL Server • NonStop SQL • Postgres
  14. 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)
  15. 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+
  16. 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
  17. 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
  18. Postgres95 • Sem constraints (FKs, PKs, CHECKs) • Sem INNER

    JOINs • Sem NULL • Sem MVCC • Sem Window Functions
  19. 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
  20. PGDG - Postgres Global Development Team (1997) • Thomas Lockhart

    • Jolly Chen • Vadim Mikheev • Andrew Yu • Tom Lane • Bruce Momjian • Marc Fournier
  21. 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!
  22. 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)
  23. É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
  24. 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)
  25. 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
  26. 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
  27. • 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
  28. 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
  29. Desafios técnicos • Write Amplification ◦ Non-HOT updates ◦ Vacuum

    dead tuples ◦ Wraparound • Encriptação de arquivos • Guerra de patentes • Escalabilidade horizontal • Novas tecnologias
  30. Perguntas? Fábio Telles Rodriguez • email: [email protected] • telegram: @fabio_telles

    • LinkedIn: www.linkedin.com/in/telles • Blog: savepoint.blog.br