Data Store Types and Concepts in AWS
Key Considerations
ACID provides strict consistency but may face performance challenges at scale.
BASE isn't inconsistent, but it's just differently consistent; it prioritizes availability and parallel processing.
Types of Data Stores
1. Persistent Data Store
Data is durable and persists across reboots or power cycles.
Examples:
Amazon Glacier.
Amazon RDS (Relational Database Service).
2. Transient Data Store
Data is temporarily stored and passed through to another process.
Examples:
Amazon SQS (Simple Queue Service)
Amazon SNS (Simple Notification Service)
Amazon Event Bridge (Event Routing and serveless event bus)
3. Ephemeral Data Store
Data is temporary and does not persist when instances are stopped or services rebooted.
Examples:
EC2 Instance Store.
Memcached (under Elastic Cache portfolio).
Performance Metrics
IOPS (Input/Output Operations Per Second)
Measures how fast we can read and write to a device.
Analogous to a small, fast sports car:
High speed.
Smaller data payload.
Optimized for quick operations.
Throughput
Measures how much data can be moved at once.
Analogous to a dump truck:
Larger data payload.
Slower speed.
Optimized for bulk data movement.
Consistency Models
ACID Model
Primarily used in relational databases, implementing features like row locking and rollbacks.
Characteristics:
Atomic: Transactions are all-or-nothing.
Consistent: Transactions from one valid state to another, and uncorrupted.
Isolated: Transactions don't interfere with each other.
Durable: Committed transactions persist reliably.
BASE Model
Alternative approach focused on scalability.
Characteristics:
Basically Available: Prioritizes availability, even with stale data.
Soft State: May not be instantly consistent across data stores.
Eventually Consistent: All data stores will eventually sync and update.
Why Choose BASE over ACID?
ACID models face scalability challenges.
BASE accommodates parallel operations more effectively.
Useful for services requiring high scalability.
Examples of BASE implementation:
Amazon S3.
Amazon DynamoDB.
Last updated
Was this helpful?