Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    Robert Haas

    rhaas.blogspot.com · Personal blog · on HN since 2010

    Robert Haas, a PostgreSQL committer, writes about Postgres internals, performance, parallel query, VACUUM, and planner features.

    Visit blogRSSHN submissions
    DatabasesSystems & Performance
    What HN says

    HN commenters cite it for MySQL vs PostgreSQL vacuum comparisons, multicore scaling results, and the design motivation behind pg_plan_advice.

    Stats for nerds
    96HN people shared it
    97linked in comments
    3.9Kstory points
    Aug 2026last shared
    2015people per year2026

    Top posts on HN

    1. 1
      New Features Coming in PostgreSQL 10
      1 person · 517 points · first shared 2017 · 135 comments on HN
    2. 2
      Subtly Bad Things Linux May Be Doing To PostgreSQL
      1 person · 326 points · first shared 2014 · 91 comments on HN
    3. 3
      No More Full Table Vacuums in PostgreSQL
      2 people · 290 points · first shared 2016 · 73 comments on HN
    4. 4
      Parallel Sequential Scan is Committed to PostgreSQL 9.6
      4 people · 275 points · first shared 2015 · 68 comments on HN
    5. 5
      PostgreSQL Parallel Query v2
      2 people · 265 points · first shared 2017 · 42 comments on HN
    6. 6
      Postgres 9.2 will feature linear read scalability up to 64 cores
      6 people · 262 points · first shared 2012 · 107 comments on HN
    7. 7
      Hacking on PostgreSQL is hard
      3 people · 254 points · first shared 2024 · 51 comments on HN
    8. 8
      Plans for partitioning in PostgreSQL v11
      1 person · 241 points · first shared 2017 · 44 comments on HN
    9. 9
      PostgreSQL's Hash Indexes Are Now Cool
      2 people · 214 points · first shared 2017 · 38 comments on HN
    10. 10
      The State of Vacuum in Postgres
      2 people · 169 points · first shared 2018 · 52 comments on HN

    What HN people wrote when they linked it

    • philippemnoelJul 2024

      I 100% agree. This is going to be a bit of a longer comment:

      1) You are right that startups want all-in Postgres. To do fast analytics, we need to get columnar storage and vectorized processing. In `pg_analytics`, we implemented a Table Access Method (TAM) to try to accomplish this.

      TAMs involve changing the storage format of Postgres. When we did this, we discovered there were A LOT of Postgres internals we needed to interface with. We needed to reimplement write-ahead logs (WALs), buffer caching, MVCC, JOINs, and more. Each of these projects is a significant undertaking. Hacking on Postgres is really hard: https://rhaas.blogspot.com/2024/05/hacking-on-postgresql-is-really-hard.html

      As a result, in pg_analytics we cut a lot of corners to ship quickly. The performance was great, but when it came to using it in any real production setting, not having these core features of Postgres meant users couldn't really use pg_analytics, and it would take us months/over a year to build any of this. Even more so, the Table Access Method API in Postgres still has a few limitations. The folks being OrioleDB are probably the most state-of-the-art implementation of a TAM, and they joined Supabase and are pushing for upstream patches to the TAM API to enable their workload.

      2) At the same time, while you are right that startups want all-in Postgres, we discovered that larger companies typically have so much analytical data that they're pretty much forced to store it on object storage…

    • lfittlJun 2026

      Its also worth reading the original post by Robert Haas (the author of pg_plan_advice) on motivation/design: https://rhaas.blogspot.com/2026/03/pgplanadvice-plan-stability-and-user.html

      Also, I'll add my perspective: I think "EXPLAIN (PLAN_ADVICE)" is a key piece to making this a plan stability feature, not (just) a hinting feature. The extensibility/framework pg_plan_advice adds is a foundation, that over time will over time address the age-old "Postgres doesn't have hints" problem, even if the initial release doesn't check all the boxes yet, e.g. no way to use advice for adjusting row/join estimates.

      To give an example on extensibility: Some people that I've spoken to are asking "but why is it not a comment-style hint". There are reasons why Postgres didn't go that way for this release (comment parsing in core is non-existent today, and comments don't work correctly e.g. for functions), but its easy to write an extension that sets up an advisor hook to parse comments: https://github.com/pganalyze/pg_advice_comment

    • smillikenApr 2017

      > My biggest question, when everyone points out how many features PosgreSQL offers, is "why are you doing that in the database?" Your database is your biggest chokepoint.

      You shouldn't be doing any CPU intensive calculations in the database if you can avoid it, definitely. But these postgresql features are often about improved efficiency. Take a look at new things coming in postgresql 10[1]. All the new features in there are either performance neutral or big performance wins.

      FWIW, I've spent the last few years fixing performance problems in PostgreSQL databases. The solution is most often to de-normalize/pre-compute something, which means using stored procedures and triggers, which are most definitely doing more than "transactionally store and retrieve data".

      [1] https://rhaas.blogspot.com/2017/04/new-features-coming-in-postgresql-10.html?m=1

    • MechanicalTwerkFeb 2019

      If you're looking for a good series of blog posts about xid wraparound in Postgres check out these posts by Josh Berkus:

      http://www.databasesoup.com/2012/09/freezing-your-tuples-off-part-1.html

      http://www.databasesoup.com/2012/10/freezing-your-tuples-off-part-2.html

      http://www.databasesoup.com/2012/12/freezing-your-tuples-off-part-3.html

      And this more recent one by Robert Haas:

      https://rhaas.blogspot.com/2018/01/the-state-of-vacuum.html

      As Josh states at the end of the third post the current best practices for dealing with this are really workarounds and as Robert states it requires monitoring and management. Postgres is an amazing piece of software and managing this is doable but IMHO this is one of Postgres' worst warts. It would be awesome if someone could donate some funding to improve this.

    • niermanMay 2015

      Check out the Tech and Company pages as well as the slides from the recent South Bay PostgreSQL Meeetup:
      http://goo.gl/Mtg2W6

      The founders both have strong academic and commercial experience and the advisor is Prof. Joseph Hellerstein (he has both an excellent academic reputation and good experience in industry/tech transfer).

      Note that TPCH is a "decision support benchmark". There are other technologies for helping postgres with these workloads as well: a column-store approach like https://github.com/citusdata/cstore_fdw, or the recent work on parallel sequential scans in Postgres core (http://rhaas.blogspot.com/2015/03/parallel-sequential-scan-for-postgresql.html), etc.

    • pgaddictOct 2020

      I doubt that's possible, for a number of reasons.

      1) Neither company owns any part of the PostgreSQL code / docs. We do have various proprietary tools, of course, but so do other companies.

      2) The companies employ quite a few PostgreSQL hackers, but if you look at the development stats (e.g. http://rhaas.blogspot.com/2020/05/who-contributed-to-postgresql.html) you'll see there are many committers and developers in other companies.

      That being said, I agree with the concerns expressed by Bruce in his blog post. Or more precisely - I do understand why people in the community have those concerns, but I believe (hope) it's not going to harm the community.

    Related

    Josh Berkusdatabasesoup.com39 people

    Of Booze and Brogrammers

    Josh Berkus
    Personal · last shared 2019
    Bruce Momjianmomjian.us52 people

    PostgreSQL community impact of 2nd Quadrant purchase

    Bruce Momjian
    Personal · last shared 2025
    pganalyze Blogpganalyze.com54 people

    Waiting for Postgres 18: Accelerating Disk Reads with Asynchronous I/O

    pganalyze Blog
    Company · last shared 2026
    CYBERTEC Blogcybertec-postgresql.com94 people

    Postgres scaling advice

    CYBERTEC Blog
    Company · last shared 2026
    depeszdepesz.com101 people

    Waiting for PostgreSQL 14 – SEARCH and CYCLE clauses

    depesz
    Personal · last shared 2026
    2ndQuadrant Blogblog.2ndquadrant.com99 people

    Data Loss at GitLab

    2ndQuadrant Blog
    Company · last shared 2025
    Percona Blogpercona.com327 people

    UUIDs are popular, but bad for performance (2019)

    Percona Blog
    Company · last shared 2026
    Dimitri Fontainetapoueh.org48 people

    Aggregating NBA data, PostgreSQL vs MongoDB

    Dimitri Fontaine
    Personal · last shared 2026