New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add hpx::migrate facility #559

Closed
hkaiser opened this Issue Oct 2, 2012 · 2 comments

Comments

Projects
None yet
3 participants
@hkaiser
Member

hkaiser commented Oct 2, 2012

The hpx::migrate facility is meant to do the full migration operation for the referenced object (component). This is a huge task and consists of many subtasks which have to be referenced here.

@ghost ghost assigned brycelelbach Dec 3, 2012

@ghost ghost assigned hkaiser Jul 30, 2013

@hkaiser

This comment has been minimized.

Show comment
Hide comment
@hkaiser

hkaiser Feb 7, 2014

Member

The hpx::migrate facility has been added (see #1060: Implement minimal component migration). However this currently only implements minimal migration support leaving most of the responsibilities to the user. Several things are missing:

  • Make sure that no AGAS address resolution requests are being processed while a migration operation is in flight (#1378)
  • Make sure that no operations are being executed while the object is migrated. Generally, execution of any operation on an object should 'pin' it for the duration of the function call. (#1966)
  • Make sure that a migration request is being scheduled for objects which can't be migrated right away, triggering the actual migration once all preconditions are met. (#1966)
  • Make sure that no threads are currently scheduled (and are already sitting in the thread manager queues) while the object is migrated. (#1966)
  • Make sure that no new work items (threads) are scheduled while the object is migrated. (#1966)
  • Make sure that stale references in AGAS caches to the old object location are properly handled (incoming requests for old objects should be forwarded, the cache entries should be updated/removed) (#1378)

The current implementation works for simple_components only. We need to investigate whether and how this could be extended to work for managed_components as well.

Member

hkaiser commented Feb 7, 2014

The hpx::migrate facility has been added (see #1060: Implement minimal component migration). However this currently only implements minimal migration support leaving most of the responsibilities to the user. Several things are missing:

  • Make sure that no AGAS address resolution requests are being processed while a migration operation is in flight (#1378)
  • Make sure that no operations are being executed while the object is migrated. Generally, execution of any operation on an object should 'pin' it for the duration of the function call. (#1966)
  • Make sure that a migration request is being scheduled for objects which can't be migrated right away, triggering the actual migration once all preconditions are met. (#1966)
  • Make sure that no threads are currently scheduled (and are already sitting in the thread manager queues) while the object is migrated. (#1966)
  • Make sure that no new work items (threads) are scheduled while the object is migrated. (#1966)
  • Make sure that stale references in AGAS caches to the old object location are properly handled (incoming requests for old objects should be forwarded, the cache entries should be updated/removed) (#1378)

The current implementation works for simple_components only. We need to investigate whether and how this could be extended to work for managed_components as well.

@hkaiser

This comment has been minimized.

Show comment
Hide comment
@hkaiser

hkaiser Feb 9, 2016

Member

This has been fixed by merging #1966

Member

hkaiser commented Feb 9, 2016

This has been fixed by merging #1966

@hkaiser hkaiser closed this Feb 9, 2016

@hkaiser hkaiser modified the milestones: 0.9.12, 1.0.0 Feb 9, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment