Skip to content

HDDS-1982 Extend SCMNodeManager to support decommission and maintenance states - #1344

Closed
sodonnel wants to merge 12 commits into
apache:trunkfrom
sodonnel:HDDS-1982-decom-states
Closed

HDDS-1982 Extend SCMNodeManager to support decommission and maintenance states#1344
sodonnel wants to merge 12 commits into
apache:trunkfrom
sodonnel:HDDS-1982-decom-states

Conversation

@sodonnel

Copy link
Copy Markdown
Contributor

Remove the existing decommission states from the protobuf definition.

At this stage, this PR is really a test to see if the build passes with these states removed.

@sodonnel

Copy link
Copy Markdown
ContributorAuthor

/label ozone

@elekelek added the ozone label Aug 23, 2019
@hadoop-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec41Docker mode activated.
_ Prechecks _
+1dupname0No case conflicting files found.
+1@author0The patch does not contain any @author tags.
-1test4tests0The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
_ trunk Compile Tests _
0mvndep75Maven dependency ordering for branch
+1mvninstall668trunk passed
+1compile381trunk passed
+1checkstyle80trunk passed
+1mvnsite0trunk passed
+1shadedclient862branch has no errors when building and testing our client artifacts.
+1javadoc179trunk passed
0spotbugs448Used deprecated FindBugs config; considering switching to SpotBugs.
+1findbugs661trunk passed
_ Patch Compile Tests _
0mvndep25Maven dependency ordering for patch
+1mvninstall559the patch passed
+1compile393the patch passed
+1cc393the patch passed
+1javac393the patch passed
+1checkstyle88the patch passed
+1mvnsite0the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedclient716patch has no errors when building and testing our client artifacts.
+1javadoc201the patch passed
+1findbugs783the patch passed
_ Other Tests _
+1unit371hadoop-hdds in the patch passed.
-1unit263hadoop-ozone in the patch failed.
+1asflicense58The patch does not generate ASF License warnings.
6570
ReasonTests
Failed junit testshadoop.ozone.security.TestOzoneDelegationTokenSecretManager
SubsystemReport/Notes
DockerClient=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1344/1/artifact/out/Dockerfile
GITHUB PR#1344
Optional Testsdupname asflicense compile cc mvnsite javac unit javadoc mvninstall shadedclient findbugs checkstyle
unameLinux dd5f8f252930 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitypersonality/hadoop.sh
git revisiontrunk / b69ac57
Default Java1.8.0_222
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/1/artifact/out/patch-unit-hadoop-ozone.txt
Test Resultshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/1/testReport/
Max. process+thread count1138 (vs. ulimit of 5500)
modulesC: hadoop-hdds/common hadoop-hdds/server-scm hadoop-hdds/tools U: hadoop-hdds
Console outputhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/1/console
versionsgit=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered byApache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@sodonnel

Copy link
Copy Markdown
ContributorAuthor

This got a few test failures. TestSCMNodeMetrics was a legitimate failure, I have fixed it.

TestSecureContainerServer.testClientServerRatisGrpc() was failing on trunk, but has now been fixed.

TestBlockOutputStreamWithFailures.testWatchForCommitDatanodeFailure() seems flaky. It has passed and failed a few times locally.

@sodonnel
sodonnelforce-pushed the HDDS-1982-decom-states branch 2 times, most recently from e22b8d2 to a131589CompareSeptember 2, 2019 16:53
@sodonnel
sodonnelforce-pushed the HDDS-1982-decom-states branch from a131589 to b489d6aCompareSeptember 4, 2019 10:03

@anuengineeranuengineer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks amazing; much cleaner and far better than I thought it will be. I can emphatically +1 this. You are in the right direction. Thank you for doing this so thoughtfully.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From an English point of view, this is slightly confusing. But I see why :)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How do we handle the edge of timeOut, Maintenance might have time out -- that is I put the maintenance for one day and forget about it. Or is that handled outside the state machine?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I hadn't considered where to store that as yet. Probably it will be outside of the state machine, but need to consider where it fits in. Perhaps in NodeStatus, but that would change that object from being immutable, to carrying a time.

We will need some sort of decommission / maintenance mode monitor, probably separate from the heartbeat monitor. The decomm monitor will need to check when all blocks are replicated etc, so it could also keep track of the node maintenance timeout and hence switch the node to 'IN_SERVICE + DEAD" if it is dead and the timeout expires.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Along with your consideration, do we need an edge called Timeout that leads from IN_MAINTENANCE to IN_SERVICE? or do you plan to send in RETURN_TO_SERVICE event when there is a timeout? Either works, I was wondering if we should capture the time out edge in the state machine at all ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure why we need this loop change, but it does make code reading simpler.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This loop didn't need to change for this change, but it seemed to be a double loop when it didn't really need to be, and was doing extra lookups from the NodeStateMap, so this makes it cleaner to read and slightly more efficient too.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am presuming that you have to define the whole cross product at some point, but right now this is all we need?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. I got tired of typing the whole new NodeStatus(...) and decided to try adding the static methods. It definitely makes the code cleaner, but the cross product worries me. At the moment its only 5 * 3 = 15 states, but what if we add a 3rd status or a couple more states. The number of helper methods will get out of control. We can see how it develops I guess.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might want to write alternate version which take the operational status too ..since these calls are internal. Again, not something that need to be done in this patch. I am just writing down things as I see them. Please don't treat any of my suggests as a code review thought. More like, something that might be useful in the long run is more appropriate.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, the 'external interface' of SCMNodeManager will need to change but I want to get these changes to be good internally before we push them up the stack.

Thanks for taking the time to review this WIP. Glad to hear this is going in the correct direction so I will look to tidy things up and then we can consider the next step.

@nandakumar131nandakumar131 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall the change looks pretty good, +1 on the approach.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stateMap is no longer required, we can move NodeStatus inside DatanodeInfo

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think it makes sense to have a field inside DatanodeInfo of type NodeStatus, so we can always pass the states around as a pair, or should we add two individual fields to DatanodeInfo - nodeHealth and nodeOperationalState?

Also, one other thing to consider, is nodeStateMap originally kept a list of healthy, stale and dead, so it was possible to quickly return all nodes in that state. However now, we need to iterate over the whole list to find those nodes. One reason for this, is that we have 15 different states now instead of 3. If we move nodeStatus into datanodeInfo, it would be more difficult to optimise this later if needed. However it would simplify things if we simply remove this stateMap.

@nandakumar131nandakumar131Sep 6, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is better to have NodeStatus inside DatanodeInfo rather than having two separate fields.

Yes, stateMap helped us to easily get the list/count of nodes in a specific state, but with the current changes it is not straight forward to maintain state -> list of nodes. In any case we will be iterating over all the available nodes to get list of nodes in a given state.
The number of nodes in a cluster should not go beyond 3-4 order of magnitude. We can re-visit and optimize this, if we run into any performance issue.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

even if you have 15x states, the number of nodes is less. if you have 100 nodes, there are only 1500 states, and if you have 1000 nodes, it is 15000 states. It is still trivial to keep these in memory. Here is the real kicker, just like we decided not to write all cross products for the NodeState static functions, we will end up needing lists of only frequently accessed pattern (in mind that would be (in_service, healthy). All other node queries can be retrieved by iterating the lists as needed.

@anuengineer

Copy link
Copy Markdown
Contributor

Just a note; Originally DatanodeInfo was based on the HDFS code. Then I think we copied and created our own structure. At this point, diverging should not be a big deal is what I think.

@sodonnel
sodonnelforce-pushed the HDDS-1982-decom-states branch from e52e3b8 to 1053f63CompareSeptember 10, 2019 15:21
@hadoop-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec82Docker mode activated.
_ Prechecks _
+1dupname0No case conflicting files found.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 3 new or modified test files.
_ trunk Compile Tests _
0mvndep67Maven dependency ordering for branch
+1mvninstall628trunk passed
+1compile390trunk passed
+1checkstyle75trunk passed
+1mvnsite0trunk passed
+1shadedclient948branch has no errors when building and testing our client artifacts.
+1javadoc175trunk passed
0spotbugs459Used deprecated FindBugs config; considering switching to SpotBugs.
+1findbugs682trunk passed
_ Patch Compile Tests _
0mvndep31Maven dependency ordering for patch
+1mvninstall576the patch passed
+1compile388the patch passed
+1cc388the patch passed
+1javac388the patch passed
-0checkstyle37hadoop-hdds: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1mvnsite0the patch passed
+1whitespace1The patch has no whitespace issues.
+1shadedclient736patch has no errors when building and testing our client artifacts.
+1javadoc179the patch passed
-1findbugs215hadoop-hdds generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0)
_ Other Tests _
-1unit298hadoop-hdds in the patch failed.
-1unit3499hadoop-ozone in the patch failed.
+1asflicense61The patch does not generate ASF License warnings.
9701
ReasonTests
FindBugsmodule:hadoop-hdds
Dead store to nodes in org.apache.hadoop.hdds.scm.node.NodeStateManager.getAllNodes() At NodeStateManager.java:org.apache.hadoop.hdds.scm.node.NodeStateManager.getAllNodes() At NodeStateManager.java:[line 396]
org.apache.hadoop.hdds.scm.node.states.NodeStateMap.getNodes(NodeStatus) does not release lock on all exception paths At NodeStateMap.java:on all exception paths At NodeStateMap.java:[line 156]
Failed junit testshadoop.hdds.scm.block.TestBlockManager
hadoop.ozone.container.TestContainerReplication
hadoop.ozone.TestSecureOzoneCluster
hadoop.ozone.scm.node.TestQueryNode
hadoop.ozone.client.rpc.TestOzoneRpcClient
hadoop.ozone.client.rpc.TestOzoneRpcClientWithRatis
hadoop.ozone.client.rpc.TestMultiBlockWritesWithDnFailures
hadoop.ozone.scm.TestContainerSmallFile
hadoop.ozone.client.rpc.Test2WayCommitInRatis
hadoop.ozone.TestMiniChaosOzoneCluster
hadoop.ozone.container.common.statemachine.commandhandler.TestBlockDeletion
hadoop.ozone.scm.TestGetCommittedBlockLengthAndPutKey
hadoop.ozone.client.rpc.TestDeleteWithSlowFollower
SubsystemReport/Notes
DockerClient=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/artifact/out/Dockerfile
GITHUB PR#1344
Optional Testsdupname asflicense compile cc mvnsite javac unit javadoc mvninstall shadedclient findbugs checkstyle
unameLinux 7a7a07260082 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitypersonality/hadoop.sh
git revisiontrunk / dc9abd2
Default Java1.8.0_222
checkstylehttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/artifact/out/diff-checkstyle-hadoop-hdds.txt
findbugshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/artifact/out/new-findbugs-hadoop-hdds.html
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/artifact/out/patch-unit-hadoop-hdds.txt
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/artifact/out/patch-unit-hadoop-ozone.txt
Test Resultshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/testReport/
Max. process+thread count4364 (vs. ulimit of 5500)
modulesC: hadoop-hdds/common hadoop-hdds/server-scm hadoop-hdds/tools hadoop-ozone/integration-test U: .
Console outputhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/3/console
versionsgit=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered byApache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not <NodeState, Integer>? It makes it easier to consume for the caller in my opinion.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The existing code had Map<String, Integer>, but I agree it would be better with <NodeState, Integer> or <NodeStatus, Integer>. I plan to leave this as is for now, as this method is used only for JMX right now, and I plan to split that out into a separate change via HDDS-2113 as there are some open questions there.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we write Line 395-440 with one simple stream().filter? Nothing wrong with code itself but just a thought.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I had not really looked into the Streams API before, but I change the code to use streams and it does make it easier to follow, so I have made this change. I still kept the IF statements at the start of the method as if both params are null we can just return the entire list with no searching and if both are non-null we can search using the NodeStatus which should be slightly more efficient.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please be aware that stream.filter kind of patterns have a huge overhead over normal for. If this code is going to be in any sort of critical path, it is better for the code to stay normal for.

Please see some fixes made by todd lipcon, in HDFS because of this issue.

@hadoop-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec92Docker mode activated.
_ Prechecks _
+1dupname1No case conflicting files found.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 15 new or modified test files.
_ trunk Compile Tests _
0mvndep24Maven dependency ordering for branch
+1mvninstall649trunk passed
+1compile405trunk passed
+1checkstyle76trunk passed
+1mvnsite0trunk passed
+1shadedclient932branch has no errors when building and testing our client artifacts.
+1javadoc182trunk passed
0spotbugs499Used deprecated FindBugs config; considering switching to SpotBugs.
+1findbugs750trunk passed
_ Patch Compile Tests _
0mvndep32Maven dependency ordering for patch
-1mvninstall299hadoop-ozone in the patch failed.
-1compile247hadoop-ozone in the patch failed.
-1cc247hadoop-ozone in the patch failed.
-1javac247hadoop-ozone in the patch failed.
-0checkstyle43hadoop-ozone: The patch generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+1mvnsite0the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedclient739patch has no errors when building and testing our client artifacts.
-1javadoc75hadoop-hdds generated 20 new + 16 unchanged - 0 fixed = 36 total (was 16)
-1findbugs411hadoop-ozone in the patch failed.
_ Other Tests _
+1unit339hadoop-hdds in the patch passed.
-1unit466hadoop-ozone in the patch failed.
+1asflicense40The patch does not generate ASF License warnings.
6574
SubsystemReport/Notes
DockerClient=19.03.2 Server=19.03.2 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/Dockerfile
GITHUB PR#1344
Optional Testsdupname asflicense compile cc mvnsite javac unit javadoc mvninstall shadedclient findbugs checkstyle
unameLinux 2edae08c6f80 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitypersonality/hadoop.sh
git revisiontrunk / dacc448
Default Java1.8.0_212
mvninstallhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/patch-mvninstall-hadoop-ozone.txt
compilehttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/patch-compile-hadoop-ozone.txt
cchttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/patch-compile-hadoop-ozone.txt
javachttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/patch-compile-hadoop-ozone.txt
checkstylehttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/diff-checkstyle-hadoop-ozone.txt
javadochttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/diff-javadoc-javadoc-hadoop-hdds.txt
findbugshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/patch-findbugs-hadoop-ozone.txt
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/artifact/out/patch-unit-hadoop-ozone.txt
Test Resultshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/testReport/
Max. process+thread count1247 (vs. ulimit of 5500)
modulesC: hadoop-hdds/common hadoop-hdds/server-scm hadoop-hdds/tools hadoop-ozone/integration-test U: .
Console outputhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/4/console
versionsgit=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered byApache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@sodonnel

Copy link
Copy Markdown
ContributorAuthor

The failing unit test passes locally and the integration tests which failed, are flaky, I think. I will push the change to fix the style issue and see how the re-test goes.

@hadoop-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec39Docker mode activated.
_ Prechecks _
+1dupname1No case conflicting files found.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 15 new or modified test files.
_ trunk Compile Tests _
0mvndep65Maven dependency ordering for branch
+1mvninstall609trunk passed
+1compile409trunk passed
+1checkstyle77trunk passed
+1mvnsite0trunk passed
+1shadedclient969branch has no errors when building and testing our client artifacts.
+1javadoc169trunk passed
0spotbugs428Used deprecated FindBugs config; considering switching to SpotBugs.
+1findbugs627trunk passed
_ Patch Compile Tests _
0mvndep32Maven dependency ordering for patch
+1mvninstall541the patch passed
+1compile375the patch passed
+1cc374the patch passed
+1javac374the patch passed
+1checkstyle78the patch passed
+1mvnsite0the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedclient729patch has no errors when building and testing our client artifacts.
-1javadoc81hadoop-hdds generated 1 new + 16 unchanged - 0 fixed = 17 total (was 16)
+1findbugs720the patch passed
_ Other Tests _
+1unit271hadoop-hdds in the patch passed.
-1unit2091hadoop-ozone in the patch failed.
+1asflicense43The patch does not generate ASF License warnings.
8200
ReasonTests
Failed junit testshadoop.ozone.container.TestContainerReplication
hadoop.ozone.scm.TestContainerSmallFile
hadoop.ozone.TestSecureOzoneCluster
hadoop.ozone.om.TestOzoneManagerRestart
hadoop.ozone.om.TestOMRatisSnapshots
hadoop.ozone.client.rpc.TestWatchForCommit
hadoop.ozone.client.rpc.TestBlockOutputStreamWithFailures
SubsystemReport/Notes
DockerClient=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1344/5/artifact/out/Dockerfile
GITHUB PR#1344
Optional Testsdupname asflicense compile cc mvnsite javac unit javadoc mvninstall shadedclient findbugs checkstyle
unameLinux f8e32d81502e 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitypersonality/hadoop.sh
git revisiontrunk / c255333
Default Java1.8.0_222
javadochttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/5/artifact/out/diff-javadoc-javadoc-hadoop-hdds.txt
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/5/artifact/out/patch-unit-hadoop-ozone.txt
Test Resultshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/5/testReport/
Max. process+thread count5328 (vs. ulimit of 5500)
modulesC: hadoop-hdds/common hadoop-hdds/server-scm hadoop-hdds/tools hadoop-ozone/integration-test U: .
Console outputhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/5/console
versionsgit=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered byApache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@hadoop-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec82Docker mode activated.
_ Prechecks _
+1dupname1No case conflicting files found.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 15 new or modified test files.
_ trunk Compile Tests _
0mvndep80Maven dependency ordering for branch
+1mvninstall639trunk passed
+1compile397trunk passed
+1checkstyle76trunk passed
+1mvnsite0trunk passed
+1shadedclient981branch has no errors when building and testing our client artifacts.
+1javadoc234trunk passed
0spotbugs531Used deprecated FindBugs config; considering switching to SpotBugs.
+1findbugs786trunk passed
_ Patch Compile Tests _
0mvndep44Maven dependency ordering for patch
+1mvninstall723the patch passed
+1compile467the patch passed
+1cc467the patch passed
+1javac467the patch passed
+1checkstyle99the patch passed
+1mvnsite0the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedclient876patch has no errors when building and testing our client artifacts.
-1javadoc95hadoop-hdds generated 1 new + 16 unchanged - 0 fixed = 17 total (was 16)
+1findbugs788the patch passed
_ Other Tests _
+1unit418hadoop-hdds in the patch passed.
-1unit334hadoop-ozone in the patch failed.
+1asflicense60The patch does not generate ASF License warnings.
7525
ReasonTests
Failed junit testshadoop.ozone.om.ratis.TestOzoneManagerDoubleBufferWithOMResponse
SubsystemReport/Notes
DockerClient=19.03.2 Server=19.03.2 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1344/6/artifact/out/Dockerfile
GITHUB PR#1344
Optional Testsdupname asflicense compile cc mvnsite javac unit javadoc mvninstall shadedclient findbugs checkstyle
unameLinux 425bc211517e 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitypersonality/hadoop.sh
git revisiontrunk / 9221704
Default Java1.8.0_222
javadochttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/6/artifact/out/diff-javadoc-javadoc-hadoop-hdds.txt
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/6/artifact/out/patch-unit-hadoop-ozone.txt
Test Resultshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/6/testReport/
Max. process+thread count426 (vs. ulimit of 5500)
modulesC: hadoop-hdds/common hadoop-hdds/server-scm hadoop-hdds/tools hadoop-ozone/integration-test U: .
Console outputhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/6/console
versionsgit=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered byApache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@elek

elek commented Sep 19, 2019

Copy link
Copy Markdown
Member

LGTM

If I understood well everybody agreed with this approach and AFAIK all of the comments are addressed.

@anuengineer@nandakumar131 please let us now if you have any further comments.

I am planning to commit it tomorrow if no more objections.

I think we can commit it to the trunk, I am not sure if we need a separated branch (let me know if you prefer a feature branch).

  • It's smaller or the same size as the OM HA
  • Complexity is smaller (at least for the existing code base), most of the code will be new and independent.

@elek

elek commented Sep 19, 2019

Copy link
Copy Markdown
Member

@sodonnel Can you please rebase and push (some of the integration tests are fixed on trunk, we can double check the test results with a new, updated push)

S O'Donnell added 10 commits September 19, 2019 13:31
…tatus) rather than just NodeState. Still WIP with several TODOs
…code to use the new NodeStatus class upto the external boundry where SCMNodeManager interfaces with other components
…state2eventmap so events are only fired for IN_SERVICE transitions.
Prevent updating the nodeStatus directly in NodeStateMap to avoid race conditions. As NodeStatus contains two states, it could lead to lost updates. Instead allow each state to be updated seperately under the write lock.
…d the stateMap from NodeStateMap which is no longer needed
…e NodeStatus and fixed all the compile errors resulting from that
@sodonnel
sodonnelforce-pushed the HDDS-1982-decom-states branch from cc51696 to 20bef11CompareSeptember 19, 2019 12:32
@hadoop-yetus

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec35Docker mode activated.
_ Prechecks _
+1dupname1No case conflicting files found.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 15 new or modified test files.
_ trunk Compile Tests _
0mvndep24Maven dependency ordering for branch
-1mvninstall29hadoop-ozone in trunk failed.
-1compile19hadoop-ozone in trunk failed.
+1checkstyle50trunk passed
+1mvnsite0trunk passed
+1shadedclient941branch has no errors when building and testing our client artifacts.
-1javadoc59hadoop-ozone in trunk failed.
0spotbugs233Used deprecated FindBugs config; considering switching to SpotBugs.
-1findbugs30hadoop-ozone in trunk failed.
_ Patch Compile Tests _
0mvndep33Maven dependency ordering for patch
-1mvninstall50hadoop-ozone in the patch failed.
-1compile28hadoop-ozone in the patch failed.
-1cc28hadoop-ozone in the patch failed.
-1javac28hadoop-ozone in the patch failed.
+1checkstyle65the patch passed
+1mvnsite0the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedclient859patch has no errors when building and testing our client artifacts.
-1javadoc89hadoop-hdds generated 1 new + 16 unchanged - 0 fixed = 17 total (was 16)
-1javadoc58hadoop-ozone in the patch failed.
-1findbugs26hadoop-ozone in the patch failed.
_ Other Tests _
+1unit255hadoop-hdds in the patch passed.
-1unit33hadoop-ozone in the patch failed.
+1asflicense35The patch does not generate ASF License warnings.
3762
SubsystemReport/Notes
DockerClient=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/Dockerfile
GITHUB PR#1344
Optional Testsdupname asflicense compile cc mvnsite javac unit javadoc mvninstall shadedclient findbugs checkstyle
unameLinux ff3109c18cd4 4.15.0-60-generic #67-Ubuntu SMP Thu Aug 22 16:55:30 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Build toolmaven
Personalitypersonality/hadoop.sh
git revisiontrunk / d4205dc
Default Java1.8.0_222
mvninstallhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/branch-mvninstall-hadoop-ozone.txt
compilehttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/branch-compile-hadoop-ozone.txt
javadochttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/branch-javadoc-hadoop-ozone.txt
findbugshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/branch-findbugs-hadoop-ozone.txt
mvninstallhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-mvninstall-hadoop-ozone.txt
compilehttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-compile-hadoop-ozone.txt
cchttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-compile-hadoop-ozone.txt
javachttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-compile-hadoop-ozone.txt
javadochttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/diff-javadoc-javadoc-hadoop-hdds.txt
javadochttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-javadoc-hadoop-ozone.txt
findbugshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-findbugs-hadoop-ozone.txt
unithttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/artifact/out/patch-unit-hadoop-ozone.txt
Test Resultshttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/testReport/
Max. process+thread count528 (vs. ulimit of 5500)
modulesC: hadoop-hdds/common hadoop-hdds/server-scm hadoop-hdds/tools hadoop-ozone/integration-test U: .
Console outputhttps://builds.apache.org/job/hadoop-multibranch/job/PR-1344/7/console
versionsgit=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1
Powered byApache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

@anuengineer

Copy link
Copy Markdown
Contributor

@anuengineer@nandakumar131 please let us now if you have any further comments.

I am planning to commit it tomorrow if no more objections.

Let us commit this into a branch, not into Trunk. Thanks

@anuengineer

Copy link
Copy Markdown
Contributor

@nandakumar131@elek@swagle Thank you for all the comments and discussion. @sodonnel Thank you for the contribution. I have committed this patch to the HDDS-1880-Decom branch.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@sodonnel@hadoop-yetus@anuengineer@elek@swagle@nandakumar131