Consistency in distributed storage systems : Theoretical foundations with applications to Cloud storage