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

Add copy-up (on read) #58

Open
xelra opened this issue Jan 19, 2017 · 2 comments
Open

Add copy-up (on read) #58

xelra opened this issue Jan 19, 2017 · 2 comments

Comments

@xelra
Copy link

xelra commented Jan 19, 2017

It would be great if the unionfs wouldn't just support copy-on-write, but also copy-up when you read a file.

I'm using the rw layer of the unionfs mostly as a cache for the much slower ro layer. Having a copy-up function would let me use the rw layer as a true lru cache.

@rpodgorny
Copy link
Owner

this sounds like a task for some kind of "cache-fs" type of filesystem and is outside of unionfs' scope... i agree such feature would be nice to have but i'm hesitant to consider adding such option until i'm convinced this can't be done outside of unionfs...

@xelra
Copy link
Author

xelra commented Jan 25, 2017

I've invested a lot of time and research into this topic and looked at various cache-fs'es. The best contender would have been bcache, but it only works on block devices and even if it were possible, it was designed for SSD+HDD in mind, so it's unclear how well it would perform.

I've also considered maybe scripting something, but the problem is that all of those DIY solutions happen in front of the unionfs layer. For it to work properly it needs to do its job behind the unionfs layer, so you can access a file while it's being copied up (stream + copy-up simultaneously).

Aufs (search for "copy-up" on that page) supports copy-up, which is the only unionfs I could find which does. It's nowhere as easy to use or versatile as unionfs-fuse though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants