The solidify filesystem

Status

Currently, solidify is not very functional. This is an overview of what you can expect.

Current status (completed features)

  • File systems can be created.
  • File systems can be mounted.
  • The file system is read-only.
  • Files are marked for solidifcation (retrieval) upon access and by calling the command line tool for solidification.
  • File systems can be synchronised when unmounted, but only non-conflicting remote-to-local changes are transmitted.
  • Bidirectional synchronisation is implemented (though testing is restricted to remote-to-local, obviously)
  • Files are solidified (copied from remote to local) during synchronisation.
  • Some safety checks have been implemented.

To-Do list for a functional release

  • Implement more safety checks.
  • Improve the user interface.
  • Make file system writeable.
  • Let the user decide about conflicting changes. Maybe imitate the unison command line.
  • Write a fsck tool to ensure consistency of internal database and on-disk representation.

Distant (cool) features

  • Try to fetch files while the file system is mounted via sftp or rsync.
  • Make the file system multi-threaded (this is probably necessary for the previous item).
  • Using hard-links, construct a local directory tree of solid files which can be accessed when the file system is not mounted.
  • Synchronise the file system in the background.
  • Fetch files partially via ssh when required. Assemble the whole files later.
  • Write a (PyQt)-GUI to handle synchronisation.