@ikristina

4 Followers
9 Following
25 Posts

Another PR to OSS merged 🥹 - CockroachDB

https://ikristina.github.io/blog/cockroachdb_pr

#open-source #cockroachdb #go #sql

Another PR to OSS merged 🥹 - CockroachDB

My second contribution to open source - a fix for a bug in CockroachDB's PL/pgSQL UDF support.

Threads of Thought
MVCC in MongoDB with WiredTiger

How WiredTiger implements MVCC under MongoDB - timestamps, snapshot isolation, the history store, write conflicts, and how it compares to PostgreSQL.

Threads of Thought
Adding Native Retry Logic to gofalcon

How I added built-in exponential backoff retry support to the CrowdStrike Falcon Go SDK, so callers no longer have to roll their own.

Threads of Thought
How MVCC Works and Why Databases Use It

Multi-version concurrency control lets readers and writers proceed without blocking each other. A breakdown of the core mechanics, and how PostgreSQL, CockroachDB, and MySQL InnoDB implement them.

Threads of Thought
Write-Ahead Logging and Database Durability

Write-ahead logging is the mechanism behind crash safety in almost every serious storage system. This post explains how it works from first principles, and how PostgreSQL, SQLite, RocksDB, and etcd each implement the same core idea.

Threads of Thought

The "One-Way Street" Problem: Why We Clone Request Bodies in Go

https://ikristina.github.io/blog/shorts-io-nopcloser

#go #http #io #python #java #nodejs #streams #shorts

The "One-Way Street" Problem: Why We Clone Request Bodies in Go

If you're coming from languages like Python or Java, Go's handling of HTTP request bodies might feel like a trap. We try to read a request body twice (e.g. once for logging and once for processing) and the second time, it's mysteriously empty.

Threads of Thought
Pagination: cursor or offset?

When to use cursor-based vs offset-based pagination.

Threads of Thought
Adding Full-Stack Observability to a Go Worker Pool

How to add metrics, logs, and traces to a Go worker pool using Prometheus, Loki, Tempo, and Grafana, with every import and config line explained.

Threads of Thought
What Happens When You Write a Row to PostgreSQL

A deep dive into the journey of a single INSERT statement through PostgreSQL: from query parsing and planning, through the WAL, buffer pool, and heap file, to the moment your data is truly durable.

Threads of Thought
Building a Worker Pool in Go

When you have a list of tasks to run concurrently, the naive approach is to spin up one goroutine per task. That works until it doesn't. A worker pool gives you bounded concurrency, backpressure, and clean shutdown without much added complexity.

Threads of Thought