Primary Index v/s Secondary Index

In this very short post, I will give an overview of primary and secondary indexes in Databases. DISCLAIMER: I am an Oracle employee, and the views/opinions expressed in the below article are purely my own and do not express the views of my employer. Let me tell the similarities first: Similarities Both the index structures... Continue Reading →

Extendible Hashing

In the previous post, I had given a brief description of Linear Hashing technique. In this post, I will talk about Extendible Hashing. Like Linear Hashing, Extendible Hashing is also a dynamic hashing scheme. First let's talk a little bit about static and dynamic hashing as I had skipped this part in my previous post.... Continue Reading →

Linear Hashing

In this blog post, I will give an introduction to a hashing methodology called Linear Hashing. Hash Table Detour A hash table is a well known in-memory structure that supports key-value access with lookup cost being amortized O(1). The hash table is just an array, and each location/index in the array stores a <KEY,VALUE> item.... Continue Reading →

Pointer World !!

In this post, I will just give a brief overview of using pointers in several ways in our C/C++ programs. Pointer is sort of a known concept. Hence, the post will be focusing on the usage in various scenarios like arrays, strings, structs, functions along with code examples. Pointer to Pointer Pointers and Arrays Array... Continue Reading →

Leader Election and Log Replication in Raft – Part 2

In the last part of this post, I gave a general overview of Raft followed by Leader Election algorithm. We now need to discuss, how leader does the consistent replication of log onto the follower nodes, few more safety properties, and constraints on the election mechanism. Log Replication For now let's assume that client requests... Continue Reading →

Fenwick Trees

In this post I will talk about Fenwick Trees aka Binary Indexed Trees. I got to use them recently while solving a problem in a coding challenge. Problem: Let's say we have an array of N positive integers. We need to be able to serve the following two operations efficiently: GetPrefixSum(i) - Gets the cumulative... Continue Reading →

Paging v/s Swapping

Swapping is the procedure of copying out the entire process(its address space) from main memory to some sort of secondary storage(typically hard disk or tape storage). Usually this is done as a result of CPU scheduling. Operating System typically maintains a read-to-run queue of processes. The queue comprises of information about processes that are ready... Continue Reading →

Create a free website or blog at

Up ↑

%d bloggers like this: