-
Notifications
You must be signed in to change notification settings - Fork 1
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
Hard links are used to snapshot RRun workspace #50
Comments
Hmm, once we ran tales in containers which mounted Under the assumption that workspace only contains source-like files, it would still be significantly more efficient to do copy-on-write when modifying workspace files than when creating versions/runs, since it is unlikely that every workspace file is modified with every version/run. |
Yeah, that's definitely my fault. I didn't realize the implication of switching to bind mounts. I see 3 options:
|
Not my point. Because I didn't see it either. And we might want to leave a warning sign in a more conspicuous place than some dusty doc in the googles.
I agree that (1) is not ideal long term. I like (2). We are ultimately doing trickery for performance reasons. So, while using git as a backing store might work, I'm not sure (3) will work well. Even the current scheme is not quite right, since every snapshot is O(n) in the number of files in the workspace even if no file has been touched, but any solution based on a generic FS will probably have to be at least that. |
We're using
self.snapshotRecursive
on version/workspace to create run/workspace. That's wrong cause it makes a hardlink instead of a copy. Can you guess the result?How to reproduce?
run.sh
with the following content:file_that_should_have_one_line
andrun.sh
to Tale's workspace, perform Recorded RunActual Result
file_that_should_have_one_line
in 1) Tale's active workspace, 2) version's immutable workspace and 3) RRun's workspace contains:Expected Result
file_that_should_have_one_line
in 1) Tale's active workspace, 2) version immutable workspace contains:whereas
file_that_should_have_one_line
has 3 lines in RRun's workspace.The text was updated successfully, but these errors were encountered: