Projects/SCADS
From RAD Lab
Contents |
[edit]
SCADR Link
scadr.radlab.net
[edit]
Spring 2009
[edit]
Fall 2008
[edit]
APIs
1) Priority Queue
Supporting Class(es)
SLAInfo {
// up to michael
}
QueueObject {
String updateId // for finish call String indexId String colFamCol // in form ColumnFamily:Column String data SLAInfo slaInfo
}
API:
- void enqueue(QueueObject obj) // put obj on the queue (Thread Safe)
- QueueObject dequeue() // take an object off the queue (Thread Safe)
- void finish(String updateId) // inform the queue that I'm finished with update
2) Index Format
Indexes are a long list of values, each one a column with one row, which is Table|Key|colFam:col for the item the index is indexing. Indexes will be either their own version of cassandra or their own table, but in either case will be identified internally by a string key.
[edit]
Design Goals
- Data is r/w (user believes data is mutable)
- Scale up and down in terms of data size and request rate (1000s of commodity servers)
- You can't buy your way out of the problem.
- Implementation cost per user or per unit of data doesn't grow as systems scales
- Interactive response time doesn't grow with number of users or dataset size
- High Availability
- Durability
- Data model/transactional semantics?
- Support queries over hierarchical associations.
- Online scale up and down (datasize and throughput)
- "Interactive" resp
- (Query Rate) / (#Machines) = K
- For any dataset size
- As cheap as mysql on same hardware
- Highly Available 99.999%
- E2E Durability = 99.999%
[edit]
Implications
- Query result must small and doesn't scale with system size
- Data touched by a query doesn't scale with dataset size
- No Single Copy Consistency
- (#refs)*(#ref avg latency) < SLA
- Query time < O(datasize)
- O(1) OK... O(lg n) ??
- redundancy to minimize the likelihood of correlated loss/failure
- 5 -> Shared Nothing
- 1+3+4 -> No Single Copy Consistency
- 3 -> (#refs)*(#ref avg latency) < SLA
- 3+4 -> Query time < O(datasize)
- O(1) OK... O(lg n) ??
- 6+7 -> redundancy to minimize the likelihood of correlated loss/failure
[edit]
Implementation
- B => Adjustable Consistency
- C => DRAM + Flash to absorb > 90% accesses
- D => No Scans
- B + D => What Queries can be exressed
- => Abstraction for time
[edit]
Meeting Notes
[edit]
