Consistency and Partition Tolerance: Understanding CAP vs PACELC