miscellaneous nbt team. 2 1. naming (1/2) client: global, unique identifier pm: global, unique...
TRANSCRIPT
Miscellaneous
NBT Team
2
1. Naming (1/2)
• Client: global, unique identifier• PM: global, unique identifier
– This is the policy identifier
• DIM: global, unique identifier– This is the data item identifier
• Chunk: unique identifier within a data item– Can be identified by its position in the chunk
• Stream/Stripe: unique identifier within a data item
• Block: unique identifier within a chunk– Can be identified by its position in the chunk
3
1. Naming (2/2)
• In the Database, clients, data items (i.e., DIMs) and policies (PMs) are identified by their IDs
• DIMs, PMs, Data Item Directory and the Database are globally reachable via their IDs (i.e., through i3 that stores their IDIPaddr mappings)
• Clients are not globally reachable via their IDs– Instead DIMs and PMs maintain the list of
active/available clients
4
2. Data Plane Naming• How does the receiver know to which data item,
chunk, stream, or chunk does the data in a packet belongs to?
• Proposal:– Identify data using control packets– At any given time a TCP connection carries the data from a
single finest-granularity data object:• chunk, in the case of VoD and file-sharing• stream, in the case of live streaming
• Advantages:– Simple, flexible
• Disadvantages:– Inefficiency: A TCP connection for each stream, even though
streams are downloaded from the same parent• Note: no need to create a TCP connection for a chunk/block
downloaded from the same parent, as long as only one chunk/block is downloaded at a time
5
3. Data Item Grouping • Examples:
– All Disney channels– All sport channels
• Proposal:– Allow grouping Data Items in arbitrary groups– Use a globally unique ID to identify a Data Item (DI) group– Have an entity similar to PM manage each DI group; call
this Data Item Group Manager (DIGM)– Each data item should have a list of groups it belongs to– The group membership can be periodically requested from
the database (the same way clients periodically request the policy they belong to)
• Alternative:– Instead of PMs and DIGMs have GOs (group of objects),
where objects can be either (1) clients or (2) data items – Generalize PM semantics to include data items as well
• Question: what is the role of DIGM?
6
4. Client Control on Library Buffer
• Can the client control the library buffer, and if yes how?
• Proposal: No; not clear how much the client will benefit, while the downside is obvious (see below)
• Advantages: – Simplicity– Better control on client resources; if clients were
allowed to chose the library buffer size, we would need to build distribution trees for clients with different delay requirements seems very difficult
• Disadvantages: – Lack of flexibility
7
5. VoD: To Stripe or Not to Stripe?
• Are stripes needed in the case of VoD or is the block-level parallelism enough?
• Proposal: use only chunk level parallelism– A client requests the DIM to download a particular chunk c– The DIM returns a set of parents that store or have requested
chunk c– Each client periodically sends the list of blocks it misses (from
chunk c) to its neighbors– A client sends the rarest block to a neighbor; ties are broken as
follow• Smallest sequence number• Neighbor that has fewest blocks
• Advantages:– Simplicity
• Disadvantages:– (Slightly?) more complex client code– Larger delay, less parallelism?
8
5. VoD Example• Assume node “1” stores an entire chunk consisting 8 blocks
and all other nodes want to download the entire block• Assume that during a time unit, a client can send at most
one block and receive two blocks
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 0
9
5. VoD Example
• Blocks transmitted during this time unit are in red
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 1
1
10
5. VoD Example
• Blocks transmitted during this time unit are in red
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 2
1
2
1
11
5. VoD Example
• Blocks transmitted during this time unit are in red
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 3
1
2
1
3
1
1
2
12
5. VoD Example
• Blocks transmitted during this time unit are in red
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 4
1,4
2
1
1,2,3
1,2
1
1,2
13
5. VoD Example
• Blocks transmitted during this time unit are in red
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 5
1,4
1,2,5
1,3,4
1,2,3
1,2
1,2
1,2
14
5. VoD Example
• Blocks transmitted during this time unit are in red
1122
44
77
55
33
66
88
1,2,3,4,5,6,7,8
Time = 6
1,4,6
1,2,3,5
1,3,4
1,2,3
1,2,3
1,2,4
1,2,5