Background Writer
Der PostgreSQL-Prozess, der geänderte Seiten vorausschauend aus dem Puffer-Cache herausschreibt, damit eine Abfrage, die einen freien Puffer braucht, nicht selbst anhalten und einen wegschreiben muss.
Braucht ein Backend Platz in shared_buffers, sucht es sich eine Seite, die eine Weile nicht benutzt wurde. Ist diese Seite verändert ("dirty"), muss sie zuerst herausgeschrieben werden — und genau darauf muss die Abfrage warten, mitten in ihrer eigentlichen Arbeit. Der Background Writer geht deshalb schon vorher los und leert solche Kandidaten in aller Ruhe. Nicht zu verwechseln mit dem Checkpointer, der in regelmäßigen Abständen alles Geänderte herausschreibt, um die Wiederherstellungszeit zu begrenzen; der Background Writer arbeitet kontinuierlich und nur an dem, was ohnehin bald wiederverwendet wird. Ob er mithält, erkennt man daran, wie viele Seiten Backends selbst schreiben mussten im Vergleich zu dem, was er geschafft hat.