Christophe Pettus, a PostgreSQL consultant, writes about running, securing, backing up, and tuning PostgreSQL.
HN links his talks and posts on PostgreSQL as a document store, running on AWS, and full disk encryption; pgxbackup is also mentioned.
Further reference material:
- PgSQL mailing list thread discussing Uber's post: https://www.postgresql.org/message-id/579795DF.10502%40commandprompt.com
- Slides from "A PostgreSQL Response to Uber", a talk that provides the PgSQL-perspective counterarguments to the Uber post: http://thebuild.com/presentations/uber-perconalive-2017.pdf [PDF]
- Previous HN discussion on the above: https://news.ycombinator.com/item?id=14222721
- Slides from "Migrating Uber from MySQL to Postgres" (2013), in which Uber's prior migration _to_ PgSQL is discussed: https://www.yumpu.com/en/document/view/53683323/migrating-uber-from-mysql-to-postgresql
I would like to quote PostgreSQL Experts (this applies to all DBs): FULL DISK ENCRYPTION IS USELESS. [1]
FDE protects against…
• … theft of the media.
• That’s it.
• That is about 0.00000002% of the actual
intrusions that you have to worry about.
• Easy rule: If psql can read it in cleartext, it’s
not secure.
• (It’s a great idea for laptops, of course.)
And then it recommends: "Always encrypt specific columns, not entire
database or disk"
However encrypt your backups.
I think it is fairly sensible.
[1] Securing PostgreSQL [PDF], Page 31 : http://thebuild.com/presentations/pgconfeu-2016-securing-postgresql.pdf
This post comes uncomfortably close to plagiarizing https://thebuild.com/blog/2026/04/23/preempt_none-is-dead-your-postgres-probably-doesnt-care/, which it cites as a source; almost all the technical explanation is in there and some of the wording is extremely similar. Compare, e.g., "What Linux 7.0 actually changed" in Pettus's post to "What Is Preemption?" in this one. I think this link should have been to Pettus's post instead.
In the case of Postgres, it has indexable json and hstore datatypes that enable the use of a table as a key-value store.
And, it has good performance when compared to MongoDB: http://thebuild.com/presentations/pg-as-nosql-pgday-fosdem-2013.pdf
So in this case, it is using Postgres as intended by the datatype designers.
May be you are thinking of the Ruby Rails ORMs.
I found this talk by Christophe Pettus [1] very informative. The title is somewhat misleading as most of the talk has little to do with Python, but it's a good introduction to more advanced Postgres concepts. Also available in PDF form [2].
[1] https://www.youtube.com/watch?v=0uCxLCmzaG4
[2] http://thebuild.com/presentations/pycon-2014-pppp.pdf
Thanks for the feedback, when initially creating the performance area there weren't a lot of great references. There's now one really great set of slides from a talk that gives you the basics of configuring your own postgresql.conf, I'll make sure to add it soon as an additional reference - http://thebuild.com/presentations/not-your-job.pdf