# sudohulk · Vignesh Kumar A

Vignesh Kumar A, a database engineer at Zoho, keeps a write-ahead log of what he learns: database internals and computer science, written down plainly and corrected in the open.

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

---

**Vignesh Kumar A**, Database Engineer · Chennai, India

I'm Vignesh. I work on database internals at Zoho. Every post here is a record: written down plainly, corrected in the open, never quietly rewritten.

Currently: sharding, distributed query execution and two-phase commit, in C.

[About](https://sudohulk.com/about.md) · [Resume](https://sudohulk.com/resume.md) · [GitHub](https://github.com/vigneshdotdev) · [LinkedIn](https://www.linkedin.com/in/vigneshhq)

## 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. (2026-09-21; 3 min; part 1 of Building sudohulk.com)

## Now

- [PostgreSQL internals, explained simply](https://sudohulk.com/tracks/pg-internals-simply.md): One mechanism per post, in the order a change flows through the server. Analogy first, then the real thing, then the gotchas. (series; 1/5 parts; last activity 2026-10-17)

Also reading *Consensus on Transaction Commit*, *Designing Data-Intensive Applications*, *The Rust Programming Language*. [Bookshelf](https://sudohulk.com/bookshelf.md).

All: [Now](https://sudohulk.com/now.md).

## Latest

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

- [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)

All: [Writing](https://sudohulk.com/writing.md).

## Projects

- [Decentralized P2P Network](https://sudohulk.com/projects/p2p-network.md): A peer-to-peer messaging network in Rust on libp2p: messages arrive in under 50 ms across 100+ nodes, with Ed25519 peer identity and Noise-protocol encryption. (paused; rust, libp2p, ed25519, noise)
- [Hybrid Storage Engine](https://sudohulk.com/projects/hybrid-storage-engine.md): A key-value engine in C that keeps values in an append-only log and keys in a B-tree, so rewriting a large value does not churn the index around it. (paused; c)

All: [Projects](https://sudohulk.com/projects.md).

## Follow

By feed: [the essays and notes](https://sudohulk.com/rss.xml), [everything](https://sudohulk.com/writing/rss.xml), or one stream alone: [Tech](https://sudohulk.com/tech/rss.xml) · [Meta](https://sudohulk.com/meta/rss.xml). Every feed carries the whole text.

Or by email: [the newsletter](https://sudohulk.com/newsletter).

The map of the whole site, for machines: https://sudohulk.com/llms.txt.
