Stack traces for Postgres errors with backtrace_functions
A guide to debugging PostgreSQL errors using the backtrace_functions GUC to generate stack traces for non-crash errors.
Phil Eaton is a staff engineer working on Postgres and software internals, sharing insights on databases, systems engineering, and life deep in the software stack.
160 articles from this blog
A guide to debugging PostgreSQL errors using the backtrace_functions GUC to generate stack traces for non-crash errors.
A developer shares how charging $100 for chats, with proceeds going to charity, unexpectedly led to more meaningful tech conversations and connections.
A technical guide on using jemalloc to detect and debug memory leaks in PostgreSQL and other C/C++/Rust projects.
A technical guide on using heaptrack to debug memory leaks in PostgreSQL, with examples of introducing and detecting leaks in C code.
A developer argues that job titles limit potential and advocates for taking initiative beyond formal roles to advance your tech career.
Explores transactions as a protocol that can be added to any storage system, not an intrinsic feature, with examples from Delta Lake, Epoxy, and Two-Phase Commit.
Explores common disk I/O failure scenarios in transactional applications and how real-world systems handle data integrity issues.
An interview with engineer Phil Eaton on the motivations, benefits, and surprising impacts of maintaining a consistent technical blog.
A technical guide demonstrating how to perform a minimal-downtime major version upgrade of a PostgreSQL cluster using EDB Postgres Distributed.
A developer shares their 10-year journey from web development to specializing in database engineering, focusing on Postgres and distributed systems.
A guide on improving blog post clarity by identifying and editing confusing sentences, focusing on making technical writing understandable.
Argues that minimal standard libraries in languages like Rust and JavaScript lead to an explosion of transitive dependencies, harming maintainability.
A guide to embedding Python within a Rust application to create a custom test runner, allowing Python scripts to call Rust functions.
A technical guide to setting up and understanding logical replication between two PostgreSQL databases, including setup steps and limitations.
A developer reflects on reaching 1 million blog page views, discussing their blogging journey, static site tooling, and evolution of technical content.
Explores Postgres's MemoryContexts by building an HTTP server inside a Postgres extension to understand memory allocation.
Advises unemployed tech professionals to build projects and blog publicly to showcase skills and subtly signal job availability on social media.
A guide to using the Porcupine library to check for linearizability in distributed systems like registers and key-value stores, implemented in Go.
Phil Eaton explains the core concepts and intuitions behind distributed consensus systems in a technical talk.
A guide to building a simple, serverless ACID database inspired by Delta Lake using Go, focusing on atomic PutIfAbsent for concurrency control.