Bruce Momjian

momjian.us · Personal blog · on HN since 2007

Bruce Momjian, a longtime PostgreSQL core developer, publishes talks, slides, and short posts on Postgres internals and features.

What HN saysCommenters recommend his talks for deep dives into internals and enjoy his frequent non-trivial tidbits, including advice on connection counts.
52HN people shared it
23linked it in comments
36stories submitted
1.0Kstory points
1 year agolast shared
2007people per year2026

Most-shared posts

  1. 1
    PostgreSQL community impact of 2nd Quadrant purchase
    5 people · 301 points · first shared 2020 · 98 comments on HN
  2. 2
    I Don't Need Backups, I Use Raid1
    5 people · 65 points · first shared 2012 · 51 comments on HN
  3. 3
    Postgres Internals Presentations
    5 people · 3 points · first shared 2014 · 1 comments on HN
  4. 4
    MVCC Unmasked (2011) [pdf]
    4 people · 41 points · first shared 2015 · 12 comments on HN
  5. 5
  6. 6
    PostgreSQL Hardware Performance Tuning (2010)
    3 people · 41 points · first shared 2014 · 4 comments on HN
  7. 7
  8. 8
    Indexing Timestamps
    3 people · 4 points · first shared 2023 · discussion on HN
  9. 9
    Major features of PostgreSQL 9.6 [pdf]
    2 people · 128 points · first shared 2016 · 35 comments on HN
  10. 10
    The future of Postgres sharding [pdf]
    2 people · 7 points · first shared 2019 · discussion on HN
  11. 11
    Postgres 10 Feature Presentation
    2 people · 5 points · first shared 2017 · discussion on HN
  12. 12
    Twenty-One Hours to Exploit
    2 people · 3 points · first shared 2013 · discussion on HN
  13. 13
    Internalpics.pdf
    2 people · first shared 2016
  14. 14
    Mastering PostgreSQL Administration [pdf]
    1 people · 170 points · first shared 2020 · 55 comments on HN
  15. 15
    PostgreSQL Hardware Performance Tuning
    1 people · 3 points · first shared 2007 · 1 comments on HN

What HN people wrote when they linked it

qaq · 2017-10-05
How deep do you want to go Bruce Momjian has a ton of talks on internals and other advanced topics so if you want to dig deep would highly recommend them : https://momjian.us/
not1ofU · 2021-04-29
EDIT 2: This is also really great, very recent talk. https://www.youtube.com/watch?v=v1Qt_YYtBoM Speakers Site and slides used for ^ https://momjian.us/main/writings/crypto.pdf For those who dont want to click on PDF (Good stuff) link to site: https://momjian.us/main/ Bruce Momjian is a legend.
ezekiel68 · 2020-10-10
I have followed various snippets of community folklore advice on this topic over the years (many of them suggesting that the proper number of connections should relate somehow to the number of CPU cores). It was, therefore, refreshing to see one of the core developers, Bruce Momjian, publish modern advice[0] based on empirical observations he made while working on real client problems through Enterprise DB. Spoiler: on modern hardware, without an over-agressive shared_buffer config setting[1], up to 250 direct connections to the DB may be made without detrimental impact. [0] https://momjian.us/main/blogs/pgblog/2020.html#April_22_2020 [1] https://momjian.us/main/blogs/pgblog/2018.html#December_7_2018
pjungwir · 2020-07-08
For Postgres specifically, I've been enjoying Bruce Momjian's blog lately [1]. He posts some tidbit every day or two, and not trivial things you'd already know. depesz.com is great too and really helps you stay on top of what's new in Postgres. And the pg consulting companies post quite a lot of great articles that aren't really about selling you something. (Obviously they would be happy for you to hire them, but that's pretty indirect.) [1] https://momjian.us/main/blogs/pgblog/2020.html
sytse · 2019-10-03
I love the partitioning improvements in PostgreSQL 12 https://www.2ndquadrant.com/en/blog/partitioning-enhancements-in-postg… We are planning to use them for GitLab.com, particularly for the events table. More information is at https://www.percona.com/blog/2019/05/24/an-overview-of-sharding-in-pos… (including a comparison to MongoDB) and https://momjian.us/main/writings/pgsql/sharding.pdf
hardwaresofton · 2018-05-02
This looks to be an excellent, thorough resource on MVCC in Postgres. Here are some others: Chapter 13 of the Postgres official docs -> https://www.postgresql.org/docs/current/static/mvcc-intro.html Concurrency Deep Dive talk @ PostgresOpen 2017 -> https://www.youtube.com/watch?v=ZxhBkBNxvR0 There is a wealth of good, informative, high signal/noise ratio talks at the PostgresOpen 2017, encourage you to check it out And another famously good resource that's not quite related: PostgreSQL internals through pictures -> https://momjian.us/main/writings/pgsql/internalpics.pdf
St-Clock · 2011-07-20
Look at the trend for Britney Spears compared to PostgreSQL (http://www.google.com/trends?q=britney+spears%2C+postgresql&ctab=0… I'm not sure what to make of it because Britney Spears and mongodb do not offer a tenth of the features of postgresql, yet they are clearly more popular. In computer science, I believe everything can be seen as a graph so of course, graph databases are a great fit for every problem. Object databases were also a great fit for objects. But where are object databases now compared to relational databases? It's great to have so many options now and it's great to see nosql databases giving ideas to sql databases (http://momjian.us/main/blogs/pgblog/2010.html#April_10_2010_2). Although relational databases might be less elegant for immediate programming problems, they are far more flexible when new needs emerge and their ACID properties have a far better track record than most (if not all given their age) nosql databases.
mebcitto · 2025-05-18
Other relevant talks/blogs that I found really useful for understanding Postgres locks are: * Unlocking the Postgres Lock Manager by Bruce Momjian: https://momjian.us/main/writings/pgsql/locking.pdf * Anatomy of table-level locks by Gulcin Yildirim Jelinek: https://xata.io/blog/anatomy-of-locks
andyzweb · 2022-05-24
https://www.youtube.com/watch?v=XA3SBgcZwtE. Good talk by a core developer This is another presentation from a core developer: https://momjian.us/main/writings/pgsql/optimizer.pdf
berkeley39 · 2021-12-12
> For some types of software, we really do not want students doing it, for free or otherwise. There are whole classes of software, like database engines, that are non-obvious and require many years of real-world domain experience before it is plausible that someone will design a competent, scalable architecture and implementation. Of course as with all things the situation is more nuanced than this. Since you mention database engines we should keep in mind that without Stonebraker and 39 of his students[1] there would be no Postgres. Yet without incentives and many years of contributions from professionals (and students who would become professionals) we would not have PostgreSQL. A healthy system has a place for contributors of all levels of experience. 1- https://momjian.us/main/blogs/pgblog/2020.html#September_21_2020
kvalekseev · 2021-08-15
It's standard way to connect things in UNIX and provides better performance. For example postgresql tcp+ssl is 175% slower than socket https://momjian.us/main/blogs/pgblog/2012.html#June_6_2012
jdnier · 2020-09-28
Here's the description for this PDF from the author's website: https://momjian.us/main/presentations/administration.html Mastering PostgreSQL Administration This talk is designed for PostgreSQL administrators. It covers all aspects of PostgreSQL administration, including installation, security, file structure, configuration, reporting, backup, daily maintenance, monitoring activity, disk space computations, and disaster recovery. It shows how to control host connectivity, configure the server, find the query being run by each session, and find the disk space used by each database.
rzzzt · 2019-08-30
The author's "presentations" page includes links to video versions (I haven't checked them out yet): http://momjian.us/main/presentations/internals.html
rosser · 2019-08-18
It's not the same format, but here's a few slide decks from Bruce Momjian's site, describing PostgreSQL's internals: https://momjian.us/main/presentations/internals.html
evil-olive · 2019-04-24
I haven't fully read it (yet), but based on a quick scan of a few chapters, it looks like a dense but well-written introduction. Some additional resources I'd recommend if you're interested: Designing Data-Intensive Applications is a fantastic place to start if you're interested in the intersection of databases & distributed systems: https://dataintensive.net/ The Architecture of Open-Source Applications book has a fewer chapters on databases: https://aosabook.org/en/bdb.html https://aosabook.org/en/hdfs.html https://aosabook.org/en/nosql.html There's some fantastic documentation on Postgres and its internals: http://www.interdb.jp/pg/index.html https://momjian.us/main/presentations/internals.html https://www.postgresql.org/docs/current/internals.html
brasetvik · 2018-06-20
Another feature that should probably be on that list is Common Table Expressions: https://momjian.us/main/writings/pgsql/cte.pdf (I still frequently run into people who work a lot with SQL that don't use CTEs, though less than before :)
memracom · 2016-09-29
Usually an RDBMS like PostgreSQL is used in an environment that has a different usage pattern than search. SOLR can take advantage of specializing for that type of usage. However, Russia's largest search engine, Yandex, seems to like PG http://momjian.us/main/blogs/pgblog/2016.html#September_28_2016
qopp · 2016-08-01
Just to keep it in memory? Postgres does this already-- it will put tables or parts of tables in memory to speed up reads [1]. [1] Source: https://momjian.us/main/writings/pgsql/hw_performance/
dialogbox · 2016-07-27
As I know, not every updates rewrite indexes in PG. It has single page clean up and HOT (heap only tuple) update optimization. Please refer to 64~ page of https://momjian.us/main/writings/pgsql/mvcc.pdf.
scosman · 2016-01-13
This is really awesome. I've spent a ton of time optimizing high throughput PG instances. Every time one of my optimizations failed it was from an incomplete understanding of the physical storage layer and/or MVCC. These 2 docs really help with a deeper understanding if you want to learn more: http://momjian.us/main/writings/pgsql/internalpics.pdf http://momjian.us/main/writings/pgsql/mvcc.pdf
tomiko_nakamura · 2015-03-02
MVCC means "Multiversion Concurrency Control" and yes, that's pretty much exactly how it works (creating copies of the rows, so that different snapshots see different rows). In practice it's more complicated of course. A nice intro to MVCC is available here: http://momjian.us/main/writings/pgsql/mvcc.pdf (and in the Bruce's other talks http://momjian.us/main/presentations/internals.html). Or maybe you mean something else by Multi-value-Concurrency. In that case please elaborate.

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close