Autotier Versions Save

A passthrough FUSE filesystem that intelligently moves files between storage tiers based on frequency of use, file age, and tier fullness.

v1.2.0

2 years ago

Autotier 1.2.0-1

  • Switch from unique config parser class to lib45d ConfigParser.
  • Use lib45d Bytes and Quota classes to clean up math while tiering.
  • Make CLI commands more reliable with lib45d Unix domain socket classes in place of FIFOs.
  • Fixed bug where statfs() improperly reported fs size and usage.
  • Fix deadlock issue while tiering files.
  • Overhauled tiering algorithm to better fill high priority tiers.
  • Fixed reporting in statfs() and df.
  • Made file creation and opening more reliable.
  • Tiering triggered by being over quota in release() now happens asynchronously.
  • Accounts for files being opened by more than one process while preventing movement across tiers.
  • Fix abort on unmount from rocksdb being opened in main thread by deferring opening to fuse init method.

v1.1.6

3 years ago

autotier 1.1.6-1

  • On file conflict, only one file is renamed now, and a bug was fixed where the conflicting file's path was wrong in the database.

Autotier 1.1.6-2

  • First build with auto-packaging

Autotier 1.1.6-3

  • Add postinst script to add autotier group

v1.1.5

3 years ago

autotier 1.1.5

  • No longer reports 'cannot open directory' if missing from one of the tiers.
  • On file name conflict while moving files between tiers, both files are renamed with '.autotier_conflict' and '.autotier_conflict_orig' appended.
  • Added autotier-init-dirs script to clone directories only across each tier for if data is already present before setting up autotier.
  • Ensures that every call to open() contains a file mode, fixing a fatal bug in Ubuntu.

v1.1.4

3 years ago

autotier 1.1.4

  • Tiering of files is automatically triggered if tier is over quota after writing to a file. To disable, added config option Strict Period = true.
  • Added disabling of tier period by setting to a negative number so a cron job for autotier oneshot can be used to trigger tiering.
  • autotier config now dumps configuration values from memory of mounted filesystem rather than just printing contents of file.
  • Implemented parallel moving of files while tiering with one thread per tier for maximum concurrency.
  • Fix bug where readdir was still showing backend autotier files.
  • Tiering of files is automatically triggered if tier is out of space, and write() call blocks until tiering is done and the write is tried again.
  • Added Copy Buffer Size configration parameter to specify block size while moving files between tiers.

v1.1.3

3 years ago

autotier 1.1.3

  • Create autotier group during install.
  • Set ownership of run path and pipes to root:autotier to allow for members of autotier group to execute CLI commands.
  • Report mountpoint in autotier status.

autotier 1.1.2

  • Fix bug where CLI tool does not exit after catching error.

v1.1.1

3 years ago

autotier 1.1.1

  • Fix bug while renaming directories in Ubuntu.

v1.1.0

3 years ago

autotier 1.1.0

  • Split binaries into autotierfs and autotier, the first being the filesystem and the second being the CLI tool.

v1.0.4

3 years ago

autotier 1.0.4

  • Fix renaming directories containing files.
  • Pass std::string instead of const char * to Metadata::update().
  • Add global mutex lock to guard writing to database.
  • Optional old_key argument for Metadata::update() to delete old DB entry atomically.
  • Break out fuse methods into separate files and put in fuse_ops namespace.
  • Use std::execution::par for sorting vector of files.

autotier 1.0.3

  • Overhaul packaging using Docker.
  • Rewrite popularity calculation method to be period length agnostic.
  • Implement unordered map to store paths to open files, removing lsof dependency.

v1.0.2

3 years ago

autotier 1.0.2-beta1

  • Store fuse "global" data in fuse_context->private_data.
  • Fix crash from AdHoc worker thread calling exit() on errors.

v1.0.1-beta

3 years ago

autotier 1.0.1-beta1

  • Use file handles for everything by setting nullpath_ok in fuse config.
  • Rewrite readdir and implement opendir and releasedir to use fi->fh.
  • Keep track of live tier usage based on file size inside tier.
  • Fix bug where tier worker thread doesn't exit on unmount.
  • Fix bug where ownership and permissions aren't properly copied.
  • Implement extended attribute methods.