20 May 2024
20 May 2024

Exploring MVCC and InnoDB’s Multi-Versioning Technique

In the realm of relational databases, MySQL stands out as one of the most popular choices. Maximizing its performance is crucial, especially in highly concurrent environments where multiple transactions compete for resources. InnoDB, the default storage engine for MySQL, employs a technique known as Multi-Version Concurrency Control (MVCC) to address concurrency needs and enhance performance. … Read more
17 May 2024
17 May 2024

Optimizing MySQL: Deleting Data

In the previous parts of these MySQL optimization series, we told you how query optimization works on a high level, then walked you through how you should optimize queries that insert, read, or update data. Remember the laws of physics? “What goes up, must come down”? Translated into database terms, that means “the data that … Read more
15 May 2024
15 May 2024

Snake draft sorting in SQL Server, part 3

In part 2 of this series, I showed an example implementation of distributing a long-running workload in parallel, in order to finish faster. In reality, though, this involves more than just restoring databases. And I have significant skew to deal with: one database that is many times larger than all the rest and has a … Read more
10 May 2024
10 May 2024

A Quick Guide on How to Containerize Your Application Using Docker

Containerization has removed boundaries that limit developers from working on one application using different systems. Thus, boosting developer collaboration and speeding the application deployment process. Containerization involves bundling and packaging applications into containers that have all the necessary dependencies and tools for compiling an application on any operating system. Containers enable the coexistence of legacy … Read more
03 May 2024
03 May 2024

Headless CMS (Content Management Systems): Contrasting Git-Based and API-Based

0
The presentation layer of a headless CMS is separated from the content management system itself, making it a backend-only system for managing, creating, and storing material. Content presentation (how the content is shown on websites or applications) and content creation are handled by the content management system in a standard CMS. Headless CMSes have evolved … Read more
0
01 May 2024
01 May 2024

Technology For Humanity

There was a time, when I was in a team that was designing an important IT system for a multinational bank, the testers arranged for perfectly normal office workers from the bank to try the system out. This was long before the days of instant video. The software team watched from behind a two-way mirror. … Read more
29 April 2024
29 April 2024

Updating Documents in MongoDB

In the previous articles this series, I demonstrated various ways to retrieve document data from a MongoDB database, using both MongoDB Shell and MongoDB Compass. In this article, my focus shifts from retrieving data to updating data, which is an essential skill to have when working with MongoDB. Whether you access the data directly in … Read more
24 April 2024
24 April 2024

Working with IAsyncEnumerable in C#

IAsyncEnumerable is a powerful interface introduced in C# 8.0 that allows you to work with sequences of data asynchronously. It is a great fit for building ETLs that asynchronously stream data to get it ready for transfer. You can think of IAsyncEnumerable as the asynchronous counterpart of IEnumerable because both interfaces allow you to easily … Read more
15 April 2024
15 April 2024

Snake draft sorting in SQL Server, part 2

In my previous post, I showed how to borrow a snake draft concept from fantasy football, or a packing technique from the shipping industry, to distribute different portions of a workload to run in parallel. In the previous example, we determined a distribution order for databases based on size – though you can rank by … Read more
12 April 2024
12 April 2024

Snake draft sorting in SQL Server, part 1

I recently had a restore job where I needed to split the work up into multiple parallel processes (which I’ll refer to here as “threads”). I wanted to balance the work so that the duration was something significantly less than the sum of the restore times. Imagine a job that loops through and restores each … Read more