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
Positive Affirmations [not-audio_url] [/not-audio_url]

Duration: 38:03
Words have power, whether you choose or harness it or not. What we say about ourselves, our affirmations, define who we are and how we see ourselves. Negative self-talk brings us down, whereas positive affirmations lift…
Knowledge Silos [not-audio_url] [/not-audio_url]

Duration: 41:40
Knowledge silos happen when different parts of a team understand different parts of a system and don't understand other parts of the system. It's a natural state of system growth, but eventually gets in the way of innova…
Predictions 2022 [not-audio_url] [/not-audio_url]

Duration: 51:31
It's been a long year for many of us, with both upsides and downsides and we're excited to see what happens next year. This is the last episode of 2021.Read more ›The post Predictions 2022 appeared first on Complete Deve…
Resolutions 2022 [not-audio_url] [/not-audio_url]

Duration: 59:43
2021 was not the year we expected, but it definitely brought about some changes in us, in the podcast, and in those around us. As we review our resolutions we'll see how SMART our goals really were and then we'll discuss…
Sample Data Generation [not-audio_url] [/not-audio_url]

Duration: 58:48
While you can test with production data, that data is often sensitive, or doesn't reflect every possible scenario that might come up, especially with new changes. If you want to avoid unexpected problems, then you need t…
Anti-Patterns In Unit Testing [not-audio_url] [/not-audio_url]

Duration: 55:56
Unit testing can be a challenge especially when you have automated testing or may be new to test driven development. There are several great design patterns for testing and even more anti-patterns in unit testing that yo…
Dealing With Stress At Work [not-audio_url] [/not-audio_url]

Duration: 56:35
Everyone experiences work stress at some point or another in their careers. Understanding it can help you to have better responses as well as prepare yourself for it before it becomes an issue.Read more ›The post Dealing…
Enneagram Wrap Up [not-audio_url] [/not-audio_url]

Duration: 57:47
This has been the year of the Enneagram for Complete Developer Podcast. You learned about reformist ones, individualist fours, loyalist sixes, or peacemaking nines, you've heard about all the types and their variants. Bu…
Risks of Older Code [not-audio_url] [/not-audio_url]

Duration: 55:58
Every so often, you'll end up working for a company that uses very outdated technology. While the reasons for this are numerous, many of these companies don't really see the problem with the technology they are using, es…
Essentials of Debugging [not-audio_url] [/not-audio_url]

Duration: 56:01
Debugging software can be a pain or an exciting adventure. If you have unit tests your process may be easier when user testing or quality assurance finds a bug in your code.Read more ›The post Essentials of Debugging app…