- Internet-based television service allowing remote computer viewing of local TV worldwide.
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.
- 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.
- 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.