Utkarsh Srivastava (@tangledbytes) header
Utkarsh Srivastava (@tangledbytes) profile picture

Engineer @IBM & PE @RedHat / Views are my own

Joined January 2019
Weekend is here and so are my hypervisor updates. Was pretty occupied the entire week but managed to debug my `Invalid OpCode` issue with KVM. Root cause? - I wasn't loading all of the segments of the ELF properly 🤦‍♂️. Now finally kernel is loading properly and has a simple serial driver. Off to the real work now, a hypervisor, deterministic hypervisor!
1
2
1
40
6,085
Not much of an update today. Spent almost the entire day debugging "KVM internal error". Happens only if I call `panic!` in my Kernel (not in bootloader). The paging is set, stack is set, ELF sections are loaded properly. Will continue debugging this week.
1
26
1,911
And my bootloader can finally load my kernel! That completes step 1 of many other steps in my attempt create a hypervisor!
2
4
91
11,131
Bootloader can now properly parse the EFI_SYSTEM_TABLE and can extract RSDP related data to pass onto the kernel. It might have been a mistake to write all the parsers on my own but it forces me to carefully go through both ACPI as well as UEFI specs (for copy-pasta).
1
6
677
After a busy week, finally started working on the hypervisor! The goal is to have a simple bootloader + kernel (capable of creating simple VMs) up and running by the end of this weekend.
2
2
56
6,476
This weekend's read was "DiffKV". It was kinda dense read as it is an amalgamation of quite a few ideas: - Inline KVs for small sized vals. - Separate KVs to a vTree (LSM like structure) for mid sized vals. - Separate KVs to a vLog (ref: WiscKey) for large vals. - Use "hotness aware" vLog. - Reduce GC overhead by running them "lazily" - Several other optimizations! I really liked the paper for the various ideas it shared but I think it definitely is more complex for my needs right now :).
1
14
91
8,037
I am reviewing the literature around LSM based storages as I am planning to write a toy etcd compatible DB. Today's read was "WiscKey". The basic ideas of the paper are: - Store values in a separate vLog file to reduce amplifications. - Replace regular log file with vLog file. - To reduce the cost of randomized IO on the vLog file use prefetching (exploit SSD parallelism). I am not sure how GC on vLog will affect performance when the system is under high write workload. My concern is not the algorithms or locks but GC saturating the Disk bandwidth.
4
7
48
4,426
And my copy of “Hacker’s delight” is finally here! Thanks to #1BRC!
5
50
5,887
Yesterday I decided to give @zeddotdev a shot and saw "CRDT" (on their site) which piqued my interest in them again. "A Gentle Introduction to CRDTs" was a fun little read! I am considering to read a few foundation papers on CRDTs as they are still a huge black box for me.
3
1
32
2,954
"Slashing Data Transfer Costs in AWS by 99%" was a fun little read. The idea is to use S3 for data transfer relying on: - S3 does replication across AZs in the region - No cost to download and upload to S3 - Minimizes cost of storage is cleared < 1 hour Cons: High latency
1
10
1
73
7,066
This was an interesting read! They faced primarily 2 issues on baremetal: 1. GC using too much CPU when there were many allocations - Fixed by tuning GC. 2. Making too many `EpollWait` syscalls due to limited NetPoll "ready sockets" buffer size - Fixed by spawning > 1 processes.
2
5
64
5,645
Zomato's blog on migration from TiDB to Dynamo DB was a confusing read for me. It seems they had 2 primary issues: 1. Slow queries bcz of their data model 2. Over provisioning due to self-hosting Why not move to TiDB cloud and change the data model (they did anyway for dyanamo)?
9
1
58
11,552
Today's not so mini-read "Locking in Webkit". The article talks about building a userspace adaptive lock focussed on minimum memory usage (<= 1 byte) and throughput maximization and contention. Note: They build lock on top of their pre-existing thread parking framework.
1
26
2,548
Absolutely enjoyed reading "The Myth of RAM"! It's a 4 part article talking about how random memory access is not O(1) rather is O(sqrt(n)) and then goes on to talk about its implications in part 3. PS: I don't really understand the "theoretical limit" in part 2.
7
80
2
642
87,398
I enjoy reading Swiggy's (Food Delivery Company) "BehindTheBug" articles where they share their learnings from an outage. "Breaking the Event Pipeline" is a similar article which investigates the outage they experienced in Nov 2022. My takeaway: Always have regression suite!
3
12
90
11,989