File Handle Hierarchy Extension Proposal (July 2019)

File Handle Hierarchy Extension Proposal (July 2019)

Motivation and Reasoning

  • PLFM-5604 - Getting issue details... STATUS
    - Introduction of Google Cloud external storage locations makes additive changes necessary

    • Need to add a new type - GoogleCloudFileHandle

  • File & File Handle - We can take this opportunity to clear up confusion with this API

    • Fix up cruft and simplify design decisions

Changes

I am proposing the following changes:

  • Rename S3FileHandleInterface to CloudProviderFileHandleInterface

    • Still defines bucket and key

    • Add fields previewId and isPreview

  • Add class GoogleCloudFileHandle (implements CloudProviderFileHandleInterface)

  • Remove PreviewFileHandle

    • PreviewFileHandles are just S3FileHandles or GoogleCloudFileHandles where isPreview is true

  • Remove HasPreviewId

    • The information necessary for locating and identifying previews moves to the CloudProviderFileHandleInterface class

    • While ExternalFileHandle and ProxyFileHandle can have previews under the old tree, there are 0 previews of external files in production (as of 2019-07-22)

Current Hierarchy

 

Proposed Hierarchy

Additional Considerations

We can rename ExternalFileHandleInterface if we want to. One suggestion is OtherFileHandleInterface, since it seems to be a catch all for everything that doesn't fall under the other category.

Other naming suggestions are welcome.