Footloose: A Case for Physical Footloose: A Case for Physical - - PowerPoint PPT Presentation
Footloose: A Case for Physical Footloose: A Case for Physical - - PowerPoint PPT Presentation
Footloose: A Case for Physical Footloose: A Case for Physical Eventual Consistency and Eventual Consistency and Selective Conflict Resolution Selective Conflict Resolution Justin Mazzola Mazzola Paluska Paluska Justin David Saff Saff, Tom
Today’s Situation Today’s Situation
- Data is scattered throughout devices:
Data is scattered throughout devices:
- All of my phone numbers on my cell phone
All of my phone numbers on my cell phone
- Some other contact information on my PDA
Some other contact information on my PDA
- Still more on my laptop
Still more on my laptop
- But no way to manage data
But no way to manage data
Device Characteristics Device Characteristics
- A single primary user
A single primary user
- Some memory
Some memory
- A wireless communications medium
A wireless communications medium
- Shared contexts
Shared contexts
- What can we do with these
What can we do with these resources? resources?
Automatic Management Automatic Management
J=867-5309 J=867-5309 J=867-5309 J=867-5309 J=867-5309 J=867-5309
Effective Use of Communication Effective Use of Communication Pathways Pathways
X
Formal Requirements Formal Requirements
- Distribution of heterogeneous data for
Distribution of heterogeneous data for increased availability increased availability
- Optimistic writes on all devices with
Optimistic writes on all devices with application application-
- level conflict resolution
level conflict resolution
- Automatic management of replicas
Automatic management of replicas
- On whatever network is available
On whatever network is available
New Assumptions New Assumptions
- Mostly disconnected operation on non
Mostly disconnected operation on non-
- Internet networks
Internet networks
- Applications may run on devices that may
Applications may run on devices that may never directly talk never directly talk
- Devices only understand and can resolve
Devices only understand and can resolve conflicts for a few data types conflicts for a few data types
- Devices have finite storage capabilities
Devices have finite storage capabilities
New Solutions New Solutions
- Physical Eventual Consistency
Physical Eventual Consistency
- Use a pervasive device’s location to enhance
Use a pervasive device’s location to enhance consistency consistency
- Selective Conflict Resolution
Selective Conflict Resolution
Physical Eventual Consistency Physical Eventual Consistency
Physical Eventual Consistency Physical Eventual Consistency
- Weak eventual consistency
Weak eventual consistency
- “Sneaker net” approach to data transfer
“Sneaker net” approach to data transfer
- The device with the most updates should
The device with the most updates should be closest to the user. be closest to the user.
Selective Conflict Resolution Selective Conflict Resolution
- Two classifications:
Two classifications:
- Smart
Smart – – can resolve conflicts can resolve conflicts
- Dumb
Dumb – – cannot resolve conflicts cannot resolve conflicts
- All devices can move all data
All devices can move all data
- Separate conflict transfer from
Separate conflict transfer from conflict resolution conflict resolution
Footloose Footloose
- Shared data store for pervasive
Shared data store for pervasive applications applications
- Guarantees “no lost updates”
Guarantees “no lost updates”
- Automatic management and routing of shared
Automatic management and routing of shared data. data.
- Application
Application-
- level device
level device-
- distributed conflict
distributed conflict resolution resolution
Footloose Architecture Footloose Architecture
Footloose Store
Application interface and storage facility.
Footloose Protocol Daemon
Device interface and consistency maintainer. Any possible network connection
FPD User Application FLS User Application
Register types that will be stored and shared.
FPD Application
The Footloose Store The Footloose Store
- Mutable mapping for
Mutable mapping for applications applications
- Data is named by a
Data is named by a RecordID RecordID and maps to a and maps to a set of set of UpdateEvents UpdateEvents
- Only valid
Only valid UpdateEvents UpdateEvents get returned to apps. get returned to apps.
- Applications must make
Applications must make updates not writes. updates not writes.
- The FLS stores only
The FLS stores only UpdateEvents UpdateEvents
- List of
List of UpdateEvents UpdateEvents for for the FPD the FPD
RecordID, UpdateEvent {UpdateEvent} {UpdateEvent, StatusVector} {UpdateEvent, StatusVector}
E a s y c
- n
f l i c t d e t e c t i
- n
! T r a n s p a r e n t T r a n s p
- r
t
- f
C
- n
f l i c t s !
Enabling Automatic Management Enabling Automatic Management
J = {NULLUE1: 555-1000} J = {NULLUE1: 555-1000, UE1UE2: 867-5309} NULLUE1: 555-1000, UE1UE2: 867-5309 J = {NULLUE1: 555-1000} J = {NULLUE1: 555-1000, UE1UE2: 867-5309} NULLUE1: 555-1000, UE1UE2: 867-5309 J = {NULLUE1: 555-1000} J = {NULLUE1: 555-1000, UE1UE2: 867-5309}
The Footloose Protocol Daemon The Footloose Protocol Daemon
- Maintains “shared
Maintains “shared knowledge” knowledge”
- StatusVectors
StatusVectors indicating indicating this this FPD’s FPD’s knowledge about knowledge about an an UpdateEvent UpdateEvent on all
- n all
devices devices
- Device interests
Device interests
- Manages Device
Manages Device Communication Communication
- Data routes
Data routes
FPD {UpdateEvent, StatusVector} {UpdateEvent, StatusVector} Foreign FPD {UpdateEvent, StatusVector}, {Device Interests}
P h y s i c a l R
- u
t i n g G a r b a g e C
- l
l e c t i
- n
& P u r g i n g
Effective Use of Communication Effective Use of Communication Pathways Pathways
cell: Interest in = {laptop, work-comp} {} work-comp: Interest in = {laptop, work-comp} {NULLUE1: , …} cell: Interest in = {laptop, work-comp} {NULLUE1: } laptop: Interest in = {laptop, work-comp} {...} laptop: Interest in = {laptop, work-comp} {NULLUE1: , …}
Implementation Implementation
- FLS and FPD built in Java
FLS and FPD built in Java
- Two applications:
Two applications:
- Wishlist
Wishlist Application Application
- Phone Number Database
Phone Number Database
- 25 lines of Footloose
25 lines of Footloose-
- dependent code
dependent code
- Simulation Framework
Simulation Framework
Evaluation Evaluation
2 3 4 5 6 7 8 1000 2000 3000 4000 5000 6000 7000 8000 9000 Number of Updates Number of Devices Clique Line Star Tree Ring
Evaluation Evaluation
50 60 70 80 90 100 5 10 15 20 25 30 35 40 45 Buffer Size # of Syncs 3 devices 4 devices 5 devices
Design Evaluation and Future Work Design Evaluation and Future Work
- Need better support for complex
Need better support for complex “directory “directory-
- like” types
like” types
- Support for large updates
Support for large updates
- Variable Number of Devices
Variable Number of Devices
- Security Framework
Security Framework
- User Study