DOC PREVIEW
Failure Handling in a modal Language

This preview shows page 1-2-3-4-5-34-35-36-37-68-69-70-71-72 out of 72 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 72 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Failure Handling in a modal LanguageClaims Made in this TalkML5ML5, Briefly...RPC-Style Distributed ProgrammingSlide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14ML5 IllustrationSlide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22ExampleSlide 24Slide 25Slide 26Slide 27TypesJust a Few Types…Slide 30Slide 31Slide 32Slide 33Slide 34But What About Host Failure?Slide 36Slide 37Slide 38Slide 39Slide 40What We Want (Intuitively)Slide 42Slide 43Isn’t This Just a ‘Timeout’ Exception?AnswersSlide 46Slide 47What We NeedOne More WrinkleSlide 50Slide 51The Design, In ShortSlide 53Slide 54Slide 55Slide 56ML5-C: Error ContinuationsSlide 58Slide 59Slide 60Slide 61Slide 62Slide 63Slide 64Slide 65Slide 66Slide 67Interesting NoteFuture WorkThanks!Failure Handling is More NaturalSo You Want to See the Typing Rules...1Failure Handling in a modal LanguageNels Eric BeckmanResearch TalkInstitute for Software ResearchOctober 30, 2006Failure Handling in a Modal LanguageISR2Claims Made in this Talk•ML5 is an elegant language for programming distributed systems.•In the face of node failure, the meaning of ML5 programs becomes unclear.•We propose extensions to ML5 that makes their meaning clear.•(In reality, this research is a work in progress.)Failure Handling in a Modal LanguageISR3ML5•A Programming Language for Distributed Systems•Based on a Modal Logic•i.e. A Logic With an Embedded Notion of Place•Tom Murphy’s Thesis Work•Targeted for Grid ProgrammingFailure Handling in a Modal LanguageISR4ML5, Briefly...•Allows Hosts to Send ‘Thunks’ to One Another for Execution•In practice, code can be more cleanly decomposed.•Has An Advanced Type System •Location-specific resources can be typed as so.Failure Handling in a Modal LanguageISR5RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;Failure Handling in a Modal LanguageISR6RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;Failure Handling in a Modal LanguageISR7RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;Failure Handling in a Modal LanguageISR8RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;rpc “b”Failure Handling in a Modal LanguageISR9RPC-Style Distributed ProgrammingPCPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;Failure Handling in a Modal LanguageISR10RPC-Style Distributed ProgrammingPCPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;Failure Handling in a Modal LanguageISR11RPC-Style Distributed ProgrammingPCPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;Failure Handling in a Modal LanguageISR12RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;ret xFailure Handling in a Modal LanguageISR13RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;ret xFailure Handling in a Modal LanguageISR14RPC-Style Distributed ProgrammingPCHostActive threadBlocked threadMessagefun a =fun b =rpc(“b”,19.x.x.x) + rreturn x;ret xFailure Handling in a Modal LanguageISR15ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR16ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR17ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR18ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR19ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR20ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR21ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR22ML5 IllustrationPCHostLocation of threadMigration of threadFailure Handling in a Modal LanguageISR23Example•Remotely Finding List’s Sum (RPC)Server Code:class ListServ {List<Integer> myList = new ...List<Integer> getList() { return myList; }}Failure Handling in a Modal LanguageISR24Example•Remotely Finding List’s Sum (RPC)Client Code:class ListClient {ListServerStub myServ = new ...public void foo() {List<Integer> list = myServ.getList(); for(Integer item: list) {count+= item.intValue();}if( count >= 40 ) ...}}Failure Handling in a Modal LanguageISR25Example•Remotely Finding List’s Sum (RPC)•To Fix Should We:•Add a new server operation that returns true if a list’s sum is greater than 40?•Weird if operation is only used once.•We wouldn’t structure application this way in a centralized setting.•Bite the performance bullet and send the whole list?Failure Handling in a Modal LanguageISR26Example•Remotely Finding List’s Sum (ML5)Before:fun foo remote_host remote_list_ref =let fun sum a_list = foldl op+ 0 a_listinif sum (get[remote_host]( !remote_list_ref )) > 40then trueelse falseFailure Handling in a Modal LanguageISR27Example•Remotely Finding List’s Sum (ML5)After:fun foo remote_host remote_list_ref =let fun sum a_list = foldl op+ 0 a_listinget[remote_host](if sum ( !remote_list_ref ) > 40then trueelse false)Failure Handling in a Modal LanguageISR28Types•ML5 Type System Embeds a Notion of Place•Some values can be used at any place.•e.g. Primitive data types, structures•Some values can only be used at the location where they make sense.•e.g. File descriptors, reference cells, printersFailure Handling in a Modal LanguageISR29Just a Few Types…•τ@w – “The type τ is well-typed on host w.”Failure Handling in a Modal LanguageISR30Just a Few Types…•get[w’,a]e – “Evaluate e on host w’ and return the result to the current host. Change e’s type from @w’ to @w.”•Example:fun foo (x: int ref @w’, a: w’ addr @w) =get[w’,a]( !x + !x )Failure Handling in a Modal LanguageISR31Just a Few Types…•get[w’,a]e – “Evaluate e on host w’ and return the result to the current host. Change e’s type from @w’ to @w.”•Example:fun foo (x: int ref @w’, a: w’ addr @w) =get[w’,a]( !x + !x )Typedint@w’Failure Handling in a Modal


Failure Handling in a modal Language

Download Failure Handling in a modal Language
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Failure Handling in a modal Language and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Failure Handling in a modal Language 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?