Database Sharding

Database Sharding

Author: BJ Burns and Will Gant June 29, 2023 Duration: 51:28

Database sharding is a process of storing a large database across multiple machines. Because a single machine can only hold and process so much data, eventually some systems will scale beyond the ability of a single machine to handle data. Further, as systems scale, they may also need to split data between machines due to security and location considerations. Database sharding overcomes these problems by splitting the system into smaller chunks, allowing work to either be done in parallel, or only in the locations with the relevant data.

Obviously, it matters a lot how you split up your data. For instance, it's unlikely that splitting a customer table based on the customer last name will be as helpful in a large distributed system as it would be to split up customers by location. You probably also want to have shards that are roughly the same size. The idea behind sharding is to improve performance, specifically via parallelization, but it's also helpful if it also provides some resilience to outages. So that will also need to be a consideration when you start thinking about sharding.

Database sharding can be a very useful tool for making your application more resilient to load. However, it's complex and you really need to think through it carefully if you are considering using it in your environment. There are several different ways to do it, with different advantages and disadvantages, and these will need to be thoroughly considered before starting. Plus, sharding is actually a fairly drastic operation, requiring support and extra work for the remaining lifetime of your application. This means that you shouldn't really consider it until most other options have been exhausted.

The post Database Sharding appeared first on Complete Developer Podcast.


Hosted on Acast. See acast.com/privacy for more information.


BJ Burns and Will Gant host the Complete Developer Podcast, a conversation that goes far beyond just writing code. These two seasoned developers built this show from a simple idea: that a career in tech is about more than the latest framework or language syntax. It's about the entire ecosystem you navigate, from the logic on your screen to the dynamics of the business meetings and the long-term path of your career. Each episode feels like pulling up a chair in the break room with colleagues who get it, discussing the real, often unspoken, parts of the job. You'll hear them tackle the intersection of technology, business strategy, and professional growth, making sense of how these pieces fit together in a practical, everyday way. This podcast digs into the questions that don't always have a clear answer in a manual-how to communicate effectively with non-technical teams, ways to approach career advancement, or how to balance deep technical work with the broader goals of a company. It's a resource for anyone who writes code but lives in a much bigger world, offering perspective and discussion that aims to make the whole journey a bit more comprehensible and a lot more manageable. Tune in for thoughtful, grounded talks that treat development as the multifaceted profession it truly is.
Author: Language: English Episodes: 100

Complete Developer Podcast
Podcast Episodes
Package Management [not-audio_url] [/not-audio_url]

Duration: 38:18
While you probably have lots of code in your codebase that you are proud of, it's almost certain that you didn't write all or even most of the code that executes while your application is running. Code reuse has always b…
Time Management Resilience [not-audio_url] [/not-audio_url]

Duration: 49:24
Your time is the most valuable and most scarce resource that you have. If you don't protect it and use it appropriately, everything else that you want from your life is out of your reach. It is critically important to pr…
Understanding Memory [not-audio_url] [/not-audio_url]

Duration: 38:58
Understanding memory can be a tricky thing, especially the deeper into a computer system you get. To help understand it a hierarchy of memory was conceptualized. This triangular shape helps to visualize the different lev…
Bad Abstractions [not-audio_url] [/not-audio_url]

Duration: 38:58
Developers like to abstract things. Abstraction gives us a lot of benefit, but there are times when we need to reign in our enthusiasm for it. It's past time we discussed when abstractions are not useful or are actively…
Discipline to Achieve Your Goals [not-audio_url] [/not-audio_url]

Duration: 42:59
We are reaching the time of year when resolutions and goals start to fall away. Being disciplined is an inconvenience, it's hard work but to reach big goals we need to be disciplined in what it takes to achieving goals.R…
Deployment Resilience [not-audio_url] [/not-audio_url]

Duration: 40:18
Writing all this code is fun, but when you have to actually deploy, it can be nerve-wracking. A bad deployment can result in corrupted data, system failures, angry customers and hours of wasted time. Avoiding busted depl…
Learning Plateaus [not-audio_url] [/not-audio_url]

Duration: 40:44
When we are learning something new, we will all eventually hit a roadblock. Roadblocks are tough to deal with, because they sap your enthusiasm. Left alone long enough, they'll make you give up on your goals.Read more ›T…
Aging With Grace [not-audio_url] [/not-audio_url]

Duration: 43:25
Ageism in development is a real thing in some areas of the industry and a concern for senior developers becoming more senior.Read more ›The post Aging With Grace appeared first on Complete Developer Podcast. Hosted on Ac…
Going From Windows to Mac [not-audio_url] [/not-audio_url]

Duration: 48:21
You've bitten the bullet and decided to pay the Apple Tax or maybe you are considering the transition. Switching from Windows to using a Mac may seem a bit daunting, especially if you've been on Windows for decades. Howe…
The Five R’s of Resilience [not-audio_url] [/not-audio_url]

Duration: 41:58
If anything, the last two years has taught us that we all have to be prepared for sudden disruptions to our lives. You have probably also heard that being resilient is the key to doing so, but what does that actually mea…