-
-
Notifications
You must be signed in to change notification settings - Fork 428
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
Implement 'migration' to and from disk #1163
Comments
I think we need to first solve the actual migration from somewhere's memory to somewhere else's disk. No AGAS has to get involved here. Just the actual operation of saving an object and of bringing it back. The next step would be to integrate this functionality into AGAS (you're right, AGAS needs to know whether a particular gid refers to an object which is alive). So let's have a look at the first step. This involves two different things: a) storing an object, and b) bringing it back. Currently, migrate looks like:
Here, a) For the new 'migration' to disk,
Component actions which are templates are a bit tricky, but the template-accumulator example shows how to use them. Having a component will make HPX distinguish between 'normal' migration and your new one. We could even use predefined ids for this component, i.e. derive it from fixed_component_base, but that's something for later. All this will utilize the existing migrate infrastructure, it will just change the receiving end of the operation to save the object. b) Bringing the object back is a bit more complicated. Here we can re-utilize the backend which already exists in the runtime_support object (receiving the data and recreating the object), but we need to provide a new implementation of the source of the byte stream. The current source of the byte stream is implemented by the What I'd suggest is to add the information that the object is currently on disk to the This again would allow for keeping the existing migration infrastructure in place. |
Hi Hartmut, I am thinking of using the tuple space to store the byte representation of components. The total scheme is as the follows:
I feel that this approach can help manage the total runtime environment and act as a storage locality. |
Yah sure, that should work. At least it decouples the migration part from the underlying file system part... |
This has been implemented by merging #1375: Fixing 1163 |
While merging #1375 is the first into that direction, it hasn't implemented disk storage. reopening. |
The first steps have been implemented, moving the rest to the next milestone... |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue has been automatically closed. Please re-open if necessary. |
Implement an alternative backend for migration which stores the byte stream to disk and retrieves it back from disk.
The text was updated successfully, but these errors were encountered: