footloose: a case for physical eventual consistency and...

22
Footloose: A Case for Physical Footloose: A Case for Physical Eventual Consistency and Eventual Consistency and Selective Conflict Resolution Selective Conflict Resolution Justin Justin Mazzola Mazzola Paluska Paluska David David Saff Saff , Tom , Tom Yeh Yeh , Kathryn Chen , Kathryn Chen MIT CSAIL MIT CSAIL

Upload: truongthien

Post on 16-Feb-2018

238 views

Category:

Documents


2 download

TRANSCRIPT

Footloose: A Case for Physical Footloose: A Case for Physical Eventual Consistency and Eventual Consistency and

Selective Conflict ResolutionSelective Conflict Resolution

Justin Justin MazzolaMazzola PaluskaPaluskaDavid David SaffSaff, Tom , Tom YehYeh, Kathryn Chen, Kathryn Chen

MIT CSAILMIT CSAIL

Today’s SituationToday’s Situation

Data is scattered throughout devices:Data is scattered throughout devices:All of my phone numbers on my cell phoneAll of my phone numbers on my cell phoneSome other contact information on my PDASome other contact information on my PDAStill more on my laptopStill more on my laptop

But no way to manage dataBut no way to manage data

Device CharacteristicsDevice Characteristics

A single primary userA single primary userSome memorySome memoryA wireless communications mediumA wireless communications mediumShared contextsShared contexts

What can we do with these What can we do with these resources?resources?

Automatic ManagementAutomatic 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 PathwaysPathways

X

Formal RequirementsFormal Requirements

Distribution of heterogeneous data for Distribution of heterogeneous data for increased availabilityincreased availabilityOptimistic writes on all devices with Optimistic writes on all devices with applicationapplication--level conflict resolutionlevel conflict resolutionAutomatic management of replicasAutomatic management of replicasOn whatever network is availableOn whatever network is available

New AssumptionsNew Assumptions

Mostly disconnected operation on nonMostly disconnected operation on non--Internet networksInternet networksApplications may run on devices that may Applications may run on devices that may never directly talknever directly talkDevices only understand and can resolve Devices only understand and can resolve conflicts for a few data typesconflicts for a few data typesDevices have finite storage capabilitiesDevices have finite storage capabilities

New SolutionsNew Solutions

Physical Eventual ConsistencyPhysical Eventual ConsistencyUse a pervasive device’s location to enhance Use a pervasive device’s location to enhance consistencyconsistency

Selective Conflict ResolutionSelective Conflict Resolution

Physical Eventual ConsistencyPhysical Eventual Consistency

Physical Eventual ConsistencyPhysical Eventual Consistency

Weak eventual consistencyWeak eventual consistency“Sneaker net” approach to data transfer“Sneaker net” approach to data transferThe 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 ResolutionSelective Conflict Resolution

Two classifications:Two classifications:Smart Smart –– can resolve conflictscan resolve conflictsDumb Dumb –– cannot resolve conflictscannot resolve conflicts

All devices can move all dataAll devices can move all data

Separate conflict transfer from Separate conflict transfer from conflict resolutionconflict resolution

FootlooseFootloose

Shared data store for pervasive Shared data store for pervasive applicationsapplications

Guarantees “no lost updates”Guarantees “no lost updates”Automatic management and routing of shared Automatic management and routing of shared data.data.ApplicationApplication--level devicelevel device--distributed conflict distributed conflict resolutionresolution

Footloose ArchitectureFootloose Architecture

Footloose StoreApplication interface and storage facility.

Footloose Protocol DaemonDevice interface and consistency maintainer.

Any possible network connection

FPD

User Application

FLS

User ApplicationRegister types that will be stored and shared.

FPD

Application

The Footloose StoreThe Footloose Store

Mutable mapping for Mutable mapping for applicationsapplications

Data is named by a Data is named by a RecordIDRecordID and maps to a and maps to a set of set of UpdateEventsUpdateEventsOnly valid Only valid UpdateEventsUpdateEventsget 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 UpdateEventsUpdateEvents

List of List of UpdateEventsUpdateEvents for for the FPDthe FPD

RecordID,UpdateEvent {UpdateEvent}

{UpdateEvent, StatusVector}

{UpdateEvent,StatusVector}

Easy

conflic

t

detectio

n!

Transpare

nt

Transport

of

Conflicts!

Enabling Automatic ManagementEnabling Automatic Management

J = {NULL UE1: 555-1000}J = {NULL UE1: 555-1000,UE1 UE2: 867-5309}

NULL UE1: 555-1000,UE1 UE2: 867-5309

J = {NULL UE1: 555-1000}J = {NULL UE1: 555-1000,UE1 UE2: 867-5309}

NULL UE1: 555-1000,UE1 UE2: 867-5309

J = {NULL UE1: 555-1000}J = {NULL UE1: 555-1000,UE1 UE2: 867-5309}

The Footloose Protocol DaemonThe Footloose Protocol Daemon

Maintains “shared Maintains “shared knowledge” knowledge”

StatusVectorsStatusVectors indicating indicating this this FPD’sFPD’s knowledge about knowledge about an an UpdateEventUpdateEvent on all on all devicesdevicesDevice interestsDevice interests

Manages Device Manages Device CommunicationCommunication

Data routesData routes

FPD

{UpdateEvent, StatusVector}

{UpdateEvent,StatusVector}

Foreign FPD

{UpdateEvent, StatusVector},{Device Interests}

Physical

Routing

Garbage

Collection

& Purging

Effective Use of Communication Effective Use of Communication PathwaysPathways

cell:Interest in ={laptop, work-comp}

{}

work-comp:Interest in ={laptop, work-comp}

{NULL UE1: ,…}

cell:Interest in ={laptop, work-comp}

{NULL UE1: }

laptop:Interest in ={laptop, work-comp}

{...}

laptop:Interest in ={laptop, work-comp}

{NULL UE1: ,…}

ImplementationImplementation

FLS and FPD built in JavaFLS and FPD built in JavaTwo applications:Two applications:

WishlistWishlist ApplicationApplicationPhone Number DatabasePhone Number Database

25 lines of Footloose25 lines of Footloose--dependent codedependent code

Simulation FrameworkSimulation Framework

EvaluationEvaluation

2 3 4 5 6 7 80

1000

2000

3000

4000

5000

6000

7000

8000

9000N

umbe

r of

Upd

ates

Number of Devices

CliqueLineStarTreeRing

EvaluationEvaluation

50 60 70 80 90 1005

10

15

20

25

30

35

40

45

Buffer Size

# of

Syn

cs

3 devices4 devices5 devices

Design Evaluation and Future WorkDesign Evaluation and Future Work

Need better support for complex Need better support for complex “directory“directory--like” typeslike” typesSupport for large updatesSupport for large updatesVariable Number of DevicesVariable Number of DevicesSecurity FrameworkSecurity FrameworkUser StudyUser Study

Further InformationFurther Information

Justin Justin MazzolaMazzola [email protected]@mit.edu

http://http://web.mit.edu/jmp/wwwweb.mit.edu/jmp/www//