[
https://issues.apache.org/jira/browse/HDFS-8345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14545531#comment-14545531
]
Sean Busbey commented on HDFS-8345:
-----------------------------------
It would be nice if the returned values from getAllStoragePolicies were usable
in a setStoragePolicy method.
Could we update the FileSystem specification documents?
{code}
+ * Set the storage policy for a given file or directory.
+ *
+ * @param path file or directory path.
+ * @param policyName the name of the target storage policy. The list
+ * of supported Storage policies can be retrieved
+ * via {@link #getStoragePolicyNames}.
+ */
+ public void setStoragePolicy(final Path path, final String policyName)
+ throws IOException {
{code}
Note that it's an optional operation and some implementations will throw
UnsupportOperationException.
{code}
+ /**
+ * Retrieve all the storage policies supported by this file system.
+ *
+ * @return all storage policies supported by this filesystem.
+ * @throws IOException
+ */
+ public List<? extends BlockStoragePolicySpi> getAllStoragePolicies()
+ throws IOException {
{code}
Note that it's an optional operation and some implementations will throw
UnsupportOperationException.
{code}
+ * @param policyName the name of the target storage policy. The list
+ * of supported Storage policies can be retrieved
+ * via {@link #getStoragePolicyNames}.
+ */
{code}
The method "getStoragePolicyNames" didn't make it into the patch. Update to
point at new method?
{code}
+ public List<? extends BlockStoragePolicySpi> getAllStoragePolicies()
+ throws IOException {
{code}
Should this return type be Collection<? extends BlockStoragePolicySpi> ? does
the ordering matter? Maybe it should be a Set?
{code}
+public interface BlockStoragePolicySpi {
+
{code}
Could we switch to calling the interface BlockStoragePolicy and make the one in
HDFS "DFSBlockStoragePolicy" or the like?
"Spi" is a term of art that's going to be less accessible for folks.
{code}
+ StorageType[] getStorageTypes();
{code}
Should the various return types in BlockStoragePolicySpi be returning List or
Set or SortedSet?
{code}
return fs.createNonRecursive(f, permission, flags, bufferSize,
replication, blockSize,
- progress);
+ progress);
}
{code}
nit: this whitespace fix doesn't appear related to the rest of the changes in
the file (but I'm not sure what Hadoop's norm is for 'related')
> Storage policy APIs must be exposed via the FileSystem interface
> ----------------------------------------------------------------
>
> Key: HDFS-8345
> URL: https://issues.apache.org/jira/browse/HDFS-8345
> Project: Hadoop HDFS
> Issue Type: Bug
> Components: hdfs-client
> Affects Versions: 2.7.0
> Reporter: Arpit Agarwal
> Assignee: Arpit Agarwal
> Labels: BB2015-05-TBR
> Attachments: HDFS-8345.01.patch, HDFS-8345.02.patch,
> HDFS-8345.03.patch, HDFS-8345.04.patch, HDFS-8345.05.patch
>
>
> The storage policy APIs are not exposed via FileSystem. Since
> DistributedFileSystem is tagged as LimitedPrivate we should expose the APIs
> through FileSystem for use by other applications.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)