Project

General

Profile

Idea #12308

Updated by Tom Clegg over 6 years ago

Background: 

 Python+llfuse was expedient and has done lots of good work for us, but it's not promising as a long term (fast+reliable+maintainable) solution. 

 Replacement strategy: Replacement: 

 * use collection-backed filesystem from #12483 Go 
 * add a more general arvados-backed filesystem ("by_id" directory, etc) 
 * present as fuse using a library like https://godoc.org/github.com/hanwen/go-fuse/fuse or https://godoc.org/bazil.org/fuse 

 The arvados-to-filesystem mapping should be implemented as a native Go interface, with a separate thin layer attaching that to the FUSE library. This way we can export the same filesystem behavior through other interfaces. In particular, we will want at least: 
 * bazil.org/fuse is a popular choice for doing fuse with go 
 * billziss-gh/cgofuse cross-compiles to Linux, Windows, and OSX (but is probably not as good as bazil on linux) 
 * webdav should export the same hierarchy 

Back