Implementing Read Replicas: Solving the High-Performance Reading Problem