Charlie is a former teacher, tech journalist, and filmmaker who’s now combined those three professions into writing and making videos about databases and application development (and occasionally messing with NLP and Python to create weird things in his spare time).
Engineering
What is a foreign key? (with SQL examples)
A foreign key is a column or columns in a database that (e.g. table_1.column_a) that are linked to a column in a different table (table_2.column_b). The existence of a foreign key column establishes a foreign key constraint – a database rule that ensures that a value can be added or updated in column_a only if the same value already exists in column_b.
Charlie Custer
May 4, 2023
Product
Vertical vs. horizontal scaling: What’s the difference and which is better?
So you need to scale. That’s a good problem to have! But should you scale up or scale out? There’s no easy answer, so let’s take a closer look at horizontal scaling vs. vertical scaling , how they compare, and what the pros and cons are for each approach.
Charlie Custer
April 10, 2023
Product
What is fault tolerance, and how to build fault-tolerant systems
November 25, 2020. If you work in tech infrastructure, that’s a date you probably remember. On that day, AWS’s US-east-1 experienced a significant outage, and it broke a pretty significant percentage of the internet. Adobe, League of Legends, Roku, Sirius XM, Amazon, Flickr, Giphy, and many, many more experienced issues or went offline completely as a result of the outage.
Charlie Custer
March 14, 2023
How to reduce costs, improve uptime, and increase developer speed with distributed SQL
Modern businesses run on data. Storing, organizing, managing, and accessing the increasingly complex and large volumes of data required to operate any business at scale accounts for a big chunk — 20% — of all IT infrastructure spending.
Charlie Custer
March 9, 2023
Product
An electronics giant saved millions after migrating from MySQL to CockroachDB
Upgrading and modernizing your database can sound like an expensive proposition. But it doesn’t have to be. One major electronics company found that shifting from MySQL to CockroachDB saved them $700,000 in their first year, earning them a 149% ROI.
Charlie Custer
March 2, 2023
Product
Distributed transactions: What, why, and how to build a distributed transactional application
Transactions make up an important part of the database workload for most modern applications. And when it comes time to scale up operations for a growing business, distributing those workloads across multiple hardware systems for horizontal scalability, high availability, and fault tolerance is often an important part of the plan.
Charlie Custer
February 16, 2023
Product
Building a sports betting application to handle ‘Big Game’ traffic
The popularity of sports betting, also called real-money gaming, is exploding. And at least in the US, there’s no bigger moment for sports betting than this weekend. The NFL’s championship game – you know, the game with the name we’re not allowed to say – is likely to be watched by around 100 million people. And with the growing legality and popularity of sports betting apps in the US, it is very likely this game will see more money flowing through betting apps than ever before.
Charlie Custer
February 9, 2023
System
What is data partitioning, and how to do it right
Most software projects start their lives linked to a simple, single-instance database. Something like Postgres or MySQL. But as companies grow, their data needs grow, too. Sooner or later, a single instance just isn’t going to cut it. That’s where data partitioning comes in.
Charlie Custer
February 7, 2023
Product
What to do when a transaction fails in CockroachDB
If you’re working with CockroachDB, chances are that you care about transactional consistency. CockroachDB offers ACID transactional guarantees, including serializable isolation to ensure that no matter the volume of transactions or how many transactions are being processed in parallel, each transaction is committed to the database sequentially. These guarantees ensure that your database maintains ironclad consistency immediately, which is important for many transactional applications. (Every application has a range of business use cases that determine how consistent its database needs to be. For transactional workloads, an eventually consistent database is often not the right persistence tool). However, CockroachDB’s strong ACID guarantees do mean that occasionally transactions will fail and will need to be retried. Let’s take a closer look at why that happens, and how retries can be accomplished.
Charlie Custer
January 30, 2023