[ https://issues.apache.org/jira/browse/HADOOP-13144?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16987465#comment-16987465 ]
Íñigo Goiri commented on HADOOP-13144: -------------------------------------- I forgot to add that one, I should update the patch but... here it is: {code} /** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.hadoop.hdfs.server.federation.router; import java.net.InetSocketAddress; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io.retry.RetryPolicy; import org.apache.hadoop.ipc.Client.ConnectionId; import org.apache.hadoop.security.UserGroupInformation; /** * Extends the {@link ConnectionId} to support multiple connections from the * {@link Router} to the {@link org.apache.hadoop.hdfs.server.namenode.NameNode}. */ public class FederationConnectionId extends ConnectionId { private int connectionIndex; FederationConnectionId(InetSocketAddress address, Class<?> protocol, UserGroupInformation ticket, int rpcTimeout, RetryPolicy connectionRetryPolicy, Configuration conf, int index) { super(address, protocol, ticket, rpcTimeout, connectionRetryPolicy, conf); this.connectionIndex = index; } @Override public int hashCode() { int hashCode = super.hashCode(); return PRIME * hashCode + connectionIndex; } @Override public boolean equals(Object obj) { if (!super.equals(obj)) { return false; } if (obj instanceof FederationConnectionId) { FederationConnectionId other = (FederationConnectionId)obj; if (this.connectionIndex == other.connectionIndex) { return true; } } return false; } } {code} > Enhancing IPC client throughput via multiple connections per user > ----------------------------------------------------------------- > > Key: HADOOP-13144 > URL: https://issues.apache.org/jira/browse/HADOOP-13144 > Project: Hadoop Common > Issue Type: Improvement > Components: ipc > Reporter: Jason Kace > Assignee: Íñigo Goiri > Priority: Minor > Attachments: HADOOP-13144-performance.patch, HADOOP-13144.000.patch, > HADOOP-13144.001.patch, HADOOP-13144.002.patch, HADOOP-13144.003.patch > > > The generic IPC client ({{org.apache.hadoop.ipc.Client}}) utilizes a single > connection thread for each {{ConnectionId}}. The {{ConnectionId}} is unique > to the connection's remote address, ticket and protocol. Each ConnectionId > is 1:1 mapped to a connection thread by the client via a map cache. > The result is to serialize all IPC read/write activity through a single > thread for a each user/ticket + address. If a single user makes repeated > calls (1k-100k/sec) to the same destination, the IPC client becomes a > bottleneck. -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org