PostgreSQL Development Today: 9.0

1,160 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

PostgreSQL Development Today: 9.0

  1. 1. PostgreSQLDevelopmentTODAY Josh Berkus PostgreSQL Experts Inc. LCA2010
  2. 2. BREAKING NEWS: January 15, 2010 ...PostgreSQL 9.0 Enters Final Commitfest ... “many landmark features planned”, says developer ...
  3. 3. ... wait, 9.0?!?
  4. 4. ... landmark features ... Hot standby ... synchronous replication ... exclusion constraints ... JSON/XML EXPLAIN output ... Windows 64-bit ... writeable CTEs* ... permissions enhancements ...GRANT ONALL/DEFAULT ... SQL enhancements ... Ordered aggregates ... DO () statement ... performance improvements ... PL/Perl enhancements ... PL/Python enhancements ... new LISTEN/NOTIFY* * = not committed yet
  5. 5. ... landmark features ... Hot standby ... synchronous replication ... exclusion constraints ... JSON/XML EXPLAIN output ... Windows 64-bit ... writeable CTEs* ... permissions enhancements ...GRANT ONALL/DEFAULT ... SQL enhancements ... Ordered aggregates ... DO () statement ... performance improvements ... PL/Perl enhancements ... PL/Python enhancements ... new LISTEN/NOTIFY* * = not committed yet
  6. 6. Postgres 9
  7. 7. ... wait, commitfest?!?
  8. 8. scarce committer time
  9. 9. new review1. review patches faster2. review patches sooner3. review every patch4. train new reviewers
  10. 10. 8.5 (9.0) RC and Branch July 1 2009 Development Period CommitFest 1 July 15 2009 Development Period August 15 2009 CommitFest 2 September 15 2009 Development Period October 15 2009 CommitFest 3 November 15 2009 Development Period December 15 2009 CommitFest 4 January 15 2010Cleanup February 15 2010 Integration & Review (2-4 weeks)Beta Beta Testing (2-3 months)9.1 RC and Branch June-July, 2010
  11. 11. … back to hot standby
  12. 12. 8.0: Point-In-Time Recovery (PITR)
  13. 13. 8.0: Point-In-Time Recovery (PITR)
  14. 14. 8.0: Point-In-Time Recovery (PITR)
  15. 15. 8.0: Point-In-Time Recovery (PITR) 10 minutes to hours
  16. 16. 8.3: Warm Standby
  17. 17. 8.3: Warm Standby
  18. 18. 8.3: Warm Standby seconds to minutes
  19. 19. 8.3: Warm Standby
  20. 20. Alvaro Herrera
  21. 21. 8.3 Ghost XID writ e 19 34 521 read 345 321 451 29/2 1 10 01
  22. 22. 9.0: Hot Standby
  23. 23. Problemswith Hot Standby
  24. 24. Problemswith Hot Standby x
  25. 25. max_standby_delay
  26. 26. max_standby_delay
  27. 27. different problems1. Zero data loss2. Seconds of downtime (or less)3. Single-node performance4. Scalability: not important
  28. 28. Fujii MasaoItagaki Takahiro
  29. 29. pgCon 2008:Synchronous Log-Shipping Replication
  30. 30. after 18 months:“streaming replication”
  31. 31. after 18 months:“streaming replication” walreciever
  32. 32. after 18 months:“streaming replication”walsender walreciever
  33. 33. Greg Sabino-MullaineRobert Haas
  34. 34. ?
  35. 35. PostgreSQL Needs YOU
  36. 36. Many Patches == Lots of Testing● Bug Testing – can you make 9.0 crash?● Specif cation Testing i – do the features do what the docs say they do?● Performance Testing – is 9.0 really faster? How much?● Combinational Testing – what happens when you put several new features together?
  37. 37. Many Patches == Lots of Testing1. Take a copy of your production applications2. Port them to 9.03. Report breakage and issues4. Play with implementing new features Do It Now! Were counting on you!
  38. 38. Why contribute?● PostgreSQL is a community project – owned by the community, run by the community – if you contribute, you are a full participant● Tinker with cool database stuff – we are hard-core database geeks – learn a lot from top database hackers● Improve your employment prospects – database engineers are always in demand
  39. 39. Mailing Lists● Hackers list – pgsql-hackers – main list for development discussion – submit patches here until we move off CVS● Testers list – pgsql-testers – submit test reports here● Specif c feature lists i – pgsql-jdbc, pgsql-performance, pgsql-sql, etc. – subscribe at www.postgresql.org/community/lists
  40. 40. Web Sites● www.postgresql.org – main site● git.pgfoundry.org – branches, feature forks, snapshots● wiki.postgresql.org – community wiki, including TODO lists – feature specs & testing info● archives.postgresql.org – mailing list archives -- search for your idea here
  41. 41. Documentation● www.postgresql.org/docs – main documentation – internals:/docs/current/static/internals.html – code conventions: /docs/current/static/source.html● doxygen.postgresql.org – annotated source code● www.postgresql.org/docs/faqs.FAQ_DEV.html – developer FAQ
  42. 42. Tips on submitting code● Dont get discouraged. – Be prepared to argue. – One hacker rejecting your idea doesnt mean everyone does. – Committers (esp. Tom Lane) are often more concerned about maintainability than cool stuff.● Be f exible: you will have to make changes. l – Corporate and academic coding standards are generally lower than the projects.
  43. 43. Other tips on submitting● Dont use the wrong arguments – “MySQL/Oracle does it this way.” – “Based on this hot academic trend.”● Some things make a patch harder to accept – New syntax – Backwards compatibility issues – High code counts● Dont get discouraged.
  44. 44. Also: switching to git● 9.0 was developed with both CVS and git● Probably just git in the future
  45. 45. Contact Information● Josh Berkus ● Upcoming Events: – josh@postgresql.org – PG East: March, – blogs.ittoolbox.com/ Philadelphia database/soup – pgCon: May 19, – www.pgexperts.com Ottawa Canada CfP Open!● User Groups – OSCON: July, – pugs.postgresql.org Portland OR – Wellington CfP Open! – Sydney – Adelaide – Canberra This talk is copyright 2010 Josh Berkus, and is licensed under the creative commons attribution license

×