Document toolboxDocument toolbox

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
  • /wiki/spaces/SYNPY/pages/819855621 - 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.