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.