-
Notifications
You must be signed in to change notification settings - Fork 1
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 # 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: