# Writing

Everything written here, newest first: essays, notes and updates on computer science, databases first, and whatever else I am learning.

> Canonical URL: https://sudohulk.com/writing
> Author: Vignesh Kumar A <vignesh@sudohulk.com>
> Licence: CC BY 4.0. Quote freely, cite the canonical URL.

---

Everything, newest first: essays, notes still being worked out, and shorter updates. Each stream has its own page and feed; the notes alone, each with how far to trust it, are in [Notes](https://sudohulk.com/notes.md).

Streams: [Tech](https://sudohulk.com/tech.md) · [Meta](https://sudohulk.com/meta.md)

## Pinned

- [Hi, I'm Vignesh. Start here](https://sudohulk.com/writing/hello-sudohulk.md): I'm a database engineer at Zoho, working on database internals. Why I write here in public, and how to use the site. (meta; 2026-09-21; 3 min; part 1 of Building sudohulk.com)

## 2026

- [How PostgreSQL tells every connection its cache is stale](https://sudohulk.com/writing/postgres-cache-invalidation.md): Each PostgreSQL connection caches the catalog for itself. How a change is announced to all of them at commit through a shared ring, and what happens to a connection that falls behind. (tech; 2026-10-17; 19 min; part 5 of PostgreSQL internals, explained simply)
- [Full-page writes and torn pages](https://sudohulk.com/writing/full-page-writes-and-torn-pages.md): Why the first change to a page after a checkpoint carries the whole 8 KB page in WAL. (note, evergreen; tech; planted 2026-09-22)
- [Lazy transaction id assignment](https://sudohulk.com/writing/lazy-xid-assignment.md): A transaction does not get an xid at BEGIN; it gets one the first time it writes. (note, seedling; tech; planted 2026-09-22)
- [pd_lsn vs record LSN](https://sudohulk.com/writing/pd-lsn-vs-record-lsn.md): Two LSNs that are easy to mix up, and the rule recovery uses to compare them. (note, budding; tech; planted 2026-09-21)
