Phantom: Process Migration in Java Chris Serra Harit Modi

Download Report

Transcript Phantom: Process Migration in Java Chris Serra Harit Modi

Phantom: Process Migration
in Java
Chris Serra
Harit Modi
Dept. of Computer Sciences
Motivation
• Process Migration
– Moving a running process to another host
• Applications
– load balancing
– fault tolerance
May 5, 1998
Phantom - CS 739 Final Project
2
Outline
•
•
•
•
•
Motivation
Design Goals
Implementation
Future Work
Conclusions
May 5, 1998
Phantom - CS 739 Final Project
3
Design Goals
Phantom:
•
•
•
•
•
Pre-emptable
heterogeneous
and
transparent
object migration
May 5, 1998
Phantom - CS 739 Final Project
4
Design Goals
• Heterogeneous
• Transparent
– code
– process
• Pre-emptable
• *** Use either prev slide or this one ***
May 5, 1998
Phantom - CS 739 Final Project
5
Spectrum of Possibilities
• Data Migration
• Process Migration
– homogeneous
– heterogeneous
• interpreted
• native
May 5, 1998
Phantom - CS 739 Final Project
6
Why Java?
• Heterogeneous “for free”
• Nice properties of language and VM
– type safe
– secure
– widely accepted
– JDK source public
• JVM Debugging (or -ger) Interface
May 5, 1998
Phantom - CS 739 Final Project
7
Runtime State Components
• data
– objects
• code
– bytecode
• execution state
– call stack
– operand stacks
May 5, 1998
Phantom - CS 739 Final Project
8
Migration Components
• Data
– object serialization
• Code
– class namespace non-uniform globally
+ Bytecode interpretation uniform
May 5, 1998
Phantom - CS 739 Final Project
9
Execution State
?
Per-method
operand stack
?
?
?
Call Stack
May 5, 1998
Phantom - CS 739 Final Project
10
Operand Stack
• Type information missing
– type verification at runtime
+ Use dataflow analysis to recreate
May 5, 1998
Phantom - CS 739 Final Project
11
Pointers
Objects
Call Stack
May 5, 1998
Phantom - CS 739 Final Project
12
Operand Stack - 2
• Object References
– Java objects - pointers
– multiple references
– address space machine-dependent
– “temporary” objects
+ encapsulate using Object Serialization
May 5, 1998
Phantom - CS 739 Final Project
13
Object Serialization
May 5, 1998
Phantom - CS 739 Final Project
14
Native Methods
• <Figure about When we can
checkpoint>
May 5, 1998
Phantom - CS 739 Final Project
15
Future Work
• Checkpointing Policies
• External References
May 5, 1998
Phantom - CS 739 Final Project
16
Conclusions
• Phantom
– pre-emptable
– heterogeneous
– transparent
– minimal modifications to JDK
• 739
+A
–F
May 5, 1998
Phantom - CS 739 Final Project
17