Design of Fault-Tolerant Virtual MachinesIn some situations where failure is caused by a hardware failure, it's useful to have replication in hand. There are other types of failures that can't be resolved with replication, such as software bugs or network issues. In this article, we deal wi...Jun 21, 2023·9 min read
Query Execution - AggregationsIntroduction Once the query planner has determined the optimal plan for executing a query, it's time to implement that plan. But before we can do that, it's important to understand the algorithms used to execute the various operations in the plan. In...Dec 26, 2022·6 min read
Understanding hash indexesWhy database indexes? When it comes to querying databases, one of the most time-consuming and performance-intensive operations is to do a linear scan of the entire table. This requires the database management system (DBMS) to retrieve all of the page...Dec 11, 2022·6 min read
Database Buffer Pool - Part 2Introduction As explained in Database Buffer Pool - Part 1, a buffer pool is a limited chunk of memory, which means that whenever we bring something from the disk, we need to evict something from the buffer pool and replace it. Buffer replacement is ...Oct 27, 2022·3 min read
Database Buffer Pool - Part 1Introduction In order to allow the database execution engine to perform its operations, it needs the pages containing the table records to be brought from disk to memory. However, we want to optimize I/O operations, so there is a subsystem of the dat...Oct 25, 2022·3 min read
Compression In DatabasesIntroduction It's well-known that the database's main bottleneck lies in I/O. That's what makes database designers aim toward reducing it in any possible way, one of them is to look carefully at the workload and choose the suitable storage model (for...Oct 17, 2022·3 min read
Storage Models for DatabasesIntroduction Different applications have different requirements, as discussed in What the heck is OLTP, OLAP?, it depends on business rules to define the workload of our database. Therefore, we need different storage models for the database in order ...Oct 16, 2022·2 min read