Home / Companies / PlanetScale / Blog / January 2025

January 2025 Summaries

2 posts from PlanetScale

Filter
Month: Year:
Post Summaries Back to Blog
The Vitess project's private fork management was a challenge due to the need to stay aligned with upstream changes. Initially, a manual approach using GitHub Actions and Git replay was used, but it became unsustainable as the private diff grew larger. The team developed a new process with key requirements, including automating as much of the workflow as possible, ensuring continuous updates from OSS to private fork, and maintaining consistency across multiple release branches. A bot was created to automate this process, which uses GitHub Actions, a database instance, and stateful design to manage the workflow. The bot performs cherry-picking and backporting tasks, with integrity checks to ensure reliability. After implementing safeguards, the team rolled out the new process, saving hours of engineering time and allowing them to focus on innovative features.
Jan 14, 2025 1,388 words in the original blog post.
Sharding is the process of scaling a database by spreading out the data across multiple servers, or shards. This allows large organizations to manage petabyte-scale data and scale their massive databases with popular solutions like Vitess and MySQL. A sharded database cluster consists of multiple separate database servers, each with a portion of the total data. The code running on the application server has to be aware of all of the shards and keep a connection open to each, which can become complex when there are hundreds of them. Using an intermediary server called a proxy helps to manage this complexity. Sharding strategies include range sharding, hash sharding, and custom sharding functions. Range sharding involves choosing a column to be the shard key and generating a cryptographic hash of this value for each row that needs to be inserted. Hash sharding is also popular and uses similar principles to distribute data evenly across shards. However, it requires careful consideration when selecting a column as the shard key due to volatility issues such as changes in user step counts over time. Cross-shard queries can occur when multiple shards are needed to fulfill a single query, adding network and CPU overhead. Sharding also improves data durability by replicating data across servers, increasing availability, and reducing backup time when data is spread out across multiple shards.
Jan 09, 2025 3,191 words in the original blog post.