File Handle Hierarchy Extension Proposal (July 2019)
Motivation and Reasoning
-
-
PLFM-5604Getting 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
- PreviewFileHandles are just S3FileHandles or GoogleCloudFileHandles where isPreview is
- 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.