Migration also in Java though RMI.
Not efficient Not true migration - no redirection of references.
execution engines - Java interpreters.
Object group - I/O objects not moved but retargetted (suitcase.)
forwarding adrress left and object-moved exception.
Can also create a new thread at remote site a la Obliq. rexec main method. Non blocking.
Can also migrate thread. - go instruction. stack sent and non object groups. remote references to object groups.
Code?
send thread code also: expensive, no retargetting.
assume same program all sites- too conservative.
send code from go to all visible gos - gos on control path. compiler support.
send code from go to enabled gos - uses dynamic stack info.
Policy? Application-defined (mobili-aware app.)
Factors:
spatial variations - links with diff. speeds. population variations - users join/leave. one time placement. temporal variations: link speed changes.
Experiments show: large spatial variations. US hosts: 15 ms to 863ms. Non Us hosts: 84ms to 4000ms.
Time variation: short-term small jitter. occasional sharp jumps over short time intervals. in small windows (10 mins): 70-90 over one day, mode variation: US hosts: 500 ms, Non US: 5750ms.
Application can request monitoring of link with specified frequency. Mode of last 10 min window written in shared memory.
Example application:
Centralized: Master migrates. Thread or obj group? remote method vs remote thread execution.
replicated: session manager. thread or obj group?
Policy: adapttalk - minimize max response time. tradeoff between stability and good reponse. multiple rounds - decison cycle (50n). win threshold for reponse (25n). loss threshold (12n).
consider all kinds of variations.