Skip to content

Proposal: Add ObjectSpaceKind to AccessorMetadata #587

@damooo

Description

@damooo

Service backends fundamentally vary in organizing their object space.

Backends like fs, solid has Hierarchical object space. Where as S3, and major cloud object stores have Flat object space. This different leads to different semantics over operations on objects in them, like following:

  • / has special meaning in hierarchical space, that represents an hierarchical level. where as in flat space it doesn't have any semantics.
  • One can create a/b/c with out creating a/, a/b/ in flat space, where as in hierarchical space we cannot. (Thus current implementation of fs service creates a/, a/b/ `implicitly.)
  • One can have a/, a paths in flat space, where as that is not the case in hierarchical space.
  • One cannot delete a/b/ with out deleting a/b/c in case of hierarchical space. Where as in flat space, one can.
  • etc.

These subtle differences diverges expected layout. For applications that rely on predictable layouts, it creates serious errors.

Hence proposal is to have a object_space_kind property with an enum in AccessorMetadata. So that applications can customize control flow based on that if required.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions