Object Sharing Over Mobile Devices
Sharad Agarwal, Ioannis MavroidisCS258
Alec WooCS294-11
2
Vision Slide• An universal infrastructure where data
can exist anywhere and be available to any device with some form of consistency guarantee
Pilot
LaptopToaster
Pilot
PilotServer
ServerNetwork
Camera
3
Why Share Over Mobile Devices
• Need collaborative applications– not for running Ocean or Barnes-Hut– distributed address book– group whiteboard / document review– group coding– collaborative control of sensors and actuators
• Need a shared data infrastructure• Can’t simply port an existing SW DSM
4
Design Requirements
• Platform independent• SW solution, in Java• Interconnection is the Internet
• Object based sharing• Data storage on remote servers
• scales {communication, capacity}• available over disconnections
• Allows disconnected operation• Emphasis on low compute power, low
bandwidth, high latency tolerance
5
System Architecture
PilotLaptop
MemoryServer
PilotWinCE Pilot
MemoryServer
Pilot
Masquerader
MemoryService
Nameserver
Internet
App Nameserver
$$ $ $ $ $
$
6
Coherence Protocol
• Directory based• SC
M
S
V
M_T
read writethru / inv
upgr / invread / wr-inv
writeback
writeback
writethru
readex
readex / inv
W_T
writethru/inv
create
destroy
7
MUD Application
• Users control characters in an arena of rooms
• move around, look, pick/drop objects, etc
• Masquerader creates shared objects• room locks, room inventory, people in room, etc
• Each client requests character init from masquerader
• When moving, linear lock ordering is used • (Dining Philosophers)
• Automated bots that run around
8
Results
XCOPILOT Min (ms) 20ms Avg (ms) 20msReadMiss 200 261ReadHit 90 129WriteThru 180 200WriteBackMiss 190 210WriteBackHit 110 134
PALM3 Min (ms) 20ms Avg (ms) 20msReadMiss 2050 2603ReadHit 800 887WriteThru 1600 1762WriteBackMiss 1500 1812WriteBackHit 700 972
Latency Measurements
Screen Shot
9
Conclusions
• Formulated the need & requirements• Designed an infrastructure & application• Shown performance numbers• This was not easy
– JVMs underdeveloped– Pilot debugging infrastructure non-existent– ActiveProxy is still under development– Scalable yet versatile shared object system
is complicated