2ndQuadrant is now part of EDB

Bringing together some of the world's top PostgreSQL experts.

2ndQuadrant | PostgreSQL
Mission Critical Databases
  • Contact us
  • EN
    • FR
    • IT
    • ES
    • DE
    • PT
  • Support & Services
  • Products
  • Downloads
    • Installers
      • Postgres Installer
      • 2UDA – Unified Data Analytics
    • Whitepapers
      • Business Case for PostgreSQL Support
      • Security Best Practices for PostgreSQL
    • Case Studies
      • Performance Tuning
        • BenchPrep
        • tastyworks
      • Distributed Clusters
        • ClickUp
        • European Space Agency (ESA)
        • Telefónica del Sur
        • Animal Logic
      • Database Administration
        • Agilis Systems
      • Professional Training
        • Met Office
        • London & Partners
      • Database Upgrades
        • Alfred Wegener Institute (AWI)
      • Database Migration
        • International Game Technology (IGT)
        • Healthcare Software Solutions (HSS)
        • Navionics
  • Postgres Learning Center
    • Webinars
      • Upcoming Webinars
      • Webinar Library
    • Whitepapers
      • Business Case for PostgreSQL Support
      • Security Best Practices for PostgreSQL
    • Blog
    • Training
      • Course Catalogue
    • Case Studies
      • Performance Tuning
        • BenchPrep
        • tastyworks
      • Distributed Clusters
        • ClickUp
        • European Space Agency (ESA)
        • Telefónica del Sur
        • Animal Logic
      • Database Administration
        • Agilis Systems
      • Professional Training
        • Met Office
        • London & Partners
      • Database Upgrades
        • Alfred Wegener Institute (AWI)
      • Database Migration
        • International Game Technology (IGT)
        • Healthcare Software Solutions (HSS)
        • Navionics
    • Books
      • PostgreSQL 11 Administration Cookbook
      • PostgreSQL 10 Administration Cookbook
      • PostgreSQL High Availability Cookbook – 2nd Edition
      • PostgreSQL 9 Administration Cookbook – 3rd Edition
      • PostgreSQL Server Programming Cookbook – 2nd Edition
      • PostgreSQL 9 Cookbook – Chinese Edition
    • Videos
    • Events
    • PostgreSQL
      • PostgreSQL – History
      • Who uses PostgreSQL?
      • PostgreSQL FAQ
      • PostgreSQL vs MySQL
      • The Business Case for PostgreSQL
      • Security Information
      • Documentation
  • About Us
    • About 2ndQuadrant
    • 2ndQuadrant’s Passion for PostgreSQL
    • News
    • Careers
    • Team Profile
  • Blog
  • Menu Menu
You are here: Home1 / Blog2 / Greg's PlanetPostgreSQL3 / PostgreSQL CommitFest #3 for 9.1 needs you!
2ndQuadrant Press

PostgreSQL CommitFest #3 for 9.1 needs you!

November 16, 2010/0 Comments/in Greg's PlanetPostgreSQL, United States News /by 2ndQuadrant Press

PostgreSQL development is now done with periodic pauses to review and commit patches that have been submitted, called Commit Fests.  The patches themselves are stored on a custom web app, and documentation about the process is on the PostgreSQL wiki.  I’m returning to the role of CommitFest manager for this one, which means I get to harass people all month trying to get patch review finished.  There are currently 26 patches that have no reviewer assigned to them.  If you were ever interested in making a contribution to the PostgreSQL code base, getting involved in the review process is a great way to learn the attributes of patches that are committed, and to see how others fail to gain traction.

I submitted three patches myself this time, and one of them got comitted in the first day.  Count backend self-sync calls hooks into the existing pg_stat_bgwriter statistics mechanism, tracking the hopefully rare situation where client backends are forced to not only write their own data blocks to disk, but to then execute an fsync call to make sure that write is durable afterwards too.

I don’t submit too many patches, but have a good track record for the ones I send being accepted.  This patch demonstrates why I think that is.  All of the following elements are present:

  • Properly formed patch in expected format, refreshed against the latest PostgreSQL codebase just before submission to avoid “bit rot” since when I last worked on it.
  • Description of the situation where users would find this patch useful, based on behavior seen on a user’s system.  Too many people submit theoretical patches whose real-world value is hard to see; those are much harder to justify adding into the code base.  You have to remember that every patch added increases the maintenance burden of the project, so new additions have to exceed that overhead to be worthwhile.
  • Example output showing the patch operating as expected.
  • Test program allowing a reviewer or committer to immediately see the patch give useful results when testing.
  • Full documentation updates for the relevant changes, matching the style of the documentation around it.
  • Warnings about parts of the code that are useful for testing the patch, but that are candidates to remove before commit.  I also like to be clear about which parts of the patch I have not tested fully or are suspicious of.  With this community, if you do something wrong but warned that you weren’t sure about that part up-front, that is more likely to lead to supportive feedback than if you hide the bad parts and leave them for reviewers to find.
  • Keep the patch short.  This one was under 200 lines of code.  I had three related patches that I could have easily submitted as one big one instead; the result would have been over 600 lines.  Breaking them into distinct pieces was more work for me, but it makes life much easier for reviewers and committers trying to consume and understand the code.  The odds of your patch begin rejected are strongly correlated with how long it is; shorter patches are absorbed far more easily by the community development process.

If you do all those things, the odds of your patch making it successfully through the CommitFest process and becoming a change for the next version of PostgreSQL improve.  And if you want more insight into the day to day details of how that works, the easiest way to get started is by selecting a patch by someone else you’re interested in to review.  Seeing how others successfully add features is a great learning tool, particularly with a codebase as large as PostgreSQL where it’s difficult to just start from scratch and find something useful to adjust without getting lost along the way. 

Tags: commitfest, PostgreSQL
Share this entry
  • Share on Facebook
  • Share on Twitter
  • Share on WhatsApp
  • Share on LinkedIn
0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Search

Get in touch with us!

Recent Posts

  • Random Data December 3, 2020
  • Webinar: COMMIT Without Fear – The Beauty of CAMO [Follow Up] November 13, 2020
  • Full-text search since PostgreSQL 8.3 November 5, 2020
  • Random numbers November 3, 2020
  • Webinar: Best Practices for Bulk Data Loading in PostgreSQL [Follow Up] November 2, 2020

Featured External Blogs

Tomas Vondra's Blog

Our Bloggers

  • Simon Riggs
  • Alvaro Herrera
  • Andrew Dunstan
  • Craig Ringer
  • Francesco Canovai
  • Gabriele Bartolini
  • Giulio Calacoci
  • Ian Barwick
  • Marco Nenciarini
  • Mark Wong
  • Pavan Deolasee
  • Petr Jelinek
  • Shaun Thomas
  • Tomas Vondra
  • Umair Shahid

PostgreSQL Cloud

2QLovesPG 2UDA 9.6 backup Barman BDR Business Continuity community conference database DBA development devops disaster recovery greenplum Hot Standby JSON JSONB logical replication monitoring OmniDB open source Orange performance PG12 pgbarman pglogical PG Phriday postgres Postgres-BDR postgres-xl PostgreSQL PostgreSQL 9.6 PostgreSQL10 PostgreSQL11 PostgreSQL 11 PostgreSQL 11 New Features postgresql repmgr Recovery replication security sql wal webinar webinars

Support & Services

24/7 Production Support

Developer Support

Remote DBA for PostgreSQL

PostgreSQL Database Monitoring

PostgreSQL Health Check

PostgreSQL Performance Tuning

Database Security Audit

Upgrade PostgreSQL

PostgreSQL Migration Assessment

Migrate from Oracle to PostgreSQL

Products

HA Postgres Clusters

Postgres-BDR®

2ndQPostgres

pglogical

repmgr

Barman

Postgres Cloud Manager

SQL Firewall

Postgres-XL

OmniDB

Postgres Installer

2UDA

Postgres Learning Center

Introducing Postgres

Blog

Webinars

Books

Videos

Training

Case Studies

Events

About Us

About 2ndQuadrant

What does 2ndQuadrant Mean?

News

Careers 

Team Profile

© 2ndQuadrant Ltd. All rights reserved. | Privacy Policy
  • Twitter
  • LinkedIn
  • Facebook
  • Youtube
  • Mail
PG West talks Australia: Last seats for our PostgreSQL courses in Melbourne
Scroll to top
×