The Strategy Behind ReversingLabs’ Massive Key-Value Migration
ScyllaDB
351 views
26 slides
Jun 21, 2024
Slide 1 of 26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
About This Presentation
ReversingLabs recently completed the largest migration in their history: migrating more than 300 TB of data, more than 400 services, and data models from their internally-developed key-value database to ScyllaDB seamlessly, and with ZERO downtime. Services using multiple tables — reading, writing,...
ReversingLabs recently completed the largest migration in their history: migrating more than 300 TB of data, more than 400 services, and data models from their internally-developed key-value database to ScyllaDB seamlessly, and with ZERO downtime. Services using multiple tables — reading, writing, and deleting data, and even using transactions — needed to go through a fast and seamless switch. So how did they pull it off? Martina shares their strategy, including service migration, data modeling changes, the actual data migration, and how they addressed distributed locking.
Size: 2.19 MB
Language: en
Added: Jun 21, 2024
Slides: 26 pages
Slide Content
The (Zero Downtime) Database Switch Martina Alilovic Rojnic, Software Architect a t ReversingLabs
Martina Alilovic Rojnic Software architect at ReversingLabs Distributed systems enthusiast A mathematician at heart Zagreb, Croatia
ReversingLabs beginnings and growth The big database migration Distributed locking Presentation Agenda
ReversingLabs by the Numbers ~20B classified samples ~300TB of metadata ~400 microservices
A Trip to 2011 Cassandra 0.6 MongoDB 1.6 DynamoDB not released yet Postgres – MVCC overhead
ScyllaDB to the Rescue Fast Resilient Scalable
“Spectacular achievement is always preceded by unspectacular preparation.”
Keep i t Simple Change the models as little as possible Don’t change the code
Differences in Architecture
Data Migration
Data Migration Steps
Data Migration Steps 1. Stream the old database output to Kafka
Data Migration Steps 2. Dump the old database into a specified location 3. Prepare a ScyllaDB table by configuring its structure and settings
Data Migration Steps 4. Prepare and load the dump into the ScyllaDB table
Data Migration Steps 5. Continuously stream data to ScyllaDB
Services Migration
Services Migration Steps
Services Migration Steps 1. Migrate the APIs one by one 2. Prepare for the big migration day
Services Migration Steps 3. Stop the master services
Services Migration Steps 4. Migrate the delivery services
Services Migration Steps 5. Migrate and start the master services
Resource Locking
Differences in Architecture
Distributed Locking
Stay in Touch Martina Alilovic Rojnic [email protected] https://medium.com/@martina.alilovic https://www.linkedin.com/in/martina-alilovic-rojnic/