SCADS Requirements

From RAD Lab

Jump to: navigation, search

Contents

Storage Layer

' ' Hypertable Hbase Voldemort
API Requirements:
1. Primary key lookups+++
1. Range Queries (over xact units)++-
1. Arbitrary Indexes---
1a. Secondary key lookups-+?-
2. Range Queries (within xact unit)+-~
3. Projection (within xact unit)++~
Performance SLA Requirements: (e.g. 80% requests succeed in < 100ms)
1. Scale Up Automatic data redistribution on server addition~?~
2. Scale Down Automatic data coalesce on server removal~?~
3. Load Redistribution (Hotspot)Caching with TTL---
2a. or Tunable Replication (possible alternative)---
2b. or Repartitioning/Data Migration (possible alternative)---
Geographic Distribution (note: integrate from Durability)---
Read Consistency SLA Requirements: (e.g. Data less than 10 minutes stale)
1. Tunable replica stalenessInstrumented replication(~=HDFS)(~=HDFS)+
1. Tunable index stalenessrow-triggered updates-?-
3(?).bulk updates -?-
Write Consistency SLA Requirements: (serializability, last write wins, custom resolution)
2. Conflict resolutionversioning/vector clocks-?+
2. Write-order dependencyversioning & read-time???
2a. or versioning and write-time resolution (alternative)???
Durability SLA: (MTB data loss)
2. Persistence to disk +++
2. Tunable DurabilityPer-table replication control+??
2a. Per-record replication control???
2. replica assignment (rack-aware)???
2. replica assignment (datacenter-aware)???
3. replica assignment (continent-aware)???
3. replica assignment (provider-aware))???
3. Corruption detectionRead-after-write??
Session Guarantees:
2. Read own writes + Monotonic readsRead versioning???
2a.or Session-aware routing (alternative)???
2b.or Client-side caching? (alternative)???
Desirable Features:
Distributed-transactions???
Partition-tolerance???
Language-bindings???

+ => feature present, - => feature missing, ~ => feature partially implemented or "coming soon"

1 => Necessary for Demoability, 2 => Necessary for full functionality, 3 => Optimizations

Notes

Query Language