Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open

2,262 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,262
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
22
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Gurjeet Singh - How Postgres is Different From (Better Tha) Your RDBMS @ Postgres Open

  1. 1. POSTGRES IS DIFFERENT FROM (BETTER THAN) YOUR RDBMS
  2. 2. Gurjeet Singh gurjeet.singh.im EDB - EnterpriseDB.com
  3. 3. FROM THE PERSPECTIVE OF A Developer Manager
  4. 4. DEVELOPER'S PERSPECTIVE License Reliability Security Features Extensibility Performance Diagnosability
  5. 5. DEVELOPER : LICENSE BSD-like License Liberal than/Very different from GPL. PostgreSQL License gives you Freedom to read, patch/improve the code. An opportunity to understand the database internals Install, use/develop and deploy full feature-set without a license Upgrade hardware without paying for license cost Unlike commercial RDBMSs where licenses come in the way of development, QA, and hardware upgrades.
  6. 6. DEVELOPER : RELIABILITY ACID compliant Constraints (Primary Key, Foreign Key, CHECK) Data-page checksums to detect corruption
  7. 7. DEVELOPER : SECURITY Per-object GRANT/REVOKE permissions Per-column GRANT/REVOKE permissions SSL connections LDAP and RADIUS authentication
  8. 8. DEVELOPER : FEATURES Postgres is a Platform Vast feature set ... and ever-expanding Postgres Feature Matrix http://www.postgresql.org/about/featurematrix/
  9. 9. DEVELOPER : FEATURES Common Table Expressions (CTEs) Similar to Macro in programming languages Supports recursive evaluation (alternative to Oracle's CONNECT BY)
  10. 10. DEVELOPER : FEATURES : DATA TYPES Many advanced data types come builtin Full List of Builtin Data Types http://www.postgresql.org/docs/9.3/static/datatype.html
  11. 11. DEVELOPER : FEATURES : DATA TYPES Does not have/need NVARCHAR data type The CHAR/VARCHAR/TEXT types are capable of storing Unicode data
  12. 12. DEVELOPER : FEATURES : DATA TYPES Boolean (a first-class data type) Bit (and Bit strings) Money Bytea (binary data) Interval (difference between TIMESTAMPs) Enumerated Types Geometry Types (Point, Line Segment, Polygon, ...) Network Address (inet, cidr, macaddr)
  13. 13. DEVELOPER : FEATURES : DATA TYPES Range Types (tsrange, daterange, int4range, ...) Composite types Builtin multi-dimensional arrays Automatically defines array type of builtin and user-defined data types
  14. 14. DEVELOPER : FEATURES : DATA TYPES hstore JSON XML
  15. 15. DEVELOPER : FEATURES Streaming Replication Hot Standby Per-transaction synchronous replication True serializable transactions LISTEN/NOTIFY Triggers Exclusion constraints Window Functions Function overloading Operator overloading Full-text search Large Objects up to 4TB Materialized views
  16. 16. DEVELOPER : FEATURES Create procedures in various programming languages PL/pgsql PL/perl PL/tcl PL/java PL/v8 - JavaScript
  17. 17. DEVELOPER : FEATURE/PERFORMANCE TOAST The Oversized Attribute Storage Technique Automatic out-of-line storage and automatic compression
  18. 18. DEVELOPER : PERFORMANCE Cost-based optimizer Index-only scans Synchronized seq-scans Table partitioning Unlogged tables
  19. 19. DEVELOPER : PERFORMANCE Partial indexes Many types of indexes BTree Hash Gin Gist KNN SP-Gist
  20. 20. DEVELOPER : PERFORMANCE Types of join-strategies Nested-loop joins Hash joins Sort-Merge joins Bitmap-index scan; Bitmap-And/Or joins (in-memory) Can use multiple indexes of a table in the same scan Semi joins Anti joins
  21. 21. DEVELOPER : PERFORMANCE Faster than NoSQL (at NoSQL use case) See slides 32 onwards of Chrisophe Pettus' PostgreSQL as a Schemaless Database http://thebuild.com/presentations/pg-as-nosql-pgday- fosdem-2013.pdf
  22. 22. DEVELOPER : DIAGNOSTICS Per-function statistics Performance Views pg_stat_activity pg_locks pg_stat_* pg_stat_all_tables pg_stat_all_indexes ...
  23. 23. DEVELOPER : DIAGNOSTICS Logging Options log_min_duration_statement log_temp_files DTrace/SystemTap support Scripts to record and diagnose performance issues
  24. 24. DEVELOPER : EXTENSIBILITY Highly Extensible Create Your Own Data Types Operators Index Types create extension Check out Foreign Data Wrapper Foreign Tables PGXN.org
  25. 25. DEVELOPER : EXTENSIBILITY Examples PostGIS PostGIS adds support for geographic objects to the PostgreSQL object-relational database. PostgreSQL-HLL A PostgreSQL extension adding HyperLogLog data structures as a native data type
  26. 26. MANAGER'S PERSPECTIVE Acquisition Cost (License) Future Proof Vendors/Providers (Companies who can help) Maintenance Cost (Support) Buy-in From Upper Management
  27. 27. MANAGER : ACQUISITION COST Free
  28. 28. MANAGER : ACQUISITION COST FREE Save Money $$$ Higher Profit Margins A Leg Up On The Competition
  29. 29. MANAGER : ACQUISITION COST BSD-like License Liberal than/Very different from GPL. Install, use/develop and deploy full feature-set without a license Upgrade hardware without paying for license cost Unlike commercial RDBMSs where licenses come in the way of development, QA, and hardware upgrades.
  30. 30. MANAGER : FUTURE PROOF Community-driven No single commercial entity controls it (unlike MySQL) Will be always free (cost and project management)
  31. 31. MANAGER : FUTURE PROOF Ever-increasing resource-pool; developers and DBAs Compare growth in job requirements
  32. 32. MANAGER : VENDORS/PROVIDERS Many top-quality vendors EDB (EnterpriseDB) PG Experts 2nd Quadrant OmniTI Command Prompt Many smaller consulting teams/individuals
  33. 33. MANAGER : MAINTENANCE COST 24/7 Support available Very affordable support contracts For e.g. EDB charges per-socket (unlike Oracle, that charges per CPU)
  34. 34. MANAGER : MAINTENANCE COST Consulting Remote-DBA Database Health Checks Training For Developers For DBAs
  35. 35. MANAGER : UPPER MANAGEMENT BUY-IN Show them the last few slides :)
  36. 36. THANK YOU

×