Designing Data Intensive Applications: Ch.7 Transactions (weak isolation levels)Dec 10, 2023·22 min read
Designing Data Intensive Applications: Ch.7 Transactions (intro to ACID transactions)Dec 2, 2023·7 min read
How to Use ClickHouse Aggregation States to Boost Materialized Views Performance by More Than 10 Times?In this article, I will discuss how to use Aggregation States in ClickHouse to boost Materialized Views performance by orders of magnitude. We will be building a small project along the way to show how all different optimizations can work together to...Jan 27, 2024·19 min read
Designing Data Intensive Applications: Ch.6 Partitioning (Part 3: Rebalancing Partitions and Request Routing)Aug 26, 2023·10 min read
Designing Data Intensive Applications: Ch.6 Partitioning (Part 2: Partitioning and Secondary Indexes)Aug 4, 2023·5 min read
Designing Data Intensive Applications: Ch.6 Partitioning (Part 1: Partitioning of Key-Value Data)In the previous series of articles, we discussed Chapter 5 of Data-Intensive Applications which tackled replication. And we learned that replication is essentially having multiple copies of the same dataset spread across multiple machines for a multi...Jul 22, 2023·10 min read
How to implement Efficient Point Queries in ClickHouse?In this article, I am going to discuss how can we implement point queries in an otherwise mainly optimized for aggregations database like ClickHouse. First, I will start by explaining what are point queries, what is ClickHouse and why is it a challen...Mar 31, 2023·10 min read
Designing Data Intensive Applications: Ch5. Replication (Part 4: Leaderless Replication)In the previous article, we discussed multi-leader replication and some of its usecases such as replication over multiple datacenters, offline client applications and collaborative editing applications. We have also discussed the complications that a...Dec 24, 2022·11 min read
Designing Data Intensive Applications: Ch5. Replication (Part 3: Multi-Leader Replication)In the previous article we discussed some of the main side effects that result from having a replicated system, mainly originating from the possibility of having a lag in replication. And tried to enforce some consistency guarantees, like for example...Nov 11, 2022·14 min read
Designing Data Intensive Applications: Ch5. Replication (Part 2: Problems with Replication Lag)In the previous article we started discussing part 2 of Data Intensive Applications and we talked about single leader-based replication, how it works and it handles failures in leaders and replicas. We also discussed different methods for replication...Oct 29, 2022·11 min read
Designing Data Intensive Applications: Ch5. Replication (Part 1: Leader-Based Replication)In the previous few articles, we discussed the first part of the book which discussed the foundations of data systems; where we talked about distributed systems concepts, data models and query languages, data structures used for storage and retrieval...Sep 17, 2022·16 min read