
7 episodes

MyDistributed.Systems Mohammad Roohitavaf
-
- Technology
-
-
5.0 • 1 Rating
-
Notes on distributed systems, databases, and backend development
-
The Paxos algorithm, when presented in plain English, is very simple [Audio Blog Post]
This is the audio version of a blog post, published on www.mydistributed.systems, by Mohammad Roohitavaf.
Consensus is one of the fundamental problems in distributed systems. In this episode, we want to see what is consensus and review the most famous consensus algorithm—Paxos. we will see that despite exaggeration about its complexities, Paxos, at least the singe-decree Paxos that aims to achieve consensus on a single value, is actually very intuitive and easy to understand.
Blog Post: https://www.mydistributed.systems/2021/04/paxos.html -
Spanner, 2PC+2PL over Paxos [Audio Blog Post]
This is the audio version of a blog post, published on www.mydistributed.systems, by Mohammad Roohitavaf.
Spanner provides strictly serializable distributed transactions on a global scale. Spanner was introduced in 2012, and today, it is available as a managed service called Cloud Spanner via Google Cloud Platform. CockroachDB and YugaByteDB are two open-source products based on Spanner. In this episode, we see how Spanner provides strictly serializable distributed transactions while being a replicated and partitioned database.
Blog Post: https://www.mydistributed.systems/2020/08/google-spanner.html -
Graph Databases [Audio Blog Post]
This is the audio version of a blog post, published on www.mydistributed.systems, by Mohammad Roohitavaf.
Graph data is very common in modern applications. The property of this kind of data is the high levels of connectivity between the entities. Although social networks are the most common example for demonstrating graph data and the importance of graph databases, graphs are not limited to social networks; many other applications can be modeled much more clearly and intuitively with graphs.
Blog Post: https://www.mydistributed.systems/2021/08/graph-databases.html -
Eventual Consistency and Conflict Resolution - Part 2 [Audio Blog Post]
This is the audio version of a blog post, published on www.mydistributed.systems, by Mohammad Roohitavaf.
This is the second part of a two-part post on eventual consistency and the problem of conflict resolution. In the first part, we focused on the definition of the eventual consistency, its sufficient conditions, and conflict resolution using physical and logical clocks. We saw each method has its problems. In this part, we will see how we can solve these issues and provide eventual consistency with better conflict resolution.
Blog Post: https://www.mydistributed.systems/2022/02/eventual-consistency-part-2.html -
Eventual Consistency and Conflict Resolution - Part 1 [Audio Blog Post]
This is the audio version of a blog post, published on www.mydistributed.systems, by Mohammad Roohitavaf.
Eventual consistency is one of the defining characteristics of many modern data stores. By getting rid of strong consistency and embracing eventual consistency, service providers can keep their services available even when replicas cannot talk to each other. Eventual consistency also removes the performance bottlenecks of strong consistency and lets us scale the system much more easily. Due to its significant benefits, eventual consistency has been widely adopted in the industry. Every day, when you are using social networks, shopping online, or even when you are doing online banking, most likely you are using services that rely on eventual consistency.
Blog post: https://www.mydistributed.systems/2022/02/eventual-consistency-part-1.html -
Serializability [Audio Blog Post]
This is the audio version of a blog post, published on www.mydistributed.systems, by Mohammad Roohitavaf.
Serializability is the strongest isolation level that a transactional system can offer. This level of isolation removes all possible anomalies due to concurrently running transactions. It provides a powerful abstraction for application developers. The letter "I" in ACID, stands for isolation, and when people talk about ACID transactions, they most likely mean serializable transactions. However, note that many systems that claim to provide ACID transactions, in reality, provide weaker isolation levels. In this post, we want to review serializability and see how a database system can provide serializability for single-node and distributed transactions.
Blog Post: https://www.mydistributed.systems/2020/08/distributed-transactions-serializability.html