Safe filesystem API for a FUSE implementation in Rust

What I am seeing is this (it also relates to the other question Safe API - Registers - #89 by happybeing )

  • A Register Entry holds a Key
  • That key points to a Value (chunk)
  • That Chunk Holds metadata
    • File structs with name/size/data_map etc.
    • Links to another Directory (Register)

When ANY entry in the Directory (Register) changes a new RegisterEntry is written.

This can happen with concurrent access and create a fork in the register. This means 2 separate entities had write permissions and wrote to the register (Directory) at the same time. This is OK as users need to merge that and registers allow this merge (a new RegisterEntry is written that is the latest entry with both of the forks as its ancestor).

I am not seeing the issue, but I could be totally missing something here.

8 Likes