[
https://issues.apache.org/jira/browse/HDFS-16978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17712526#comment-17712526
]
ASF GitHub Bot commented on HDFS-16978:
---------------------------------------
goiri commented on code in PR #5554:
URL: https://github.com/apache/hadoop/pull/5554#discussion_r1167244069
##########
hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java:
##########
@@ -511,90 +687,45 @@ private boolean refreshRouterCache() throws IOException {
* @throws IOException If it cannot add the mount point.
*/
public boolean addMount(String[] parameters, int i) throws IOException {
- // Mandatory parameters
- String mount = parameters[i++];
- String[] nss = parameters[i++].split(",");
- String dest = parameters[i++];
-
- // Optional parameters
- boolean readOnly = false;
- boolean faultTolerant = false;
- String owner = null;
- String group = null;
- FsPermission mode = null;
- DestinationOrder order = DestinationOrder.HASH;
- while (i < parameters.length) {
- if (parameters[i].equals("-readonly")) {
- readOnly = true;
- } else if (parameters[i].equals("-faulttolerant")) {
- faultTolerant = true;
- } else if (parameters[i].equals("-order")) {
- i++;
- try {
- order = DestinationOrder.valueOf(parameters[i]);
- } catch(Exception e) {
- System.err.println("Cannot parse order: " + parameters[i]);
- }
- } else if (parameters[i].equals("-owner")) {
- i++;
- owner = parameters[i];
- } else if (parameters[i].equals("-group")) {
- i++;
- group = parameters[i];
- } else if (parameters[i].equals("-mode")) {
- i++;
- short modeValue = Short.parseShort(parameters[i], 8);
- mode = new FsPermission(modeValue);
- } else {
- printUsage("-add");
- return false;
- }
-
- i++;
+ AddMountAttributes addMountAttributes = getAddMountAttributes(parameters,
i, false);
+ if (addMountAttributes == null) {
+ return false;
}
-
- return addMount(mount, nss, dest, readOnly, faultTolerant, order,
- new ACLEntity(owner, group, mode));
+ return addMount(addMountAttributes);
}
/**
* Add a mount table entry or update if it exists.
*
- * @param mount Mount point.
- * @param nss Namespaces where this is mounted to.
- * @param dest Destination path.
- * @param readonly If the mount point is read only.
- * @param order Order of the destination locations.
- * @param aclInfo the ACL info for mount point.
+ * @param addMountAttributes attributes associated with add mount point
request.
* @return If the mount point was added.
* @throws IOException Error adding the mount point.
*/
- public boolean addMount(String mount, String[] nss, String dest,
- boolean readonly, boolean faultTolerant, DestinationOrder order,
- ACLEntity aclInfo)
+ public boolean addMount(AddMountAttributes addMountAttributes)
throws IOException {
- mount = normalizeFileSystemPath(mount);
+ String mount = normalizeFileSystemPath(addMountAttributes.getMount());
// Get the existing entry
MountTableManager mountTable = client.getMountTableManager();
MountTable existingEntry = getMountEntry(mount, mountTable);
if (existingEntry == null) {
// Create and add the entry if it doesn't exist
Map<String, String> destMap = new LinkedHashMap<>();
- for (String ns : nss) {
- destMap.put(ns, dest);
+ for (String ns : addMountAttributes.getNss()) {
+ destMap.put(ns, addMountAttributes.getDest());
}
MountTable newEntry = MountTable.newInstance(mount, destMap);
- if (readonly) {
+ if (addMountAttributes.isReadonly()) {
newEntry.setReadOnly(true);
Review Comment:
Couldn't you do this as part of AddMountAttributes?
Like getMountTableEntry()?
> RBF: New Router admin command to support bulk add of mount points
> -----------------------------------------------------------------
>
> Key: HDFS-16978
> URL: https://issues.apache.org/jira/browse/HDFS-16978
> Project: Hadoop HDFS
> Issue Type: Improvement
> Reporter: Viraj Jasani
> Assignee: Viraj Jasani
> Priority: Minor
> Labels: pull-request-available
>
> All state store implementations support adding multiple state store records
> using single putAll() implementation. We should provide new router admin API
> to support bulk addition of mount table entries that can utilize this build
> add implementation at state store level.
> For more than one mount point to be added, the goal of bulk addition should be
> # To reduce frequent router calls
> # To avoid frequent state store cache refreshers with each single mount
> point addition
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]