IN-network state management of long running computations Master’s Thesis Balázs Faludi
Content Centric networking Shift from host-centric solutions to named information as a central design element Finding and retrieving content is the responsibility of the network Proposed by Xerox PARC CCNx: reference implementation CCN-lite: lightweight and functionally interoperable implementation
Network Messages Interests Expresses the interest of a client in a specific content to the network Mainly consists of a single name Content Objects „Response“ to an Interest Contains a name and some data
Network Nodes Forwarding Information Base (FIB) Map name prefixes to forwarding info Cache, Content Store (CS) Pending Interest Table (PIT) Store routing info about forwarded Interests Used to route Content back the the client Entries time out after a while
Client CCN Relay A CCN Relay B CCN Relay C Interest: /ch/unibas/nodeC/testfile.txt /ch/unibas/ nodeC/ testfile.txt Interest: /ch/unibas/nodeC/testfile.txt Interest: /ch/unibas/nodeC/testfile.txt /ch/unibas/ nodeC/ testfile.txt Interest: /ch/unibas/nodeC/testfile.txt Interest: /ch/unibas/nodeC/testfile.txt CCN Relay A CCN Relay B CCN Relay C … /ch/ : B … /ch/unibas/nodeC/ : C … Interest: /ch/unibas/nodeC/testfile.txt Interest: /ch/unibas/nodeC/testfile.txt FIB PIT FIB PIT FIB PIT
Named Function Networking Research project at the University of Basel Builds upon CCN-lite Named content Named functions Network enabled to organize the execution of complex computations Computations expressed using λ-calculus /ch/unibas/…/videofile.mp4/ (@x call 2 |us|ucla|…|compress x 'h.264')/NFN
Client NFN Compute Server NFN Relay A NFN Relay B NFN Relay C /nodeC/ video.mp4 compressed /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN Client NFN Compute Server /nodeC/ video.mp4 compressed /nodeC/video.mp4/ (@x call 2 /nodeC/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/ video.mp4 /nodeC/ video.mp4 /nodeC/ compress /nodeC/ compress NFN Relay A NFN Relay B NFN Relay C … /nodeC/ : B … /nodeC/ : C … /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN FIB PIT FIB PIT FIB PIT
Long running computations CCN-Interests: predictable, relatively short response times NFN-Interests: unpredictable response times Potentially very long running computations with no feedback Problem: PIT entries time out Project: implement and test two different solutions for this problem
Client NFN Compute Server NFN Relay A NFN Relay B NFN Relay C FIB PIT /nodeC/ video.mp4 compressed /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN Client NFN Compute Server /nodeC/ video.mp4 /nodeC/ compress NFN Relay A NFN Relay B NFN Relay C … /nodeC/ : B … /nodeC/ : C … /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN FIB PIT FIB PIT FIB PIT
KEEP Content Approach Let PIT entries time out Periodically retransmit the original Interest Recreate the return path for the results Ensure that the results are cached until they can be retrieved
Client NFN Compute Server NFN Relay A NFN Relay B NFN Relay C /nodeC/ video.mp4 compressed /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN Client NFN Compute Server /nodeC/video.mp4/ (@x call 2 /nodeC/compress x)/NFN /nodeC/ video.mp4 /nodeC/ compress NFN Relay A NFN Relay B NFN Relay C … /nodeC/ : B … /nodeC/ : C … /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN FIB PIT FIB PIT FIB PIT
Keep Alive approach Prevent PIT entries from timing out Both on the client and all forwarding nodes Before a PIT entry times out, send a special Keep Alive Interest (KAI) Inquiry about current state of computation /ch/unibas/…/videofile.mp4/ (@x call 2 |us|ucla|…|compress x 'h.264')/ ALIVE/NFN
Keep Alive approach Result: Extend the lifetime of the PIT entry Resend Keep Alive Interest periodically No result: Assume a problem with the computation, the Interest or the network. Remove PIT entry, abandon computation Repeat until result arrives or KAI times out
Client NFN Compute Server NFN Relay A NFN Relay B NFN Relay C /nodeC/ video.mp4 compressed /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN Client NFN Compute Server /nodeC/ video.mp4 /nodeC/ compress NFN Relay A NFN Relay B NFN Relay C /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN … /nodeC/ : B … /nodeC/ : C … /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ /nodeC/video.mp4/ /nodeC/video.mp4/ (@x call 2 /nodeC/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeC/compress x)/ALIVE/NFN (@x call 2 /nodeC/compress x)/ ALIVE /NFN FIB PIT FIB PIT FIB PIT
intermediate results Extension to the Keep Alive solution Services can create intermediate results Semantics are decided by the service Keep Alive response contains the highest available index of intermediate results Client can optionally send Interests for these intermediate results
/(@x call 2 |nodeC|nbodysim N-Body Simulation Numeric approximation of the movement of interacting particles, e.g. planets or stars Demonstrates the Keep Alive system in a realistic situation Duration depends on temporal resolution and number of iteration steps /(@x call 2 |nodeC|nbodysim '-d' 60 '-s' 10000)/NFN
Comparison Compatibility KA: Requires all nodes to support NFN and the Keep Alive system KC: Allows CCN nodes in the network Feedback KA: feedback inherently supported KC: client is not notified about an issue with the computation
Future Inspect every forwarded KA response Combination of KA and KC Keep PIT entries alive, but move responsibility to source of Interest Keep Computations Alive Abort computation if no KAI is received Client can indirectly cancel a computation
Client NFN Compute Server NFN Relay A NFN Relay B NFN Relay C FIB PIT /nodeC/ video.mp4 compressed /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN Client NFN Compute Server /nodeC/ video.mp4 /nodeC/ compress NFN Relay A NFN Relay B NFN Relay C … /nodeC/ : B … /nodeC/ : C … /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN /nodeC/video.mp4/ (@x call 2 /nodeB/compress x)/NFN FIB PIT FIB PIT FIB PIT
Thank you for your attention