Download presentation
Presentation is loading. Please wait.
1
Tentative Updates in MINO Steven Czerwinski Jeff Pang Anthony Joseph John Kubiatowicz ROC Winter Retreat January 13, 2002
2
2 MINO: Mail service on OceanStore Enables mail storage and access –Individual user accounts with INBOX and folders –Send e-mail through SMTP proxy –Read and organize e-mail through IMAP proxy Interesting application for OceanStore –Mail needs global scale and mobility –Tested client APIs and tentative updates –It’s not a file system MINO Global Scale Mail Service Unmodified Mail Client Access Point (Berkeley) Access Point (Tahoe) Send e-mail to czerwin@ostore Read new message, Move to OceanStore folder
3
3 The MINO architecture OceanStore provides object store access –Inner Ring commits updates, Replicas cache objects OceanStore Client Node Replica Nodes Inner Ring Nodes Object Folder Object Message Object MINO builds on OceanStore –Defines message, folder, mail drop objects OceanStore Client API Mail Object Layer IMAP Proxy SMTP Proxy Access Point –Access point is OceanStore client to support legacy protocols –Access point typically runs on client machine
4
4 Adapting to mobility Replicas of our mail objects migrate towards us Updates (writes) must still go to inner ring Inner ring is bottle neck to adaptability –Can choose replicas based on conditions, but not inner ring –Commit time = T transmit to IR + T in queue + T process update What happens when we go to Tahoe? Internet Inner Ring Nodes BerkeleyGranlibakken Replica Nodes Client
5
5 Removing the bottleneck Use relaxed consistency & tentative updates –Don’t wait for the inner ring response –Consider updates tentatively committed when received by n of m replicas –Provides durability –Mail layer uses application-specific logic to resolve conflicts Mail Object Layer Replica Nodes Saved (4 responses) IMAP Proxy Move Msg Completed Inner Ring Nodes Save Tentative Commit update
6
6 Conflict detection and resolution Folder Object Object Data Pending Actions Inner Ring Nodes Client 1.Client tracks pending actions Action: Replace Data Predicate: Version = 5 Update Request 2.Submits update, predicated on version Update failed, version = 6 3.On failure, client is notified and reads newest Reapply action 4.Checks pending actions for true conflict, then reapplies Action: Replace Data Predicate: Version = 5 Update Request #2 5.Resubmits with new predicate
7
7 Benchmarking Analyzed benefits to mobile clients IMAP login benchmark –Authentication, client sync, and fetches new msgs –8 blocking IMAP commands –Trace from Mozilla 1.0 IMAP client Experiment –Account with 100 msgs (3 new) and 50 folders –50 trials run for each artificial latency value –Cases: no tentative, tentative, tentative w/ warm caches Replica Nodes Client Inner Ring Nodes Artificial Latency
8
8 Results Tentative updates more robust to increases in latency!
9
9 Unresolved issues How do we pick remote replicas? –Failures should be independent –Need at least one well-behaved remote replica –Failure rate affects choosing n and m How do we know when to use tentative? –Tentative benefits when IR slow or far away –Puts load on infrastructure resources (replicas) What criteria are we trying to optimize? Investigating introspection to address issues
10
10 Conclusions Fully functional mail service with OceanStore –Works with unmodified mail clients –Supports IMAP and SMTP access Investigated tentative commits in OceanStore –Client API sufficient to support conflict resolution –Showed improvement for mobile clients Made suggestions for next prototype Future work –Using introspection to make optimization decisions –Sharing tentative updates with other sessions
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.