[{"title":"I am not writing enough","content":"I have recently been seeing a lot of posts talking about how “You are not writing enough”. There’s book clubs reading “Writing for developers”, people tweeting everyday about how writing has...","permalink":"https://akshatsharma.xyz/posts/i-am-not-writing-enough/","summary":"I have recently been seeing a lot of posts talking about how “You are not writing enough”. There’s book clubs reading “Writing for developers”, people tweeting everyday about how writing has..."},{"title":"Generalized Isolation Level Definitions","content":"Personal notes on Generalized Isolation Level Definitions What are isolation levels? SQL Isolation levels(part of ACID) - Introduced to increase performance By improving concurrency Standardized? ANSI...","permalink":"https://akshatsharma.xyz/posts/generalized-isolation-levels/","summary":"Personal notes on Generalized Isolation Level Definitions What are isolation levels? SQL Isolation levels(part of ACID) - Introduced to increase performance By improving concurrency Standardized? ANSI..."},{"title":"CockroachDB, The Resilient Geo-Distributed SQL Database","content":"These are my personal notes on CockroachDB paper CockroachDB: What is it? CockroachDB is a scalable geo-distributed SQL DBMS. Built using global OLTP workloads in mind with high availability and stron...","permalink":"https://akshatsharma.xyz/posts/cockroachdb/","summary":"These are my personal notes on CockroachDB paper CockroachDB: What is it? CockroachDB is a scalable geo-distributed SQL DBMS. Built using global OLTP workloads in mind with high availability and stron..."},{"title":"tiktokify: A Hackathon winning product","content":"Last week, me and my team, http418, won the MongoDB Gen AI Hackathon. We created a tool called “tiktokify” which can automatically generate a small 30 second highlight clip from a video using clev...","permalink":"https://akshatsharma.xyz/posts/experience_mongo_gen_ai_hackathon/","summary":"Last week, me and my team, http418, won the MongoDB Gen AI Hackathon. We created a tool called “tiktokify” which can automatically generate a small 30 second highlight clip from a video using clev..."},{"title":"Web3","content":"Notes Bittorrent Bittorrent is already a decentralized file sharing platform. How does bittorrent work? When a client receives a .torrent file, it uses the DHT embedded inside the .torrent file to con...","permalink":"https://akshatsharma.xyz/posts/22-web3/","summary":"Notes Bittorrent Bittorrent is already a decentralized file sharing platform. How does bittorrent work? When a client receives a .torrent file, it uses the DHT embedded inside the .torrent file to con..."},{"title":"BFT Membership","content":"Notes Byzantine protocols can be used to increase the throughput of the blockchain but byzantine protocols work only with a closed membership model. Need to define an open membership model for BFT pro...","permalink":"https://akshatsharma.xyz/posts/21-bft-membership/","summary":"Notes Byzantine protocols can be used to increase the throughput of the blockchain but byzantine protocols work only with a closed membership model. Need to define an open membership model for BFT pro..."},{"title":"Permissioned Chains","content":"Notes After Bitcoin, other coins started popping up- Litecoin(using its hashing algo) only allowed mining using GPUs or CPUs. Monero(using its hashing algo) only allowed mining using CPUs. Ethereum al...","permalink":"https://akshatsharma.xyz/posts/20-permissioned-chain/","summary":"Notes After Bitcoin, other coins started popping up- Litecoin(using its hashing algo) only allowed mining using GPUs or CPUs. Monero(using its hashing algo) only allowed mining using CPUs. Ethereum al..."},{"title":"Proof of Work","content":"Notes Bitcoin Reasoning for making bitcoin Anonymous Decentralized money system No trust in the government money system How does this work in a no trust environment? Use asymmetric encryption scheme l...","permalink":"https://akshatsharma.xyz/posts/19-proof-of-work/","summary":"Notes Bitcoin Reasoning for making bitcoin Anonymous Decentralized money system No trust in the government money system How does this work in a no trust environment? Use asymmetric encryption scheme l..."},{"title":"Critique of ANSI SQL Isolation Levels","content":"Notes Types of locks - Write lock Read lock Predicate lock - Lock where multiple rows are locked for reads(WHERE clause) All of these locks are long locks(Meaning all are acquired first and then all a...","permalink":"https://akshatsharma.xyz/posts/18-critique-of-ansi-sql-isolation-levels/","summary":"Notes Types of locks - Write lock Read lock Predicate lock - Lock where multiple rows are locked for reads(WHERE clause) All of these locks are long locks(Meaning all are acquired first and then all a..."},{"title":"SSH Permissions","content":"How To Set Correct SSH Directory Permissions in Linux Set Correct SSH Directory Permissions in Linux If you ever encounter errors while trying to SSH into a server, you can set correct ssh directory p...","permalink":"https://akshatsharma.xyz/posts/ssh-permissions/","summary":"How To Set Correct SSH Directory Permissions in Linux Set Correct SSH Directory Permissions in Linux If you ever encounter errors while trying to SSH into a server, you can set correct ssh directory p..."},{"title":"Percolator","content":"Notes Bigtable doesn’t support multi-row/multi-table transactions. Why does Google need multi-table transactions? Removing duplicates(Multiple URLs may lead to the same website), calculation of page...","permalink":"https://akshatsharma.xyz/posts/17-percolator/","summary":"Notes Bigtable doesn’t support multi-row/multi-table transactions. Why does Google need multi-table transactions? Removing duplicates(Multiple URLs may lead to the same website), calculation of page..."},{"title":"Spanner","content":"Notes Two strategies for implementing deadlock prevention used in 2-phase locking Wound wait - Force the lock to release from another transaction Wait die - Wait for lock to be released or die https:/...","permalink":"https://akshatsharma.xyz/posts/16-spanner/","summary":"Notes Two strategies for implementing deadlock prevention used in 2-phase locking Wound wait - Force the lock to release from another transaction Wait die - Wait for lock to be released or die https:/..."},{"title":"Serializability","content":"Important Reading to help understand: https://jepsen.io/consistency Notes A - Atomicity (All or nothing of a transaction) C - Consistency (Consistent with the constraints on database tables) I - Isola...","permalink":"https://akshatsharma.xyz/posts/15-serializability-and-transactions/","summary":"Important Reading to help understand: https://jepsen.io/consistency Notes A - Atomicity (All or nothing of a transaction) C - Consistency (Consistent with the constraints on database tables) I - Isola..."},{"title":"Fork-join Consistency","content":"Notes Causal consistency and logical timestamps Logical Timestamps(Lamport timestamps) don’t imply causal consistency [13) Causal Consistency, COPS#Causal]({{\u003c ref “13) Causal Consistency, COPS#ca...","permalink":"https://akshatsharma.xyz/posts/14-fork-join-consistency/","summary":"Notes Causal consistency and logical timestamps Logical Timestamps(Lamport timestamps) don’t imply causal consistency [13) Causal Consistency, COPS#Causal]({{\u003c ref “13) Causal Consistency, COPS#ca..."},{"title":"Causal Consistency","content":"Notes Requirements for consistencies Linearizability Global ordering Completion to Invocation globally Sequential Global ordering Completion to Invocation per client Causal Completion to invocation pe...","permalink":"https://akshatsharma.xyz/posts/13-causal-consistency-cops/","summary":"Notes Requirements for consistencies Linearizability Global ordering Completion to Invocation globally Sequential Global ordering Completion to Invocation per client Causal Completion to invocation pe..."},{"title":"Eventual Consistency","content":"Notes Dynamo is similar to a Distributed Hash Table meaning it uses consistent hashing. Dynamo is called a zero-hop DHT because each node has enough information about the whole consistent hashing ring...","permalink":"https://akshatsharma.xyz/posts/12-eventual-consistency/","summary":"Notes Dynamo is similar to a Distributed Hash Table meaning it uses consistent hashing. Dynamo is called a zero-hop DHT because each node has enough information about the whole consistent hashing ring..."},{"title":"Linearizability","content":"Notes Consistency is a spectrum with weak to strong levels. GFS/Eventual consistency is an example of weak consistency. Linearizability is an example of strong consistency. Consistency can be defined ...","permalink":"https://akshatsharma.xyz/posts/11-linearizability/","summary":"Notes Consistency is a spectrum with weak to strong levels. GFS/Eventual consistency is an example of weak consistency. Linearizability is an example of strong consistency. Consistency can be defined ..."},{"title":"Byzantine Failures","content":"Readings - Practical Byzantine Fault Tolerance.pdf Byzantine PAXOS.pdf Notes What can be potential byzantine failures? Wrong replies which cannot be detected Halt consensus(same as crash so not really...","permalink":"https://akshatsharma.xyz/posts/10-byzantine-failures/","summary":"Readings - Practical Byzantine Fault Tolerance.pdf Byzantine PAXOS.pdf Notes What can be potential byzantine failures? Wrong replies which cannot be detected Halt consensus(same as crash so not really..."},{"title":"MongoDB Replication","content":"Notes Background Already existing scheme used db query for replication Replication scheme was in such a way that any follower could query any other follower Due to this when they tried to implement RA...","permalink":"https://akshatsharma.xyz/posts/9-mongodb-replication/","summary":"Notes Background Already existing scheme used db query for replication Replication scheme was in such a way that any follower could query any other follower Due to this when they tried to implement RA..."},{"title":"PAXOS Made Live","content":"Notes Runs in 2 phases - Phase 1 - get a promise from majority of servers Phase 2 - get a majority of servers to commit Two important rules Two numbers should be used to track the system Highest seen ...","permalink":"https://akshatsharma.xyz/posts/8-paxos-made-live/","summary":"Notes Runs in 2 phases - Phase 1 - get a promise from majority of servers Phase 2 - get a majority of servers to commit Two important rules Two numbers should be used to track the system Highest seen ..."},{"title":"PAXOS","content":"RAFT Notes What kind of system is RAFT? Exactly once/At least once/ At most once? Two ways to approach this: Application layer is responsible for de-duplication and the command is just appended (albei...","permalink":"https://akshatsharma.xyz/posts/7-paxos/","summary":"RAFT Notes What kind of system is RAFT? Exactly once/At least once/ At most once? Two ways to approach this: Application layer is responsible for de-duplication and the command is just appended (albei..."},{"title":"RAFT","content":"Notes","permalink":"https://akshatsharma.xyz/posts/6-raft/","summary":"Notes"},{"title":"Fault Tolerant VMs","content":"Notes While reading a paper, also pay attention to the authors and why they encountered this problem. While replicating, there are 2 options for replication: Sending the input to the replicas Sending ...","permalink":"https://akshatsharma.xyz/posts/5-fault-tolerant-vms/","summary":"Notes While reading a paper, also pay attention to the authors and why they encountered this problem. While replicating, there are 2 options for replication: Sending the input to the replicas Sending ..."},{"title":"RPC, Couroutines","content":"TIL htop C100k problem Timer interrupt(A periodic interrupt that allows the OS to stop the current thread’s execution and schedule a different thread) Coroutine Notes 1-thread and n-thread: Advantag...","permalink":"https://akshatsharma.xyz/posts/4-rpc-coroutine/","summary":"TIL htop C100k problem Timer interrupt(A periodic interrupt that allows the OS to stop the current thread’s execution and schedule a different thread) Coroutine Notes 1-thread and n-thread: Advantag..."},{"title":"GFS","content":"File systems that already existed during GFS - GPFS/Lustre/AFS Why GFS was built instead of using existing ones? GPFS and Lustre are paid systems(could be the main reason) Specialized workflows Most c...","permalink":"https://akshatsharma.xyz/posts/3-gfs/","summary":"File systems that already existed during GFS - GPFS/Lustre/AFS Why GFS was built instead of using existing ones? GPFS and Lustre are paid systems(could be the main reason) Specialized workflows Most c..."},{"title":"MapReduce","content":"TIL: POSIX Reason for MapReduce(Why use a distributed system?) Lots of data(1 PetaByte), machines had 160 GB storage so can’t process in one machine I/O speed is very low(performance) Fault toleranc...","permalink":"https://akshatsharma.xyz/posts/2-mapreduce/","summary":"TIL: POSIX Reason for MapReduce(Why use a distributed system?) Lots of data(1 PetaByte), machines had 160 GB storage so can’t process in one machine I/O speed is very low(performance) Fault toleranc..."},{"title":"FamPay Interview Experience","content":"I had applied at FamPay through their Careers page. The process consisted of uploading my resume and then answering some questions regarding the projects I had done and why I wanted to join FamPay. Ap...","permalink":"https://akshatsharma.xyz/posts/fampay-interview-experience/","summary":"I had applied at FamPay through their Careers page. The process consisted of uploading my resume and then answering some questions regarding the projects I had done and why I wanted to join FamPay. Ap..."}]