[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16570559#comment-16570559 ] Chao Sun commented on HDFS-12976: - [~xkrogen]: to my understanding, there's 1-1 mapping between {{ObserverReadProxyProvider}}, {{DFSClient}} and {{FileSystem}}, so I'm not sure how the same factory could be reused. But, we could add a check for these lines as a safe-guard. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Fix For: HDFS-12943 > > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976-HDFS-12943.007.patch, HDFS-12976-HDFS-12943.008.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16568861#comment-16568861 ] Erik Krogen commented on HDFS-12976: Hey [~csun], one follow-up question about these two lines: {code} alignmentContext = new ClientGSIContext(); ((ClientHAProxyFactory) factory).setAlignmentContext(alignmentContext); {code} Is there any danger of overwriting another proxy's AlignmentContext with these lines? Will the same factory be re-used across multiple clients? I am wondering if it would be more appropriate to check if the factory already has an AlignmentContext, and if so re-use that one instead of creating a new one. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Fix For: HDFS-12943 > > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976-HDFS-12943.007.patch, HDFS-12976-HDFS-12943.008.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16539383#comment-16539383 ] Konstantin Shvachko commented on HDFS-12976: +1 this looks good. TestBlockReaderLocal is failing on trunk as well, which tracked in HDFS-13662. The other two passed locally. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976-HDFS-12943.007.patch, HDFS-12976-HDFS-12943.008.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16530552#comment-16530552 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 13s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 4 new or modified test files. {color} | || || || || {color:brown} HDFS-12943 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 6m 18s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 27m 3s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 28m 11s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 23s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 15m 19s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 29s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 31s{color} | {color:green} HDFS-12943 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 18s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 29m 8s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 29m 8s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 26s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 8m 55s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 17m 22s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 13m 55s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 27s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 9m 37s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 2m 47s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red}103m 4s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 48s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}280m 55s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hdfs.TestDFSShell | | | hadoop.hdfs.client.impl.TestBlockReaderLocal | | | hadoop.hdfs.security.TestDelegationTokenForProxyUser | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:abb62dd | | JIRA Issue | HDFS-12976 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12929989/HDFS-12976-HDFS-12943.008.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 90894359ec18 3.13.0-139-generic #188-Ubuntu SMP Tue Jan 9 14:43:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | |
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16530277#comment-16530277 ] Chao Sun commented on HDFS-12976: - [~shv]: thanks for the review. I removed the {{performFailover}} logic from the patch as currently the observer failover logic is handled inside the {{invoke}} method, while the active failover is delegated to the {{performFailover}} logic in the parent class. This retry logic is not complete though - it will be handled in a follow-up JIRA. Submitted patch v008. Let me know what you think. Thanks. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976-HDFS-12943.007.patch, HDFS-12976-HDFS-12943.008.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16528331#comment-16528331 ] Konstantin Shvachko commented on HDFS-12976: Hey Chao, you are right there is no need to check {{isObserver}}, because {{NameNodeHAContext.allowStaleReads()}} does that already. Could you please take a look at " Inconsistent synchronization" warning from the build. The failed tests passing locally. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976-HDFS-12943.007.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16527352#comment-16527352 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 32s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 4 new or modified test files. {color} | || || || || {color:brown} HDFS-12943 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 1m 44s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 27m 11s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 28m 58s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 23s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 4m 22s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 15m 57s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 24s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 30s{color} | {color:green} HDFS-12943 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 19s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 32s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 28m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 28m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 23s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 12s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 11m 0s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 54s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs-client generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 31s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 9m 17s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 43s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 96m 46s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 45s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}246m 52s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-hdfs-project/hadoop-hdfs-client | | | Inconsistent synchronization of org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.currentProxyIndex; locked 75% of time Unsynchronized access at ObserverReadProxyProvider.java:75% of time Unsynchronized access at ObserverReadProxyProvider.java:[line 175] | | Failed junit tests | hadoop.hdfs.server.namenode.TestNameNodeMetadataConsistency | | | hadoop.hdfs.server.blockmanagement.TestBlockTokenWithDFSStriped | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:abb62dd
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16527146#comment-16527146 ] Chao Sun commented on HDFS-12976: - My bad [~shv]: when merging your change to my local branch I forgot to remove my existing changes on {{ConfiguredFailoverProxyProvider}}. Agree with both you and [~xkrogen] that a separate method in {{ClientProtocol}} may be needed and it should be safe to do so, which I think can be tackled in a separate JIRA? Attaching a clean patch. One question though: why we need to add {{isObserver}} check in the {{StandbyState}} - seems {{context.allowStaleReads}} is enough (all tests passed w/o the {{isObserver}} check). > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976-HDFS-12943.007.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16527108#comment-16527108 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 7s{color} | {color:red} HDFS-12976 does not apply to HDFS-12943. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HDFS-12976 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12929659/HDFS-12976-HDFS-12943.006.patch | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/24522/console | | Powered by | Apache Yetus 0.8.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16527104#comment-16527104 ] Konstantin Shvachko commented on HDFS-12976: Here is another variant v006, which actually passes the {{TestObserverNode}}. [~csun] I don't think the changes in {{ConfiguredFailoverProxyProvider}} you restored in v005 are needed anymore. The whole point was to isolate that logic inside {{ObserverReadProxyProvider}}. In my patch I used a very hacky approach to verify whether the node is an Observer. See comments in the patch. This is to make it work only. We will need to introduce a new ClientProtocol call, which checks or returns the state of the service and does not require administration privileges. I think admin status is not required for reading the state, similar to SafeMode, which allows GET for anybody. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976-HDFS-12943.006.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16525875#comment-16525875 ] Erik Krogen commented on HDFS-12976: I think to pursue an approach like [~shv]'s, we need to define some new protocol, e.g. {{HAStatusProtocol}}, which {{HAServiceProtocol}} and {{ClientProtocol}} (and others?) both extend, and has just one method like {{getServiceState()}}. By having a separate protocol we can define the ACLs differently, and set up inheritance for proper casting. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16525770#comment-16525770 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 11s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 4 new or modified test files. {color} | || || || || {color:brown} HDFS-12943 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 5m 30s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 27m 15s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 29m 18s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 14s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 14m 49s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 33s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 31s{color} | {color:green} HDFS-12943 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 18s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 34s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 29m 17s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 29m 17s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 23s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 32s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 11m 40s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 2m 5s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs-client generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 35s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 9m 5s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 44s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 84m 21s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 1m 2s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}240m 2s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-hdfs-project/hadoop-hdfs-client | | | Inconsistent synchronization of org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.currentProxyIndex; locked 60% of time Unsynchronized access at ConfiguredFailoverProxyProvider.java:60% of time Unsynchronized access at ConfiguredFailoverProxyProvider.java:[line 181] | | Failed junit tests | hadoop.hdfs.server.namenode.ha.TestObserverNode | | | hadoop.hdfs.server.namenode.TestReencryptionWithKMS | | | hadoop.hdfs.TestDFSInotifyEventInputStreamKerberized | \\ \\ || Subsystem || Report/Notes || | Docker |
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16525574#comment-16525574 ] Chao Sun commented on HDFS-12976: - Thanks for the comments [~xkrogen] and [~shv]! [~xkrogen]: yes we can potentially use {{stateId}} to achieve the same purpose - totally agree with you on the concern about adding another flag which potentially is only used for talking to NameNode. [~shv]: I like the idea of {{T extends HAServiceProtocol}}, however it may need more change as {{NameNodeProxiesClient#createProxyWithClientProtocol}} only create the {{T}} with {{ClientProtocol}}. Otherwise you may get exception like: {code} Caused by: java.lang.ClassCastException: org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB cannot be cast to org.apache.hadoop.ha.HAServiceProtocol {code} Sorry I totally forgot about the alignment changes. Thanks for doing that. Attached the v004 patch after rebasing to the latest HDFS-12943. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976-HDFS-12943.005.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16524459#comment-16524459 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 0s{color} | {color:blue} Docker mode activated. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 6s{color} | {color:red} HDFS-12976 does not apply to HDFS-12943. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HDFS-12976 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12929305/HDFS-12976-HDFS-12943.004.patch | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/24503/console | | Powered by | Apache Yetus 0.8.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16524440#comment-16524440 ] Konstantin Shvachko commented on HDFS-12976: Hey [~csun]. Took me some time, sorry. So when saying that {{ConfiguredFailoverProxyProvider}} doesn't have notion of NameNode in HDFS-13687, I meant that the protocol {{}} is completely obscured from it. The proxy does not know that it is talking to NameNodes and therefore cannot call {{getServiceStatus()}} or any other NN RPCs. So we should probably add some interfaces to the type, so that we could actually make the calls. I played a bit with your patch. Attaching v. 004 as illustration only, sure enough it needs more work. # I added {{}} so that we could call {{getServiceStatus()}} on existing proxies. # Added {{alignmentContext}} it is needed for passing transaction ids. # Probably need to write a new implementation of {{createProxyWithAlignmentContext()}} to avoid nasty casting, etc. I was also thinking that {{ObserverReadProxyProvider}} now heavily relies on {{ConfiguredFailoverProxyProvider}}. But there are use cases for {{IPFailoverProxyProvider}} as well. Would be nice if we could combine them. But let's first finish this. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976-HDFS-12943.004.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16523422#comment-16523422 ] Erik Krogen commented on HDFS-12976: Would the flag be something like {{allowObserverReads}}? I am reluctant to add more logic specific to this feature into the {{RpcRequestHeaderProto}} since that should be as general as possible, even more so than the FailoverProxyProvider. But I like the direction of allowing the server to make the ultimate decision about whether it can service the request. Maybe we could indicate disallowing such reads via a special value (e.g. negative) for the {{stateId}}? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16522689#comment-16522689 ] Chao Sun commented on HDFS-12976: - Another thought I'm thinking is to add a flag in {{RpcRequestHeaderProto}} and then check this flag on the NameNode server side, using {{AlignmentContext}}. With this approach, no change on {{ConfiguredFailoverProxyProvider}} will be required. Let me know your opinion on this. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16519852#comment-16519852 ] Chao Sun commented on HDFS-12976: - Good point [~vagarychen]! Will add that check. [~shv] - back to this JIRA, I'm thinking for now just to keep the {{ConfiguredFailoverProxyProvider}} intact and fix the issue in HDFS-13687. Is that OK? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16516480#comment-16516480 ] Chen Liang commented on HDFS-12976: --- Hey [~csun], I just noticed one more thing: although {{ReadOnly}} annotation has {{activeOnly}} method, and it is already being used by {{getQuotaUsage}}. But it seems nowhere is checking this. Should we add this check? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16514962#comment-16514962 ] Chao Sun commented on HDFS-12976: - [~shv] Yes, I created HDFS-13687 to fix this. Could you take a look? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16514920#comment-16514920 ] Konstantin Shvachko commented on HDFS-12976: ??{{ConfiguredFailoverProxyProvider}} and received a read request, then the proxy may forward this request to a observer node, right??? As we talked yesterday, the behavior of {{ConfiguredFailoverProxyProvider}} should remain unchanged, that is it will talk only to Active NN. {{ObserverReadProxyProvider}} will be used to read from ObserverNode. The only new thing for {{ConfiguredFailoverProxyProvider}} is that during fail-over it should connect to Active NN, and avoid both Standby and Observer nodes. We should create a new jira to fix this in trunk. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16514067#comment-16514067 ] Chao Sun commented on HDFS-12976: - [~xkrogen]: let me know if I misunderstood anything - if someone is using {{ConfiguredFailoverProxyProvider}} and received a read request, then the proxy may forward this request to a observer node, right? the observer node will then happily process this request without throwing any exception. This doesn't look like the right behavior as in future we may add some client-side flag to control whether read requests should go to observer or not. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16514055#comment-16514055 ] Erik Krogen commented on HDFS-12976: Hey [~csun], I don't see why the changes to {{ConfiguredFailoverProxyProvider#performFailover()}} are necessary. The intent is that you increment the proxy index, then try it, and if the proxy is in the wrong state it will throw an exception and {{performFailover()}} will be called again. This process should work fine without the {{isObserverState}} check. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16513625#comment-16513625 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 34s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} HDFS-12943 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 2m 10s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 30m 47s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 30m 7s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 22s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 27s{color} | {color:green} HDFS-12943 passed {color} | | {color:red}-1{color} | {color:red} shadedclient {color} | {color:red} 5m 58s{color} | {color:red} branch has errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 39s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 34s{color} | {color:green} HDFS-12943 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 19s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 45s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 29m 4s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 29m 4s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 18s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 13s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:red}-1{color} | {color:red} shadedclient {color} | {color:red} 1m 54s{color} | {color:red} patch has errors when building and testing our client artifacts. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 54s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs-client generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 17s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 9m 31s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 41s{color} | {color:green} hadoop-hdfs-client in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 99m 23s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 42s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}236m 50s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-hdfs-project/hadoop-hdfs-client | | | Inconsistent synchronization of org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider.currentProxyIndex; locked 75% of time Unsynchronized access at ConfiguredFailoverProxyProvider.java:75% of time Unsynchronized access at ConfiguredFailoverProxyProvider.java:[line 181] | | Failed junit tests | hadoop.hdfs.TestDFSStripedOutputStreamWithFailureWithRandomECPolicy | | | hadoop.hdfs.server.namenode.TestReencryptionWithKMS | | | hadoop.hdfs.server.namenode.TestReencryption | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16513373#comment-16513373 ] Chao Sun commented on HDFS-12976: - Adopted [~shv]'s suggestion and attached patch v3. The {{ConfiguredFailoverProxyProvider}} is mostly the same as before but it does extra check for observer when doing {{performFailover}}. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976-HDFS-12943.003.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16513349#comment-16513349 ] Chao Sun commented on HDFS-12976: - Yes that's the issue. However, if we keep the logic in {{ConfiguredFailoverProxyProvider}} the same, read requests may go to observer which may not be the desired behavior? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16513218#comment-16513218 ] Konstantin Shvachko commented on HDFS-12976: Hey [~csun] looked at the test failures. I think the problem is that you added a call {{proto.getServiceStatus()}} to the {{ConfiguredFailoverProxyProvider.initProxies()}}. It fails with old tests, which use fake addresses, like {{"machine1.foo.bar:8020"}} while instantiating the proxy. I think the best way is to keep {{ConfiguredFailoverProxyProvider}} logic unchanged, and override {{initProxies()}} in {{ObserverReadProxyProvider}} to do the initial filtering. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16511612#comment-16511612 ] Chao Sun commented on HDFS-12976: - Hmm.. there are some test failures that are related. Will fix and submit a new patch. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16511585#comment-16511585 ] genericqa commented on HDFS-12976: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 33s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:green}+1{color} | {color:green} test4tests {color} | {color:green} 0m 0s{color} | {color:green} The patch appears to include 3 new or modified test files. {color} | || || || || {color:brown} HDFS-12943 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 1m 55s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 27m 3s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 30m 40s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 23s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 17s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 14m 48s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 29s{color} | {color:green} HDFS-12943 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 29s{color} | {color:green} HDFS-12943 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 18s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 28m 34s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 28m 34s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 24s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 3m 12s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 11m 8s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 48s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 31s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:green}+1{color} | {color:green} unit {color} | {color:green} 9m 48s{color} | {color:green} hadoop-common in the patch passed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 25s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 99m 31s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 45s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}251m 1s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hdfs.server.namenode.ha.TestRequestHedgingProxyProvider | | | hadoop.hdfs.TestDFSClientFailover | | | hadoop.hdfs.server.namenode.ha.TestInitializeSharedEdits | | | hadoop.hdfs.server.namenode.ha.TestDelegationTokensWithHA | | | hadoop.hdfs.server.namenode.TestNameNodeMXBean | | | hadoop.hdfs.tools.TestDFSAdminWithHA | | | hadoop.hdfs.TestDFSUtil | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:abb62dd | | JIRA Issue | HDFS-12976 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12927586/HDFS-12976-HDFS-12943.002.patch | | Optional Tests | asflicense compile javac javadoc
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16511293#comment-16511293 ] Chao Sun commented on HDFS-12976: - Oops, my bad. Thanks [~xkrogen]! > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16511253#comment-16511253 ] Erik Krogen commented on HDFS-12976: [~csun], you need to put the JIRA into patch available state for Jenkins to run. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16510679#comment-16510679 ] Chao Sun commented on HDFS-12976: - Thanks [~shv]. Addressed the issues (should have enabled the parameterized class check in my IDE..) and uploaded patch v2. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976-HDFS-12943.002.patch, > HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16508739#comment-16508739 ] Konstantin Shvachko commented on HDFS-12976: Hey Chao, there is still non-parametrized use of generics in {{ObserverReadProxyProvider.getLastProxy()}} and quite a few in {{TestObserverNode}}. Also two unused imports in {{ObserverReadProxyProvider}}. We also need to get run through Jenkins. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16508546#comment-16508546 ] Chao Sun commented on HDFS-12976: - Merged trunk into HDFS-12943 and uploaded patch v1. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, > HDFS-12976-HDFS-12943.001.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16508426#comment-16508426 ] Chao Sun commented on HDFS-12976: - Thanks [~xkrogen], [~vagarychen] and [~shv], for the very helpful comments. [~xkrogen]: I think the {{ThreadLocal}} is just a minor optimization and I don't have strong preference over either. Regarding the second comment, yes a slow node could increase the startup/failover time when it initializes the proxy list, but won't this happen anyway with the old approach where the slowness would move to the normal RPC call and affect the client? [~vagarychen] besides what Erik pointed out, we can potentially add more logic to {{invoke}} methods, where it can check the {{LastSeenId}} of both ANN and SBN/Observer, before forwarding the request (although I'm not sure if the {{LastSeenId}} is accessible from the proxy class). It doesn't seem like the current approach is in conflict with what you intend to do. Will address the comments from Konstantin and let's move discussions to the follow up JIRAs. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16508344#comment-16508344 ] Chen Liang commented on HDFS-12976: --- Thanks for pointing it out [~xkrogen]. I was not reading into ReadOnly interface, I guess this will do. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16508270#comment-16508270 ] Erik Krogen commented on HDFS-12976: {quote} The thing is that, the current patch looks at ReadOnly to determine if a call should go to observer, meaning if a method is annotated with ReadOnly, it always go to Observer, is this the case? Because there may be situations where we want to make a read call to active, which becomes impossible. I guess a more ideal way would probably be having new annotations for observer operation and active options, which is also for better readability. {quote} The ReadOnly annotation added in HDFS-13578 supports a flag {{activeOnly}} to indicate that, although it is a read operation, it should only be served by the active. Does this meet your requirement or are you saying there should be a way to dynamically decide? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16507165#comment-16507165 ] Konstantin Shvachko commented on HDFS-12976: [~csun] the patch looks good to me except syntactical things: # The log messages mentioned above, if they are still needed. # And References to generic types should be parameterized: like {code} public FailoverProxyProvider getProxyProvider() { ProxyInfo getLastProxy() { {code} # I prefer if we adopt term {{ObserverNode}}, rather than {{ObserverNameNode}}. So it will be {{TestObserverNode}}. If people are OK with that. # Some long lines I think thread-local index is fine. The same client going to different Observers may increase the throughput of the client overall. If we decide all threads should use the same Observer, we can modify this later. Also Erik's and Chen's suggestions can be handled in separate jira(s). > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16506715#comment-16506715 ] Konstantin Shvachko commented on HDFS-12976: Committed HDFS-13664 with the refactoring. You should be able to update this branch now. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16506688#comment-16506688 ] Chen Liang commented on HDFS-12976: --- Hey [~csun], I've got another thought when thinking of how implementing msync can leverage this. I've discussed with Konstantin offline also. We may revisit this in a separate Jira. The thing is that, the current patch looks at {{ReadOnly}} to determine if a call should go to observer, meaning if a method is annotated with ReadOnly, it *always* go to Observer, is this the case? Because there may be situations where we want to make a read call to active, which becomes impossible. I guess a more ideal way would probably be having new annotations for observer operation and active options, which is also for better readability. Just want to mention as a TODO item, we can revisit this separately. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16506350#comment-16506350 ] Erik Krogen commented on HDFS-12976: My inclination for handling this race condition is to instead use an {{AtomicInteger}}... But I guess the real question is whether we want all threads from a single client to go to the same observer, or to spread them out. I guess I would lean towards a client using only one observer for simplicity, and letting the fact that there are many clients do the load balancing. It seems easier to reason about, and may make consistency management a bit more simple. Yeah, that is an example of my concern. Using the current strategy I guess we could just refresh the (active/standby) and observer lists upon any failover-type event. Thinking more about it, I think the root of my concern comes down to fetching the service state from all NameNodes. This is a departure from the old approach in which we just try nodes in a round-robin fashion until we find one matching the desired state. If one node is responding slowly, this will slow down the initialization and failover times for all clients. Or if a node is temporarily unresponsive, the current methodology will never add it to either of the proxy lists. I think we need to more carefully consider this decision. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16506297#comment-16506297 ] Chao Sun commented on HDFS-12976: - Hey [~xkrogen]. Thanks for the feedback. The reason for keeping {{currentIndex}} is to solve the race condition when the proxy is shared among multiple threads. Another intention is to help distribute the observer proxies into different threads. But, I'm open for opinions. Regarding the second comment, do you mean situations like when an observer transitioned to standby but is not reflected in the observer proxy list? If that's so, I'm thinking this should be handled in the {{performFailover}} method for {{ObserverReadProxyProvider}}, where it should refresh the observer proxy list. We also need to figure out a way to trigger this method properly. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16506284#comment-16506284 ] Erik Krogen commented on HDFS-12976: Thanks for taking this on [~csun]! I have two overall comments. Why is the {{currentIndex}} for {{observerProxies}} a {{ThreadLocal}}? If an observer is throwing exceptions which should be retried on a different observer, the issue should affect all of the threads, so we should move all of them to a new observer, right? I'm worried about keeping the list of observer proxies completely separate from the list of active/standby observers. This won't support an observer<->standby transitions. That's probably fine for an initial version but I want to make sure we are at least planning for the future - I don't really see how this design can be evolved to accommodate transitions. Do you have any ideas? > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16505606#comment-16505606 ] Chao Sun commented on HDFS-12976: - Thanks. I'll create a JIRA for the refactoring. One minor issue is that we'll need to update branch HDFS-12943 (after that is resolved) in order for this to compile. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16505573#comment-16505573 ] Konstantin Shvachko commented on HDFS-12976: Also for slf4j loggers you should use parametrized log message format in order to avoid string concatenation. {code} LOG.error("Failed to connect to {} after {} ms", ...); {code} > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16505551#comment-16505551 ] Konstantin Shvachko commented on HDFS-12976: Totally makes sense to commit the refactor of {{ConfiguredFailoverProxyProvider}} into trunk. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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
[jira] [Commented] (HDFS-12976) Introduce ObserverReadProxyProvider
[ https://issues.apache.org/jira/browse/HDFS-12976?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16505511#comment-16505511 ] Íñigo Goiri commented on HDFS-12976: bq. I can extract this and put it in a separate JIRA. It should just be a small change. Do you want me to do that? If nobody else opposes to the idea, yes. > Introduce ObserverReadProxyProvider > --- > > Key: HDFS-12976 > URL: https://issues.apache.org/jira/browse/HDFS-12976 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client >Reporter: Konstantin Shvachko >Assignee: Chao Sun >Priority: Major > Attachments: HDFS-12976-HDFS-12943.000.patch, HDFS-12976.WIP.patch > > > {{StandbyReadProxyProvider}} should implement {{FailoverProxyProvider}} > interface and be able to submit read requests to ANN and SBN(s). -- 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