The Strategy Behind ReversingLabs’ Massive Key-Value Migration

ScyllaDB 351 views 26 slides Jun 21, 2024
Slide 1
Slide 1 of 26
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
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,...


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/
Tags