Skip to content
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

Create job output in temp-folder and move to final folder when successful #326

Closed
vinjana opened this issue Dec 19, 2018 · 1 comment
Closed

Comments

@vinjana
Copy link
Contributor

vinjana commented Dec 19, 2018

Currently, all temporary file management, in particular that required to have safe creation of files (mv at the end is more transactional) has to be done by the users manually in the code.

In most workflows a simple .tmp suffix is used which turned out to be unsafe in situations in which Roddy is called twice on the same data but cannot recognize that the workflow is already running (e.g. because of the bug that bjobs temporarily does not report all running jobs).

Solution:

  • Write all files into a temporary folder.
  • Move the files to their final destinations as soon as the job successfully finished (e.g. in the wrapper).

Implementation idea:

  • Create a temporary folder with unique name, e.g. in the roddy execution store (but consider how CWL runners like cwlexec or toil solve this issue (they use a directory in the top-level)
  • Within the temp-folder all files are created with the same subdirectory structure as in the final folder.
  • After the script finished, let the wrapper move the content of the temp-folder to the top of the output directory.
@vinjana
Copy link
Contributor Author

vinjana commented Apr 2, 2019

Duplicate of #330

@vinjana vinjana marked this as a duplicate of #330 Apr 2, 2019
@vinjana vinjana closed this as completed Apr 2, 2019
@vinjana vinjana moved this to Done in RoddyCore May 29, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

No branches or pull requests

1 participant