RSSAmplifier

Blog

blag

Recent content on blag

avi.imRSS feed ↗70 posts

Latest posts

SQLite prefixes its temp files with `etilqs_`

Here’s some wild lore inside SQLite’s source code explaining why temp files start with etilqs_

Setsum - order agnostic, additive, subtractive checksum

A brief introduction to Setsum - order agnostic, additive, subtractive checksum

Oldest recorded transaction

The oldest recorded transaction was in 3100 BC

Replacing a cache service with a database

Why do we use caches at all? Can databases fully replace them?

SQLite commits are not durable under default settings

SQLite doesn’t do fsync unless specified.

PSA: SQLite WAL checksums fail silently and may lose data

SQLite WAL has checksums, but on corruption it drops all the data and does not raise error

Rickrolling Turso DB (SQLite rewrite in Rust)

This is a beginner’s guide to hacking into Turso DB (formerly known as Limbo), the SQLite rewrite in Rust. I will explore how to get familiar with Turso’s codebase, tooling and tests

Collection of insane and fun facts about SQLite

Some of the interesting and insane facts I learned about SQLite

How bloom filters made SQLite 10x faster

This is the fascinating story of how researchers used Bloom filters cleverly to make SQLite 10x faster for analytical queries. These are my five-minute notes on the paper SQLite: Past, Present, and Future

In search of a faster SQLite

Researchers at the University of Helsinki and Cambridge attempted to build a faster SQLite using modern programming paradigms like io_uring and disaggregated storage. They demonstrate up to a 100x reduction in tail latency. These are my notes.

Galloping Search

I recently learned about Galloping Search while building a distributed log called s3-log. It’s used to search sorted items when the upper bound is unknown. In this short post, I will share my notes and other alternatives I discovered for searching over unbounded items

Building a distributed log using S3 (under 150 lines of Go)

In this third part of the series, I will show how we can implement a durable, distributed, and highly available log using S3

Zero Disk Architecture

State is pain. The next generation of infrastructure tools will be built on diskless paradigm. In this short post I will explain what is Diskless / Zero Disk Architecture

PSA: Most databases do not do checksums by default

Most databases don’t do checksums by default. Disk corruptions go silently unnoticed.

PSA: SQLite does not do checksums

SQLite does not do checksums by default. Disk corruptions go silently unnoticed.

Disaggregated Storage - a brief introduction

a brief introduction to disaggregated storage systems in context of database systems

Why does SQLite (in production) have such a bad rep?

My answer to a question online, why?

SQLite Slaps

why SQLite is cracked

Now

This is a /now page. Work I work at Turso Database . Learning Rust and C .

Learning C

Some resources for learning C

Snapshot Testing

A smoll intro to snapshot testing

Win: contribution to libSQL (SQLite) codebase

I got my patches accepted into SQLite fork, libSQL codebase!

Errata in Hekaton MVCC paper

Hekaton MVCC Paper contains a publication error. After reviewing the paper, I confirmed the error with one of the authors. This blog post explains the mistake, the implications and the fix.

Internet is wholesome: MVCC edition

This is a short story about how I hit a wall while implementing a database research paper, found a publication error and how people on the internet helped me.

It is becoming difficult for me to be productive in Python

It’s harder to refactor a large Python codebase. Type hints won’t save you, and you need a lot of unit tests. But how does that work in practice? Is Python fast to ship?

MongoDB secondary only index

This short post will show how to add a secondary only index in a MongoDB replica set

Introducing CaskDB – a project to teach you writing a key-value store

CaskDB is an educational project which aims to guide you in writing a persistent, embeddable database from scratch.

Recurse Center: Winter Break

the Recurse Center winter break

Recurse Center Day 24: Hacking Go compiler to add a new keyword

I forked and modified Go compiler to add a new keyword called let , as alias for var

Recurse Center Day 20: Django v4 upgrade (from v1)

I worked on upgrading a Django project from v1 to v4

Recurse Center Day 19

Recurse Center Day 18

Disk Storage II

Recurse Center Day 17

Disk Storage I

Recurse Center Day 16: Open Source

merged few open pull requests on my projects

Recurse Center Day 15: B Tree Algorithms

I translated B Tree Algorithms from CLRS to Python

Recurse Center Day 14: NoSQL Transactions

I learned how using MongoDB was fatal for a startup

Recurse Center Day 13: Why 'Raft'?

I started re-reading Raft and I learned why it is called so!

Recurse Center Day 12: Isolation Anomalies

Anomalies which define transaction isolation levels

Recurse Center Day 11: B Tree Insertions

I started writing code for B Tree insertions

Recurse Center Day 10: Learning Distributed Systems

How does one start learning to build distributed systems?

Recurse Center Day 9: Papers We Love

I learnt a few things about Dynamo

Recurse Center Day 8: B Tree Fill Factor (Part 2)

I found out the answer to B tree fill factor

Recurse Center Day 7: Basics of ncurses

I learnt some basics of ncurses

Recurse Center Day 6: B Tree Root

B Tree Root: how would you design it?

Recurse Center First Week

Reflections on the first week of the Recurse Center

Recurse Center Day 5: Garbage Collection Algorithms

Learning the basics of GC, mark-sweep algorithm

Recurse Center Day 4: B Tree fill factor

Q: How do I have a same B Tree fill factor across all nodes?

Recurse Center Day 3: Hammock Driven Development

TIL Hammock Driven Development

Recurse Center Day 2: BTree Node

This is a draft post that I have prematurely published. Currently, I am attending RC and I want to write as much as possible, log my daily learnings and activities. But, I also don't want to spend time on grammar and prose, so I am publishing all the posts which usually I'd have kept in my draft folder. B Tree I started working on the B Tree project, created a Github repo, put up skeleton code.…

Recurse Center Day 1: init

This is a draft post that I have prematurely published. Currently, I am attending RC and I want to write as much as possible, log my daily learnings and activities. But, I also don't want to spend time on grammar and prose, so I am publishing all the posts which usually I'd have kept in my draft folder. My RC first day was filled with welcome events and fun activities. It was nice to meet all the…