Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Postgresql como NewSQL - DevCamp 2014

1,089 views

Published on

Apresentado no DevCamp 2014 (dia 16 de Maio de 2014).

Que o PostgreSQL é um banco de dados relacional poderoso e robusto, todo mundo sabe. Nessa palestra veja as funcionalidades, extensões e técnicas usadas para colocar o PostgreSQL na competição com muitos bancos de dados NoSQL. Veja o que quer dizer NewSQL e onde o PostgreSQL se encontra nesse grupo de bancos de dados que não somente possuem as características relacionais e a linguagem SQL, mas também funcionalidades extras (json, chave/valor, In-Memory Columnar Store, entre outros) e poder de escalabilidade horizontal (replicação, balanceamento de carga e até sharding).

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download Full EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download Full doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download PDF EBOOK here { https://soo.gd/irt2 } ......................................................................................................................... Download EPUB Ebook here { https://soo.gd/irt2 } ......................................................................................................................... Download doc Ebook here { https://soo.gd/irt2 } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book THIS can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer THIS is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story THIS Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money THIS the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths THIS Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Postgresql como NewSQL - DevCamp 2014

  1. 1. PostgreSQL como NewSQL Matheus de Oliveira <matheus.oliveira@dextra.com.br>
  2. 2. Roteiro Quem sou eu Bancos de dados relacionais e os NoSQLs O que ´e NewSQL? PostgreSQL - “one database to rule them all” Schemaless - JSON e chave/valor Buscas por similaridade Consultas em grafos e hierarquias Performance e Escalabilidade E quando o PostgreSQL n˜ao resolve meu problema? Conclus˜ao 2 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  3. 3. Quem sou eu? Matheus de Oliveira • Ciˆencias de Computa¸c˜ao – USP • DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos • Apaixonado pelo PG (do psql ao c´odigo-fonte...) 3 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  4. 4. Quem sou eu? Matheus de Oliveira • Ciˆencias de Computa¸c˜ao – USP • DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos • Apaixonado pelo PG (do psql ao c´odigo-fonte...) • ...mas tamb´em conhece alguns NoSQLs 3 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  5. 5. Quem sou eu? Matheus de Oliveira • Ciˆencias de Computa¸c˜ao – USP • DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos • Apaixonado pelo PG (do psql ao c´odigo-fonte...) • ...mas tamb´em conhece alguns NoSQLs Dextra • Desenvolvimento sob-medida, consultoria/suporte • Mais de 15 anos trabalhando com o PostgreSQL • “Crafting Software, Transforming Business” • http://www.dextra.com.br/ 3 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  6. 6. Quem sou eu? Matheus de Oliveira • Ciˆencias de Computa¸c˜ao – USP • DBA PostgreSQL na Dextra e instrutor na Dextraining a mais de 2 anos • Apaixonado pelo PG (do psql ao c´odigo-fonte...) • ...mas tamb´em conhece alguns NoSQLs Dextra • Desenvolvimento sob-medida, consultoria/suporte • Mais de 15 anos trabalhando com o PostgreSQL • “Crafting Software, Transforming Business” • http://www.dextra.com.br/ Dextraining • Treinamento de verdade, “Aprenda com quem faz na pr´atica” • Mais de 10 anos na estrada • Mais de 10 mil profissionais capacitados em todo o Brasil. • http://www.dextraining.com.br/ 3 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  7. 7. Bancos de dados relacionais / SQLs • Baseados no modelo relacional • Transa¸c˜oes ACID ◦ Atomicidade ◦ Consistˆencia ◦ Isolamento ◦ Durabilidade • Interface de consulta padr˜ao – SQL • Armazenamento em rela¸c˜oes – estrutura acoplada • ... 4 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  8. 8. NoSQLs • Transa¸c˜oes BASE: ◦ Basic Availability ◦ Soft-state ◦ Eventual consistency • Interface de consulta pr´opria • Schemaless – estrutura desacoplada ◦ Chave-Valor ◦ Documento ◦ Grafos ◦ ... • Performance como prioridade ◦ In-place update ◦ Replica¸c˜ao ◦ Sharding ◦ ... 5 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  9. 9. NoSQLs • Transa¸c˜oes BASE: ◦ Basic Availability ◦ Soft-state ◦ Eventual consistency • Interface de consulta pr´opria • Schemaless – estrutura desacoplada ◦ Chave-Valor ◦ Documento ◦ Grafos ◦ ... • Performance como prioridade ◦ In-place update ◦ Replica¸c˜ao ◦ Sharding ◦ ... • <entre com sua buzzword aqui> 5 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  10. 10. O que ´e NewSQL “ In the context of transaction processing, I would define a NewSQL DBMS as one having the following 5 characteristics: 1. SQL as the primary mechanism for application interaction 2. ACID support for transactions 3. A non-locking concurrency control mechanism so real-time reads will not conflict with writes, and thereby cause them to stall. 4. An architecture providing much higher per-node performance than available from the traditional ‘elephants’ 5. A scale-out, shared-nothing architecture, capable of running on a large number of nodes without bottlenecking ” Michael Stonebraker – MIT 1 1 http://cacm.acm.org/blogs/blog-cacm/ 109710-new-sql-an-alternative-to-nosql-and-old-sql-for-new-oltp fulltext6 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  11. 11. O que ´e NewSQL “A DBMS that delivers the scalability and flexibility promised by NoSQL while retaining the support for SQL queries and/or ACID, or to improve performance for appropriate workloads” 451 Group 7 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  12. 12. PostgreSQL “one database to rule them all” • FOSS – Free Open Source Software • Quase 30 anos de experiˆencia • Robustez, confiabilidade, maturidade • Diversas funcionalidades, e novas a cada vers˜ao • Forte extensibilidade 8 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  13. 13. Armazenamento chave/valor Tipo hstore • Presente como uma contrib do PostgreSQL desde a vers˜ao 8.3 (2008) • Armazenamento de chaves/valores como atributo (coluna) de uma tabela • Diversos operadores para manipula¸c˜ao, navega¸c˜ao e filtragem (busca) • Indexa¸c˜ao B-tree, GIN e GIST • Exemplo: SELECT * FROM movies WHERE ( moviedata ->’imdb_rate ’):: int > 4 AND moviedata ->’ alternate_title ’ = ’Black Mask ’; 9 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  14. 14. Armazenamento chave/valor Tipo hstore • Presente como uma contrib do PostgreSQL desde a vers˜ao 8.3 (2008) • Armazenamento de chaves/valores como atributo (coluna) de uma tabela • Diversos operadores para manipula¸c˜ao, navega¸c˜ao e filtragem (busca) • Indexa¸c˜ao B-tree, GIN e GIST • Exemplo: SELECT * FROM movies WHERE ( moviedata ->’imdb_rate ’):: int > 4 AND moviedata ->’ alternate_title ’ = ’Black Mask ’; R´apido... Flex´ıvel... Incr´ıvel... Lind˜ao... 9 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  15. 15. Armazenamento chave/valor Tipo hstore • Presente como uma contrib do PostgreSQL desde a vers˜ao 8.3 (2008) • Armazenamento de chaves/valores como atributo (coluna) de uma tabela • Diversos operadores para manipula¸c˜ao, navega¸c˜ao e filtragem (busca) • Indexa¸c˜ao B-tree, GIN e GIST • Exemplo: SELECT * FROM movies WHERE ( moviedata ->’imdb_rate ’):: int > 4 AND moviedata ->’ alternate_title ’ = ’Black Mask ’; R´apido... Flex´ıvel... Incr´ıvel... Lind˜ao... mas, t´ınhamos que evoluir... 9 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  16. 16. JSON no PostgreSQL • 2012 – vers˜ao 9.2 – tipo json, basicamente text com valida¸c˜oes • 2013 – vers˜ao 9.3 – ainda json, mas com fun¸c˜oes fant´asticas (a grande ado¸c˜ao come¸ca) • 2014 – vers˜ao 9.4 (hoje em beta1) – tipo jsonb, bin´ario (estrutura interna baseada no hstore), indexa¸c˜ao GIN – ultra-blaster-r´apido 10 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  17. 17. JSON no PostgreSQL CREATE TABLE booksdata ( title text PRIMARY KEY , booksdata jsonb ); 11 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  18. 18. JSON no PostgreSQL SELECT title , bookdata ->> ’ current_edition ’ AS edition , bookdata #> ’{" publication_info ", 0, " isbn "} ’ AS isbn FROM booksdata WHERE bookdata @> ’{ " publication_info " : [{" publisher ": " Avon "} ] }’:: jsonb ORDER BY bookdata #> ’{" publication_info ", 0, " price "} ’ DESC ; 12 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  19. 19. JSON no PostgreSQL Ah!!! E eu comentei que ´e indexado? 13 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  20. 20. JSON no PostgreSQL Ah!!! E eu comentei que ´e indexado? DE VERDADE CREATE INDEX booksdata_json_idx ON booksdata USING GIN ( booksdata ); 13 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  21. 21. JSON no PostgreSQL Ah!!! E eu comentei que ´e indexado? DE VERDADE CREATE INDEX booksdata_json_idx ON booksdata USING GIN ( booksdata ); GIN to the rescue!!! 13 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  22. 22. Full Text Search • FTS nativo no PostgreSQL (tsvector, tsquery, ...) SELECT * FROM articles t(fts) WHERE fts @@ tsquery ’PostgreSQL & NewSQL ’ ORDER BY ts_rank (fts , tsquery ’PostgreSQL & NewSQL ’); • Busca por similaridade (contrib pg trgm) SELECT set_limit (0.2) ; SELECT *, title <-> ’NewSQL ’ AS sml FROM articles WHERE title % ’NewSQL ’ ORDER BY sml DESC LIMIT 10; 14 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  23. 23. Full Text Search • FTS nativo no PostgreSQL (tsvector, tsquery, ...) SELECT * FROM articles t(fts) WHERE fts @@ tsquery ’PostgreSQL & NewSQL ’ ORDER BY ts_rank (fts , tsquery ’PostgreSQL & NewSQL ’); • Busca por similaridade (contrib pg trgm) SELECT set_limit (0.2) ; SELECT *, title <-> ’NewSQL ’ AS sml FROM articles WHERE title % ’NewSQL ’ ORDER BY sml DESC LIMIT 10; • Claro, tudo devidamente indexado... GIN and GIST rocks 14 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  24. 24. Consultas em grafos e hierarquias • Pode ser facilmente realizada utilizando consultas recursivas • O desempenho depende do filtro e profundidade da navega¸c˜ao • Exemplo, cat´alogo de roles (usu´arios/grupos) do PostgreSQL: WITH RECURSIVE roles AS ( SELECT r.oid AS roleid , r. rolname , 1 AS level , array [r. rolname ] AS path FROM pg_authid r WHERE r.oid NOT IN ( SELECT m. member FROM pg_auth_members m) UNION ALL SELECT r.oid , r. rolname , p. level + 1, p. path || r. rolname FROM pg_auth_members m INNER JOIN pg_authid r ON m. member = r. oid INNER JOIN roles p ON m. roleid = p. roleid ) SELECT repeat (’|__ ’, level -1) || rolname FROM roles ORDER BY path ; 15 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  25. 25. Consultas em grafos e hierarquias Resultado: administrativo | __comercial |__| __carla |__| __maria | __financeiro |__| __ana |__| __paulo ti | __beatriz | __julio | __matheus ... 16 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  26. 26. Performance O PostgreSQL ´e, sem d´uvidas, um dos bancos de dados com melhores desempenhos num ´unico n´o. Devemos sempre olhar para: • ajuste (tuning) de parˆametros de configura¸c˜ao; • indexa¸c˜ao; • modelo de dados (normalizar ou desnormalizar); • tarefas administrativas; • estat´ısticas atualizadas; • ... busque por ”PostgreSQL Performance Tuning”... 17 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  27. 27. Performance E quando precisamos de mais: • COMMIT ass´ıncrono; • columnar store (extens˜oes para o PostgreSQL cstore fdw 2 e In-Memory Columnar Store (ICMS) 3 4); • particionamento de tabelas (n˜ao ´e 100% suportado, mas funciona perfeitamente); • divis˜ao de tablespaces. 2 http://citusdata.github.io/cstore_fdw/ 3 http://www.garret.ru/imcs/user_guide.html 4 http://www.pgcon.org/2014/schedule/events/643.en.html 18 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  28. 28. Escalabilidade Horizontal Replica¸c˜ao master-slave via Streaming Replication oferece grandes oportunidades. • replica¸c˜ao s´ıncrona ou ass´ıncrona; • replica¸c˜ao em cascata; • execu¸c˜ao de backups no slave podem aliviar o master (24x7); • distribui¸c˜ao de consultas mais pesadas (relat´orios, an´alises, etc.) nos slaves; • balanceamento de carga via aplica¸c˜ao ou automatizada usando pgPool-II; • e claro, alta disponibilidade. 19 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  29. 29. Escalabilidade Horizontal Vamos falar de sharding ent˜ao! O PostgreSQL n˜ao oferece suporte `a sharding, mas muita gente encontra uma maneira. • Via aplica¸c˜ao: ◦ Instangram 5 ◦ Braintree 6 5 http://instagram-engineering.tumblr.com/post/ 10853187575/sharding-ids-at-instagram 6 https://www.braintreepayments.com/braintrust/ scaling-postgresql-at-braintree-four-years-of-evolution 20 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  30. 30. Escalabilidade Horizontal Vamos falar de sharding ent˜ao! • Uma t´ecnica para sharding automatizado consiste em utilizar diversas funcionalidades e o poder de extens˜ao do PostgreSQL: ◦ dividir os shards manualmente em servidores com PostgreSQL e tabelas convencionais; ◦ mapear todas essas tabelas num servidor centralizado usando Foreign Data Wrappers (FDW) com o postgres fdw; ◦ criar views para unir cada uma delas (usando UNION ALL); • o PostgreSQL automaticamente redirecionar´a consultas (usando as chaves de shard) para cada shard, usando a (velha) funcionalidade de “constraint exclusion”; • INSERT/UPDATE/DELETE deve ser redirecionando usando triggers pr´oprias do tipo INSTEAD OF. ◦ mover dados entre os shards ´e poss´ıvel, mas trabalhoso. 21 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  31. 31. Escalabilidade Horizontal Vamos falar de sharding ent˜ao! Exemplo (“ugly, but works...”): CREATE FOREIGN TABLE users_1_1000 ( user_id int , user_name text , ... ) SERVER shard1 OPTIONS ( table_name ’users ’) ; ... CREATE FOREIGN TABLE users_1001_2000 ( user_id int , user_name text , ... ) SERVER shard2 OPTIONS ( table_name ’users ’) ; ... 22 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  32. 32. Escalabilidade Horizontal Vamos falar de sharding ent˜ao! CREATE VIEW users AS SELECT * FROM users_1_1000 WHERE user_id BETWEEN 1 AND 1000 UNION ALL SELECT * FROM users_1001_2000 WHERE user_id BETWEEN 1001 AND 2000 UNION ALL ... H´a varia¸c˜oes dessa tecnica 7 8 7 https://www.youtube.com/watch?v=3JQrfgb3Av0 8 http://snowman.net/slides/pgfdw_sharding.pdf 23 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  33. 33. E quando o PostgreSQL n˜ao resolve meu problema? • Primeiro, tem certeza que n˜ao? 24 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  34. 34. E quando o PostgreSQL n˜ao resolve meu problema? • Primeiro, tem certeza que n˜ao? • Absoluta? 24 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  35. 35. E quando o PostgreSQL n˜ao resolve meu problema? • Ok, acontece... ◦ sobrecarga de opera¸c˜oes e do MVCC pode gerar problemas; ◦ falta de funcionalidades frente `a banco de dados especializados, exemplos: • estruturas de grafos s˜ao melhores tratadas em especializados como Neo4j do que com consultas recursivas (estas tendem a ficar lentas quando a profundidade ´e grande); • FTS do PostgreSQL comparado `a outros como Lucene ou Sphinx ainda perde em funcionalidades e performance (em termos de performance, aguarde/teste a nova vers˜ao, 9.4, houve melhoras substanciais nessa ´area). 25 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  36. 36. E quando o PostgreSQL n˜ao resolve meu problema? • Mas tudo bem usar outro. Se quiser associar, v´arios Foreign Data Wrappers (FDW) est˜ao dispon´ıveis (redis fdw, mongo fdw, ...) para mapear dados externos dentro de tabelas no PostgreSQL (o exemplo do shard usa essa funcionalidade, mas mapeando outros bancos PostgreSQL); 26 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  37. 37. E quando o PostgreSQL n˜ao resolve meu problema? • DICA DE OURO: comece sempre no PostgreSQL (tiro certo), se o projeto crescer fora de escala que o PG suporte, busque outras alternativas. ´E muito comum utilizar bancos NoSQL junto com bancos relacionais (n˜ao ´e escolha ´unica). Existem muitos bancos MPP (Massive Parallel Processing) e (100%) NewSQL baseados no PostgreSQL. ◦ comerciais: Greenplun, Amazon Redshift, Aster Data, Netezza, Vertica, entre outros; ◦ e as promessas open source: Postgres-XC e Postgres-XL. 27 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  38. 38. Conclus˜ao O PostgreSQL ´e hoje, sem d´uvidas, um dos bancos de dados mais vers´ateis (eu diria “o mais”) e que oferece infinitas possibilidades. Associando o bom e velho modelo relacional `a tendˆencias (n˜ao novas, devo dizer) e necessidades presentes nas aplica¸c˜oes modernas. 28 / 31 PostgreSQL como NewSQL – Matheus de Oliveira – DevCamp2014
  39. 39. Obrigado! D´uvidas? Matheus de Oliveira <matheus.oliveira@dextra.com.br> irc.freenode.net: /join #postgresql,#postgresql-br Meu nick: MatheusOl Twitter: @matioli matheus

×