Addressing - The Elephant in the Room
- Structured, Unstructured
- Random, Hashes, Sequential
- User-specified, generated
- Need at least 2^48 capacity for objects
- Hence, unstructed addresses probably need to be at least 2^64
Sequential and Structured
- Temporal id locality
- Allocation could be tricky to make fast
- How many tables does a typical (or large) RDBMS have?
- How many applications do we expect to support in a single RAMCloud instance?
- How much metadata space is need for all tables/applications?
- How does metadata replication occur and what is the frequency?
application (16 bit) | table (16 bit) | address (64 bit) |
Random
- Smaller ids (64-bit?)
- Simple to make fast
- Not if we want these to look like capabilities
- Not meaningful to client (both a plus and minus)
- Indexing must be done by clients and stored in the cloud
- Akin to FriendFeed's setup
Distribution
Effects
- + Capacity
- + Throughput
- + Avoid hot spots
- - Consistency
...
application (16 bit) | table (16 bit) | address (64 bit) |
Sequential and Structured
- Temporal id locality
- Allocation could be tricky to make fast
- How many tables does a typical (or large) RDBMS have?
- How many applications do we expect to support in a single RAMCloud instance?
- How much metadata space is need for all tables/applications?
- How does metadata replication occur and what is the frequency?
Random
- Smaller ids (64-bit?)
- Simple to make fast
- Not if we want these to look like capabilities
- Not meaningful to client (both a plus and minus)
- Indexing must be done by clients and stored in the cloud
- Akin to FriendFeed's setup
...