Skip to content

Configure root path in Catalog or FileIO? #488

@fqaiser94

Description

@fqaiser94

There was an unresolved discussion about whether we should:

  • Allow users to configure a path as a root of the catalog and create tables underneath that (see earlier commits in Add memory catalog implementation #475 to see an implementation of this idea) or
    • Pros:
    • Cons:
      • Adds another parameter for initializing MemoryCatalog
  • Users should configure FileIO with a root path (this is the approach currently implemented in iceberg-rust code)
    • Pros:
      • Consolidates path-related concerns in FileIO
    • Cons:
      • I think users may have to be aware of this implementation detail because when they send a CreateTableRequest, the location should not provide an absolute path, but rather a "relative" path from the root location assumed by FileIO (that or we need to add some logic to recognize relative and absolute file paths in the FileIO implementation). I'll also add that Iceberg community has so far not been super receptive to the idea of relative paths.
      • None of the Java FileIO implementations I looked at (S3FileIO, GcsFileIO) allow configuring a root path. I suspect this may affect interoperability with the Java ecosystem, not 100% sure though.

Overall, I have concerns about option 2 (which is what is currently implemented) and am currently in favour of changing the code to follow option 1: allow users to configure a path as a root of the catalog and create tables underneath that.

Thoughts?

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