[ https://issues.apache.org/jira/browse/HDFS-16978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17714220#comment-17714220 ]
ASF GitHub Bot commented on HDFS-16978: --------------------------------------- virajjasani commented on code in PR #5554: URL: https://github.com/apache/hadoop/pull/5554#discussion_r1171638597 ########## hadoop-hdfs-project/hadoop-hdfs-rbf/src/main/java/org/apache/hadoop/hdfs/tools/federation/RouterAdmin.java: ########## @@ -462,6 +481,136 @@ public int run(String[] argv) throws Exception { return exitCode; } + /** + * Add all mount point entries provided in the request. + * + * @param parameters Parameters for the mount points. + * @param i Current index on the parameters array. + * @return True if adding all mount points was successful, False otherwise. + * @throws IOException If the RPC call to add the mount points fail. + */ + private boolean addAllMount(String[] parameters, int i) throws IOException { + List<AddMountAttributes> addMountAttributesList = new ArrayList<>(); + while (i < parameters.length) { + AddMountAttributes addMountAttributes = getAddMountAttributes(parameters, i, true); + if (addMountAttributes == null) { + return false; + } + i = addMountAttributes.getParamIndex(); + addMountAttributesList.add(addMountAttributes); + } + List<MountTable> addEntries = getMountTablesFromAddAllAttributes(addMountAttributesList); + AddMountTableEntriesRequest request = + AddMountTableEntriesRequest.newInstance(addEntries); + MountTableManager mountTable = client.getMountTableManager(); + AddMountTableEntriesResponse addResponse = + mountTable.addMountTableEntries(request); + boolean added = addResponse.getStatus(); + if (!added) { + System.err.println("Cannot add some or all mount points"); + } + return added; + } + + /** + * From the given params, form and retrieve AddMountAttributes object. This object is meant + * to be used while adding single or multiple mount points with their own specific attributes. + * + * @param parameters Parameters for the mount point. + * @param i Current index on the parameters array. + * @param isMultipleAdd True if multiple mount points are to be added, False if single mount + * point is to be added. + * @return AddMountAttributes object. + */ + private AddMountAttributes getAddMountAttributes(String[] parameters, int i, Review Comment: done with the latest commit > RBF: 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: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org