Title: Managing Dynamic Shared State
1Managing Dynamic Shared State
2Dynamic Shared State
- What is it?
- The changing information that multiple machines
must maintain about the N-VE. - Information included participants, virtual
world, relations between the participants,
relations between participants and virtual world. - Why need to do dynamic shared state management?
- It provides the common context that makes the
virtual environment into a collaborative or
competitive experience.
3Consistency-Throughput Tradeoff
Scenario I
Joe
Mary
Im at(10,20)
Currently
Im at(15,25)
After 100 ms
100 ms is the network latency
4Consistency-Throughput Tradeoff
Scenario II
Joe
Mary
Im at(10,20)
Currently
Transmit
Joe is at(10,20)
Acknowledge
After 100 ms
Im at(15,25)
After 200 ms
5Consistency-Throughput Tradeoff
- It is impossible to allow dynamic shared state to
change frequently and guarantee that all hosts
simultaneously access identical versions of that
state. - Available network bandwidth must be allocated
between messages for updating the dynamic state
and messages for maintaining a consistent view of
that dynamic shared state among participants in
the N-VE.
6Spectrum of Dynamic Shared State Management
Determined by the Consistency-Throughput Tradeoff
7Centralized Information Repositories
- File Repository
- Repository in Server memory
- --pull
- --push
- Virtual Repositories
- --virtual central repository
- --client consistency selection
8File Repository
User
User
Synchronization Locks by NFS/AFS
User
User
User
User
Centralized Data Store
Update
Read
State
State
Read
State
State
Update
9Problem with File Repository
- Performance is slow.
- Opening remote file is a slow procedure
- Not easy to support many users.
- More users?More files?Longer to open each file
10Repository in Server Memory
User
Synchronization Locks by
User
User
User
User
User
Centralized Data Store
Per-client FIFO Event Queues
Per-client FIFO Event Queues
State
State
Update
Read
State
State
Read
Update
11Advantages and Problems
- Advantages
- Keep shared states in server memory
- No need to perform open and close operation on
files - Server process arbitrate among incoming requests
- Server support batched operations
- Problems
- Unreliable
- Operating system resource consuming
12Systems Using Server Memory Repository
- NEC Network VR Project
- pull information
- Server maintains a FIFO queue for each client
- Clients request can cause delay
- Shastra SystemDeveloped at Purdue University
- push information
- Server uses round-robin token-passing scheme
13Virtual Repositories
A consistency protocol can establish a virtual
central state repository by ensuring reliable
message delivery, effective message
dissemination, and message ordering.
14Virtual Repositories
- Advantage
- Eliminates the performance bottleneck
- Eliminate the bandwidth bottleneck
- Better fault tolerance
- Systems using virtual repositories
- DIVE
- BrickNet
- Client Consistency Selection
15Characteristics of Central Repository
- Easy programming model
- Guarantee the information consistency
- Flexibility on shared state update
- Data access and update operations require an
unpredictable amount of time to complete - Require considerable communications overhead
- Limited number of simultaneous users, 50-100
16Frequent State Regeneration
- For high shared state update rate
- Blind broadcasting
- Explicit Entity ownership
- Prevent update conflict
17Scenario of Ownership
Update ball position per Joe
Proxy update
Request update ball position
Update ball position per Mary
Notify lock transfer
Ownership transfer
Acknowledge lock transfer
Update ball position per Joe
Request ball ownership
Grant ball ownership
Update ball position per Mary
18Systems Using Frequent State Regeneration
- Dogfight
- Doom, Diablo and Interstate 76
- Telesurgery
- Video Conference
19Advantages and Drawbacks
- Advantages
- Easy to add multi-user capabilities
- .need no server,consistency and even lock manager
- Support large number of users
- Drawbacks
- High network bandwidth utilization
- Network latency and network jitter
- Differences between local and remote entities