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 , Tom Yeh Yeh, Kathryn Chen , Kathryn Chen David MIT CSAIL MIT CSAIL
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- -level conflict resolution level conflict resolution application � 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 User Application Footloose Store User Application Application interface Register types that FLS and storage facility. will be stored and shared. Footloose Protocol FPD Daemon Any possible network connection Device interface and consistency maintainer.
The Footloose Store The Footloose Store Application y s � Mutable mapping for Mutable mapping for a RecordID, � E t c {UpdateEvent} applications applications i UpdateEvent l f ! n n o o � Data is named by a Data is named by a c i � t c RecordID and maps to a and maps to a RecordID e t e set of UpdateEvents UpdateEvents set of d � Only valid Only valid UpdateEvents UpdateEvents � get returned to apps. get returned to apps. t n � Applications must make Applications must make e � r a f updates not writes. updates not writes. p o s t n r � The FLS stores only The FLS stores only a o � r p T ! s UpdateEvents UpdateEvents s n t c a i r � List of List of UpdateEvents UpdateEvents for l for f T n � {UpdateEvent, {UpdateEvent, o the FPD the FPD C StatusVector} StatusVector} FPD
Enabling Automatic Management Enabling Automatic Management J = {NULL � UE 1 : 555-1000, J = {NULL � UE 1 : 555-1000} UE 1 � UE 2 : 867-5309} NULL � UE 1 : 555-1000, UE 1 � UE 2 : 867-5309 NULL � UE 1 : 555-1000, UE 1 � UE 2 : 867-5309 J = {NULL � UE 1 : 555-1000, J = {NULL � UE 1 : 555-1000} UE 1 � UE 2 : 867-5309} J = {NULL � UE 1 : 555-1000, J = {NULL � UE 1 : 555-1000} UE 1 � UE 2 : 867-5309}
The Footloose Protocol Daemon The Footloose Protocol Daemon � Maintains “shared Maintains “shared � e g a knowledge” knowledge” b n {UpdateEvent, {UpdateEvent, r o a i G t � StatusVectors StatusVectors indicating indicating StatusVector} StatusVector} c � g e n l l this FPD’s FPD’s knowledge about knowledge about this o i g FPD C r u an UpdateEvent UpdateEvent on all on all an P & devices devices � Device interests Device interests � l a � Manages Device Manages Device c � i s y g Communication Communication h n P i t u � Data routes Data routes o � R {UpdateEvent, StatusVector}, {Device Interests} Foreign FPD
Effective Use of Communication Effective Use of Communication Pathways Pathways cell: cell: Interest in = Interest in = {laptop, work-comp} {laptop, work-comp} {NULL � UE 1 : } {} laptop: laptop: work-comp: Interest in = Interest in = Interest in = {laptop, work-comp} {laptop, work-comp} {laptop, work-comp} {...} {NULL � UE 1 : , {NULL � UE1: , …} …}
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 9000 8000 Clique Line 7000 Star Number of Updates Tree 6000 Ring 5000 4000 3000 2000 1000 0 2 3 4 5 6 7 8 Number of Devices
Evaluation Evaluation 45 40 35 3 devices 4 devices 30 # of Syncs 5 devices 25 20 15 10 5 50 60 70 80 90 100 Buffer Size
Design Evaluation and Future Work Design Evaluation and Future Work � Need better support for complex Need better support for complex � “directory- -like” types like” types “directory � Support for large updates Support for large updates � � Variable Number of Devices Variable Number of Devices � � Security Framework Security Framework � � User Study User Study �
Further Information Further Information Justin Mazzola Mazzola Paluska Paluska Justin jmp@mit.edu jmp@mit.edu http://web.mit.edu/jmp/www web.mit.edu/jmp/www/ / http://
Recommend
More recommend