This post closes the study of Selinger et al. (1979), covering nested queries. Whether a subquery references columns from the outer query determines if it runs once or thousands of times.
Posts for: #Postgresql
Access Path Selection in a Relational Database Management System - Chapter 5: Joins and the Planner
This post continues the study of ‘Access Path Selection in a Relational Database Management System’ (Selinger et al., 1979), now covering chapter 5 and how the optimizer handles joins. PostgreSQL uses hash join most often, which the 1979 paper doesn’t describe.
Access Path Selection in a Relational Database Management System - Chapter 4: Cost Formulas
This post continues the study of ‘Access Path Selection in a Relational Database Management System’ (Selinger et al., 1979), now covering chapter 4 and the cost formulas the optimizer uses to compare access paths for a single relation.
Access Path Selection in a Relational Database Management System - Notes Through Chapter 3
This post is a study dump. I’ve been reading ‘Access Path Selection in a Relational Database Management System’ (Selinger et al., 1979) and stopped at chapter 3 to consolidate what I learned.
What fork() actually copies and how it impact your celery service
A configuration flag changed. A boolean. The side effect opened a database connection pool before fork() and took down every Celery worker in production. This is an account of the investigation, the OS internals behind it, and a proposed solution still waiting for staging validation.