The client:

- Internet-based television service allowing remote computer viewing of local TV worldwide.

Challenge:

The client wanted to upgrade their database architecture as the traffic on service had grown and current architecture wasn’t able to handle such highload.

- Client used mysql to store metadata like users, tags, video info, etc.
- Client served data off a monolithic RAID 10 volume.
- Client went through common evolution: single server, went to a single master with multiple read slaves, then partitioned database, 2 masters with geo-replication, each with cluster of read-slaves.

Solution:

- We split database by microservices: many small database servers, each for separate service.
- Data was moved to cache engines like Hazelcast with cache-through strategy.

Result:

- Client reduced 50% of hardware and reduced replica lag to 0.
- Client was optimized by cache locality that reduced I/O operations and his database was ready to be scalable almost arbitrarily.

Back to home