bbengfort / fluidfs

A highly consistent distributed filesystem built with FUSE
http://www.fluidfs.com
MIT License
1 stars 0 forks source link

File versioning #24

Closed bbengfort closed 7 years ago

bbengfort commented 7 years ago

Create the ability to lookup historical version information from FluidFS.

bbengfort commented 7 years ago

Right now each object name has it's own version, represented as a lamport scalar version number.

The namespace maps: global name --> version number. The version bucket maps version number --> file metadata

The version number is currently composed as a tuple:

(global name, scalar, process id)

The global name is required so that (test.txt, 1, 1) isn't confused with (foo.txt, 1, 1) since each object owns it's own history.

On Flush, a new version needs to be created, and the previous version number needs to be stored. This new version needs to be flushed to disk.