Why do we use caches at all? Can databases fully replace them?| avi.im
SQLite when used with WAL doesn’t do fsync unless specified.| avi.im
SQLite WAL has checksums, but on corruption it drops all the data and does not raise error| avi.im
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| avi.im
SQLite does not do checksums by default. Disk corruptions go silently unnoticed.| avi.im
My answer to a question online, why?| blag
why SQLite is cracked| blag
This is a /now page. Work I work at Turso Database. Learning Rust and C.| blag
Some resources for learning C| blag
A smoll intro to snapshot testing| blag
I got my patches accepted into SQLite fork, libSQL codebase!| blag
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.| blag
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.| blag
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?| blag
This short post will show how to add a secondary only index in a MongoDB replica set| blag
CaskDB is an educational project which aims to guide you in writing a persistent, embeddable database from scratch.| blag
the Recurse Center winter break| blag
I forked and modified Go compiler to add a new keyword called let, as alias for var| blag
I worked on upgrading a Django project from v1 to v4| blag
| blag
Disk Storage II| blag
Disk Storage I| blag
merged few open pull requests on my projects| blag
I translated B Tree Algorithms from CLRS to Python| blag
I learned how using MongoDB was fatal for a startup| blag
I started re-reading Raft and I learned why it is called so!| blag
Anomalies which define transaction isolation levels| blag
I started writing code for B Tree insertions| blag
How does one start learning to build distributed systems?| blag
I learnt a few things about Dynamo| blag
I found out the answer to B tree fill factor| blag
I learnt some basics of ncurses| blag
B Tree Root: how would you design it?| blag
Reflections on the first week of the Recurse Center| blag
Learning the basics of GC, mark-sweep algorithm| blag
Q: How do I have a same B Tree fill factor across all nodes?| blag
TIL Hammock Driven Development| blag
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. Then I started wondering how best would I represent a B Tree node in code.| blag
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 lovely people.| blag
Projects I want to work on at RC| blag
I got accepted into Recurse Center, wooo!| blag
This is a chronicle of my experiment where I set out to insert 1B rows in SQLite| blag
This is a short post explaining how I marshaled http.Request into json| blag
Github Actions for Hugo but with particular requirements| blag
some personal notes to remember the migration effort from Pelican to Hugo| blag
Simple code example to show catching SIGTERM in a Python script.| blag
When contributing to Open Source Projects, new contributors often run into problems of having multiple merge commits and issues with keeping the forked repo in sync. This post addresses solutions for some of the problems.| blag
Simple steps to get uWSGI up and running in Python 3.| blag
Using praw and prawoauth2 to find when is my cake day on Reddit.| blag
With a simple Man In The Middle (MITM) attack, I tried to cheat(?) one of Amazon India’s contest.| blag
In this simple tutorial I will show how to maintain multiple git emails on a same machine. And how to configure git emails per directory or per project.| blag
In May, 2015 I found an exploit on Gaana.com, which let me access their entire User Database (more than 10 Million) which included all the user info.| blag
This tutorial will explain you how to flash Asus-WRT Merlin by XVortex on NetGear NightHawk R7000.| blag
This tutorial will help you install Windows 8 on a Legacy BIOS in UEFI mode using Clover and dual boot with Yosemite.| blag
Simple code example to illustrate scraping a javascript driven website, using Python and Dryscape.| blag
This tutorial will explain you how to install Transmission client on Raspberry Pi running Raspbian.| blag
Some Stuff About Me| blag
Some of the projects I have done.| avi.im
Some of the interesting and insane facts I learned about SQLite| blag
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| avi.im
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.| blag
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| avi.im
In this third part of the series, I will show how we can implement a durable, distributed, and highly available log using S3| avi.im
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| avi.im
Most databases don’t do checksums by default. Disk corruptions go silently unnoticed.| blag
a brief introduction to disaggregated storage systems in context of database systems| avi.im
how my curiosity lead me to discover a weird inconsistency with MongoDB where I was able to insert records that conflicted the index constraints| avi.im