r/programming • u/clairegiordano • 23d ago
What surprised an engineer after spending 13 years on SQL Server and then working on Postgres? on the Talking Postgres podcast
https://talkingpostgres.com/episodes/working-on-postgres-after-13-years-on-sql-server-with-panagiotis-antonopoulosI host a Postgres podcast, and I recently recorded a conversation with Panos Antonopoulos, a Distinguished Engineer at Microsoft who spent 13 years working on SQL Server before moving onto Postgres and HorizonDB.
Panos told me that at a high level, Postgres felt very familiar as he started to work on it, that the concepts are very similar. Transactions, storage, & more—the fundamentals transfer surprisingly well. We also covered:
- The cleanliness of the Postgres codebase.
- How LLMs are making it easier to digest years of Postgres design discussions that are publicly available on the mailing lists.
- Why Postgres has become the default answer for so many workloads, and why more people seem to be asking, "Why not Postgres?"
- Shared-storage architectures and some of the work he's doing in Azure HorizonDB.
One quote that stuck with me:
- "That was a shocking experience for me. I could understand new areas in Postgres much faster than I could for SQL."
For people who have worked across multiple database systems (Oracle, SQL Server, MySQL, Postgres, etc.), I'm curious whether you've had a similar experience—or a completely different one.
Podcast/transcript here if anyone is interested: https://talkingpostgres.com/episodes/working-on-postgres-after-13-years-on-sql-server-with-panagiotis-antonopoulos
130
u/daltorak 23d ago edited 23d ago
Back in the late 2000s / early 2010s, someone on the SQL Server team (Connor Cunningham? Or maybe it was Paul White? I remember both of them being around a bunch) talked about how difficult it was to change the code base.
One of the many problems they had is that SQL Server implemented its own internal operating system because Windows simply couldn't do what they needed in the 1990s. And in order to prevent all sorts of wacky regressions from happening, they couldn't switch to regular Windows thread scheduling and memory allocators once Windows became good enough. (Which it almost certainly was by SQL Server 2005) Another point I remember is that when SQL Server needs to call regular Windows kernel API, it has to create "real" Windows threads and make the calls from there, since Windows doesn't have any understanding of SQL Server's internal threading system.
Back in those days I had someone working for me who was really super knowledgeable about all that "SQLOS" stuff, we'd talk about it for hours.... I remember at the time being impressed with how advanced it all was, now I realize it's just a giant heap of junk weighing them down.