[ https://issues.apache.org/jira/browse/HDFS-14162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16726395#comment-16726395 ]
Erik Krogen commented on HDFS-14162: ------------------------------------ I attached a quick-and-dirty demonstration patch ([^HDFS-14162-HDFS-12943.wip0.patch]) showing how we can solve this by making {{NameNodeHAProxyFactory}} aware of {{AlignmentContext}}, and making {{ObserverReadProxyProvider}} keep track of a {{ClientProtocol}} proxy in addition to its main proxy. In the normal case of ORPP with {{ClientProtocol}}, the same protocol object is used; in the case of a different protocol (e.g. {{NameNodeProtocol}}), it instantiates an extra client proxy to use for {{getHAServiceState()}}. It's not the cleanest way of solving the problem -- I don't really like needing to directly instantiate the {{ClientProtocol}} instead of being able to use the factory -- but it works. I also had to modify the test slightly -- the way the DataNodes were created didn't seem to work properly. > Balancer should work with ObserverNode > -------------------------------------- > > Key: HDFS-14162 > URL: https://issues.apache.org/jira/browse/HDFS-14162 > Project: Hadoop HDFS > Issue Type: Sub-task > Reporter: Konstantin Shvachko > Priority: Major > Attachments: HDFS-14162-HDFS-12943.wip0.patch, > testBalancerWithObserver.patch > > > Balancer provides a substantial RPC load on NameNode. It would be good to > divert Balancer RPCs {{getBlocks()}}, etc. to ObserverNode. The main problem > is that Balancer uses {{NamenodeProtocol}}, while ORPP currently supports > only {{ClientProtocol}}. -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org