A New Perspective: Favoring Consistency

Let's go through another design of the key-value store.

Note for TR: We did not dive into the detailed design due to time shortage. Let me know if we want to focus on this design.

Our previous approach relied on eventual consistency and stressed higher availability over consistency. We will work on an approach that provides greater consistency than availability.

Requirements

Before moving on to the design, let’s list down our requirements.

  • Consistency: We want our data to be consistent.

  • Durability: The data stored in the storage should not be lost.

  • Availability: The availability can be compromised upon network partition.

  • Scalability: The system should be able to scale as the number of requests increases.

  • Basic operations: Basic database operations like put and get are available.

  • No ACID properties: We will not consider these properties a necessity for our system. It means no atomicity or isolation-like properties will be provided.

Create a free account to access the full course.

By signing up, you agree to Educative's Terms of Service and Privacy Policy