Page MenuHomePhabricator

Update storage engines in Files to a modern multi-service configuration
Open, LowPublic


Storage engines should be moved to a "list of services" configuration like cluster.databases, cluster.mailers, etc. This would support:

  • Reordering storage engines.
  • Making engines read-only (for migrating away from an older engine).
  • Fallback on write failure.
  • Support for writing multiple copies of a file to different engines for HA?
    • Then, fallback on read failure.

If we allow multiple copies of a file's data, File should change to point into some kind of DataRef table by hash. This is a more involved change than the other changes.