[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16455206#comment-16455206 ] Hudson commented on HDFS-12283: --- SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #14070 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/14070/]) HDFS-12283. Ozone: DeleteKey-5: Implement SCM DeletedBlockLog. (omalley: rev 4d3b8d332df81075f54569f38d198cecba872b59) * (edit) hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/ScmConfigKeys.java * (add) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/DeletedBlockLog.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/resources/ozone-default.xml * (add) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/DeletedBlockLogImpl.java * (add) hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestDeletedBlockLog.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/proto/StorageContainerDatanodeProtocol.proto * (edit) hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu >Priority: Major > Fix For: HDFS-7240 > > Attachments: HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch, HDFS-12283-HDFS-7240.007.patch, > HDFS-12283-HDFS-7240.008.patch, HDFS-12283-HDFS-7240.009.patch, > HDFS-12283-HDFS-7240.010.patch, HDFS-12283.001.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- 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-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16450956#comment-16450956 ] Hudson commented on HDFS-12283: --- SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #14057 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/14057/]) HDFS-12283. Ozone: DeleteKey-5: Implement SCM DeletedBlockLog. (wwei: rev 91ffbaa8b9a3042a225d65c61a81bf41c53d5e33) * (edit) hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/scm/ScmConfigKeys.java * (edit) hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/ozone/OzoneConsts.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/BlockManagerImpl.java * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/proto/StorageContainerDatanodeProtocol.proto * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/resources/ozone-default.xml * (add) hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/ozone/scm/block/TestDeletedBlockLog.java * (add) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/DeletedBlockLog.java * (add) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/ozone/scm/block/DeletedBlockLogImpl.java > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu >Priority: Major > Fix For: HDFS-7240 > > Attachments: HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch, HDFS-12283-HDFS-7240.007.patch, > HDFS-12283-HDFS-7240.008.patch, HDFS-12283-HDFS-7240.009.patch, > HDFS-12283-HDFS-7240.010.patch, HDFS-12283.001.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- 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-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16139583#comment-16139583 ] Weiwei Yang commented on HDFS-12283: Looks good to me, +1, I am going to commit this shortly. Thanks [~yuanbo]. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch, HDFS-12283-HDFS-7240.007.patch, > HDFS-12283-HDFS-7240.008.patch, HDFS-12283-HDFS-7240.009.patch, > HDFS-12283-HDFS-7240.010.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16139559#comment-16139559 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 21s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 51s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 20m 18s{color} | {color:red} root in HDFS-7240 failed. {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 8s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 54s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 53s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 5s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 51s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 9s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 2s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 2m 2s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 2m 2s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 46s{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} xml {color} | {color:green} 0m 1s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 25s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 39s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 39s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 66m 44s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 18s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}115m 20s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure080 | | | hadoop.ozone.web.client.TestKeys | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12883478/HDFS-12283-HDFS-7240.010.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux d6bf134af2bc 3.13.0-123-generic #172-Ubuntu SMP Mon Jun 26 18:04:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | HDFS-7240 / 9c789e8 | | Default Java | 1.8.0_144 | | mvninstall | https://builds.apache.org/job/PreCommit-HDFS-Build/20836/artifact/patchprocess/branch-mvninstall-root.txt | | findbugs | v3.1.0-RC1 | | unit |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16139490#comment-16139490 ] Weiwei Yang commented on HDFS-12283: Hi [~yuanbo] Can you please rebase v9 patch to latest code base, it doesn't apply anymore. Thanks. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch, HDFS-12283-HDFS-7240.007.patch, > HDFS-12283-HDFS-7240.008.patch, HDFS-12283-HDFS-7240.009.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16138240#comment-16138240 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 22s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 41s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 17m 56s{color} | {color:red} root in HDFS-7240 failed. {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 41s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 45s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 56s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 53s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 39s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 48s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 37s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 37s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 37s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 42s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 34s{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} xml {color} | {color:green} 0m 1s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 49s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 36s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 39s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 73m 34s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 18s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}117m 8s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.ozone.web.client.TestKeys | | | hadoop.hdfs.server.datanode.TestDirectoryScanner | | | hadoop.hdfs.TestDFSStripedInputStreamWithRandomECPolicy | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure080 | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure090 | | | hadoop.hdfs.server.datanode.TestDataNodeVolumeFailureReporting | | | hadoop.ozone.scm.node.TestQueryNode | | | hadoop.hdfs.server.blockmanagement.TestRBWBlockInvalidation | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12883298/HDFS-12283-HDFS-7240.009.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux 2832f8946f59 3.13.0-119-generic #166-Ubuntu SMP Wed May 3 12:18:55 UTC 2017 x86_64 x86_64
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16138183#comment-16138183 ] Yuanbo Liu commented on HDFS-12283: --- [~cheersyang] Thanks for your new patch, looks good to me. Pending on Jenkins reports, I'm +1 > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch, HDFS-12283-HDFS-7240.007.patch, > HDFS-12283-HDFS-7240.008.patch, HDFS-12283-HDFS-7240.009.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16138144#comment-16138144 ] Weiwei Yang commented on HDFS-12283: Hi [~yuanbo] You v8 patch looks pretty good to me. To speed up the reviewing process, I have submitted a new patch based on that, most of changes are minor such as texting, docs etc. Please review and let me know if all changes look good to you. Thanks > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch, HDFS-12283-HDFS-7240.007.patch, > HDFS-12283-HDFS-7240.008.patch, HDFS-12283-HDFS-7240.009.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16137938#comment-16137938 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 15s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 32s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 15m 42s{color} | {color:red} root in HDFS-7240 failed. {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 35s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 45s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 35s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 37s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 43s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 28s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 42s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 33s{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} xml {color} | {color:green} 0m 2s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 0s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 42s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 42s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 78m 49s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 26s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}119m 22s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.hdfs.TestEncryptionZones | | | hadoop.ozone.scm.node.TestQueryNode | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure080 | | | hadoop.hdfs.server.datanode.TestDataNodeVolumeFailureReporting | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12883255/HDFS-12283-HDFS-7240.008.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux f737b30f044a 3.13.0-123-generic #172-Ubuntu SMP Mon Jun 26 18:04:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | HDFS-7240 / d0bd0f6 | | Default Java | 1.8.0_144 | | mvninstall |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16136628#comment-16136628 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 17s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:red}-1{color} | {color:red} mvninstall {color} | {color:red} 16m 4s{color} | {color:red} root in HDFS-7240 failed. {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 34s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 44s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 39s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 37s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 40s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 7s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 32s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 32s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 32s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 41s{color} | {color:orange} hadoop-hdfs-project: The patch generated 1 new + 1 unchanged - 0 fixed = 2 total (was 1) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 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} xml {color} | {color:green} 0m 1s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 45s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 34s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 39s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 78m 16s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 19s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}118m 3s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure150 | | | hadoop.ozone.web.client.TestKeys | | | hadoop.hdfs.server.datanode.TestDataNodeVolumeFailure | | | hadoop.hdfs.TestRollingUpgradeRollback | | | hadoop.ozone.scm.node.TestQueryNode | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12883078/HDFS-12283-HDFS-7240.007.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux 7bd2f5657c1d 3.13.0-117-generic #164-Ubuntu SMP Fri Apr 7 11:05:26 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16136363#comment-16136363 ] Yuanbo Liu commented on HDFS-12283: --- [~cheersyang] Thanks for your comments. {quote} ozone-default.xml {quote} addressed {quote} DeletedBlockLog.java {quote} addressed {quote} can we move line 67 - 71 {quote} Those fields are designed to be kept in memory as global variables. {quote} line 64: can we use AtomicLong {quote} Since we change the value in a locked field, so I guess we don't have to use AtomicLong here. {quote} exception handling of addTransaction, what if deletedStore.writeBatch(batch) {quote} The situation is much worse if we write batch before updating latestTxid, it would lead to repeated txid, so we update latestTxid before writing batch, in this case, txid may be discontinuous, but it's acceptable. Other comments will be addressed in the new patch, thanks again for your review. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16135456#comment-16135456 ] Weiwei Yang commented on HDFS-12283: Hi [~yuanbo] A few comments to v6 patch *ozone-default.xml* The property value of "ozone.scm.block.deletion.max.retry" should be 4096 (same as java constant) instead of 5 here. *DeletedBlockLog.java* NIT: line 33: Returns a certain size list of transactions -> a limit size list of transactions. Note count is the max number of TXs to return, we might not be able to always return this number. *DeletedBlockLogImpl.java* # NIT: can we move line 67 - 71 to {{getTransactions}} method since they were only used there, we don't need them globally. # line 64: can we use AtomicLong for {{latestTxid}}? # line 83: add {{setCreateIfMissing(true)}}? # line 158 : please add code to handle potential null value of {{block}} in case the given txid not exist in the log # line 169: please remove this warning message, it's not appropriate to print this warning from the log # line 172: I noticed you used a {{BatchOperation}} to atomic update all TXs, but is that really necessary? If one we are not able to update one TX here, it should not stop us updating rest of TXs in the list, so I suggest to remove the batch operation here. If a TX failed to update, print a warning and continue with next. # line 194: I don't think we should catch this exception and just print a warning, better to throw this out and let the caller to decide how to proceed. # exception handling of {{addTransaction}}, what if {{deletedStore.writeBatch(batch)}} fails and throws an IOException, in that case latestTxid is not updated to the log but updated in memory? # One more question, would {{getTransactions}} iterate over the log over again if there is no enough TX to return? For example if the log has TXs like \[1,2,3,4,5\], first getTransactions(4) returns \[1,2,3,4\], then I call getTransactions(4) will it return \[5,1,2,3\] ? Another problem, it looks like in line 122 you fetch {{count}} number of TXs and use that for the base, but what if it contains some -1 and get skipped some TXs? Will I get a result less than count? I haven't looked into the test case yet, will do tomorrow. Thanks. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16134876#comment-16134876 ] Weiwei Yang commented on HDFS-12283: Hi [~yuanbo] Thanks for the update, allow me sometime to test and review your patch, I should be able to comment at end of today or early tomorrow, thank you. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16134855#comment-16134855 ] Yuanbo Liu commented on HDFS-12283: --- Those failures are known issue. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch, > HDFS-12283-HDFS-7240.004.patch, HDFS-12283-HDFS-7240.005.patch, > HDFS-12283-HDFS-7240.006.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16134816#comment-16134816 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 15s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 36s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 14m 56s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 35s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 44s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 39s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 38s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 39s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 31s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 35s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 35s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 35s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 41s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 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} xml {color} | {color:green} 0m 1s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 50s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 34s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 39s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 69m 34s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 20s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}108m 55s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure080 | | | hadoop.ozone.web.client.TestKeys | | | hadoop.ozone.container.ozoneimpl.TestOzoneContainer | | | hadoop.ozone.scm.node.TestQueryNode | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure160 | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12882815/HDFS-12283-HDFS-7240.006.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux 2082a62c59be 3.13.0-119-generic #166-Ubuntu SMP Wed May 3 12:18:55 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | HDFS-7240 / 7d13259 | | Default Java | 1.8.0_144 | | findbugs
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16133189#comment-16133189 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 21s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 33s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 16m 26s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 36s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 44s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 52s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 49s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 50s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 47s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 47s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 47s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 46s{color} | {color:orange} hadoop-hdfs-project: The patch generated 1 new + 1 unchanged - 0 fixed = 2 total (was 1) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 51s{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} xml {color} | {color:green} 0m 2s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 2m 10s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 43s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 46s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red}113m 23s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 24s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}156m 39s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-hdfs-project/hadoop-hdfs | | | Increment of volatile field org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.latestTxid in org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.addTransaction(String, List) At DeletedBlockLogImpl.java:in org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.addTransaction(String, List) At DeletedBlockLogImpl.java:[line 222] | | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.fs.viewfs.TestViewFileSystemHdfs | | | hadoop.ozone.container.common.impl.TestContainerPersistence | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure160 | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure080 | | | hadoop.cblock.TestBufferManager | | | hadoop.ozone.container.common.TestDatanodeStateMachine | | |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131906#comment-16131906 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 19s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 44s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 18m 47s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 5s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 57s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 2m 10s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 45s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 6s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 9s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 16s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 2m 16s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 2m 16s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 33s{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} xml {color} | {color:green} 0m 1s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 46s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 38s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 40s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 67m 0s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 17s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}114m 44s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure010 | | | hadoop.ozone.scm.TestXceiverClientManager | | | hadoop.ozone.web.client.TestKeys | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12882519/HDFS-12283-HDFS-7240.004.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux 543c1e890e7f 3.13.0-123-generic #172-Ubuntu SMP Mon Jun 26 18:04:35 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | HDFS-7240 / a245c60 | | Default Java | 1.8.0_144 | | findbugs | v3.1.0-RC1 | | unit |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131661#comment-16131661 ] Yuanbo Liu commented on HDFS-12283: --- [~anu]/[~cheersyang] Thanks a lot for your comments. Except for the part you've discussed, here is my reply for Anu's questions. {quote} DeletedBlockLogImpl.java#commitTransactions: This is a hypothetical question. During the commitTransaction call... {quote} If one of the txids is invalid, that will cause commitTransactions to fail, and those txids will be added to retry queue again. I use batch operation here for efficiency reason, but your comment really hit me that we should commit txid one by one in case that one invalid txid make some other txids retry many times. {quote} addTransactions(MapblockMap) in this call is there a size limit to the list of blocks in the argument. {quote} I think the answer is yes, because this method is invoked when ksm sends deleting keys command to scm, and we will have such kind of limitation in ksm. This will be addressed in HDFS-12235. Other comments make sense to me and I will address them in v4 patch. Thanks again for your kindly reviewing. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131633#comment-16131633 ] Weiwei Yang commented on HDFS-12283: Hi [~anu] Thanks for helping to review this. Some of my comments bq. #LATEST_TXID# – Do we need this since this table will have nothing but TXIDs , do we need to keep this under this specific key I was suggesting to add this to avoid some bad case. Lets say there initially following entries in the table ||TXID||ContainerBlocks|| |1|xxx| |2|xxx| |3|xxx| |4|xxx| |5|xxx| |6|xxx| at some point, txid 5 and 6 got committed. Now it turns to be ||TXID||ContainerBlocks|| |1|xxx| |2|xxx| |3|xxx| |4|xxx| then SCM got restarted, it seeks to the end and will return 4. So next TXID will be generated as 5 again... this should be fine as a commit means the TXIDs are successfully handled at datanodes. But this also means TXID is *non-unique*, this might cause problems at some places such as auditing ? bq. DeleteBlockLogImpl.java#incrementCount Would like to understand what happens after we set this to -1 We may need to add more doc about the {{count}}. This var is actually a simpler form of the {{state}}. Maybe {{TimesBeingProcessed}} is a better word. {{-1}} means that we give up retrying on this TX as it has failed enough times. Do you really want to keep retrying without a limit ? Thanks > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131654#comment-16131654 ] Anu Engineer commented on HDFS-12283: - bq.We will need some tool to fix corrupted blocks in feature, in case datanode could not remove them perfect, let us do that and file a follow-up JIRA to have this option in SCMCLI. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131642#comment-16131642 ] Anu Engineer commented on HDFS-12283: - bq. But this also means TXID is non-unique, this might cause problems at some places such as auditing ? [~cheersyang] I did not think about it, thanks for pointing it out. I agree let us keep the LastTXID in a separate key. This is similar to what HDFS does, where we write this down in a separate file. bq. Do you really want to keep retrying without a limit ? At least for the short term, yes. Let us say we take the option of going with -1, what happens when a delete fails, I don't think we have come up with a good strategy to handle this case yet. We can only fail once we define what happens after the failure of delete. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131652#comment-16131652 ] Weiwei Yang commented on HDFS-12283: Hi [~anu] bq. At least for the short term, yes. Let us say we take the option of going with -1, what happens when a delete fails, I don't think we have come up with a good strategy to handle this case yet. We will need some tool to fix *corrupted* blocks in feature, in case datanode could not remove them (e.g in case of metadata broken), some sort of purge command to remove those stuff forcibly. I agree to have a big retry limit for now. That gives us at least the choice to dump the DB and see how many dirty entries are there, so admin could manually fix up things. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16131191#comment-16131191 ] Anu Engineer commented on HDFS-12283: - Hi [~yuanbo] Thanks for getting this done. This is a critical part of Ozone and I really appreciate your work on this. Sorry, my comments are a little late. My are comments on v3 of the patch. * {{DeletedBlockLogImpl.java: Line 53}} #LATEST_TXID# -- Do we need this since this table will have nothing but TXIDs , do we need to keep this under this specific key. In other words, since TXIDs are a monotonically increasing number and the key is ordered by TXIDs, I am thinking that just seeking to the last key is all you really need. Please let me know what I am missing here. if you are doing this because {{getRangeKVs}} don't support last keys, then we should fix that. I know that [~cheersyang] suggested this change in an earlier review, but in my mind, RocksDB and LevelDB are simple trees. So seekToEnd should be relatively efficient and I hope both the DBs have that interface. * {{DeletedBlockLogImpl.java#commitTransactions}} This is a hypothetical question. During the commitTransaction call, imagine one of the TXIDs is invalid. Does it abort the whole list or do you want to catch an exception for that TXID and continue? Not really sure if that can ever happen or if we should be worried about it. * {{DeleteBlockLogImpl.java#incrementCount}} Would like to understand what happens after we set this to -1; {code} // if the retry time exceeds the MAX_RETRY_TIME value // then set the retry value to -1, stop retrying. if (block.getCount() > maxRetry) { block.setCount(-1); } {code} For the sake of argument, let us say we hit this line, and you have set the block.count to -1.What do we do now? Never delete the block? what if the machines were switched off and came back up after you set this to -1. Can I suggest that we start warning once it is above the maxRetry limit and write a log statement for every maxRetry-th hit. For example, if maxRetry is 5, we log a warning on 5th try, 10th try and 15th try. But never set this value to -1 and never give up. So to summarize, While I fully understand why you are setting the value to -1, It is not clear to me what happens after that. * May be we need to add an option in SCMCLI to purge these entries -- perhaps file a JIRA for that. * {{addTransactions(MapblockMap)}} -- in this call is there a size limit to the list of blocks in the argument. We might want to keep that 50K or something like that. * {{addTransactions}} -- batch.put(LATEST_TXID, Longs.toByteArray(latestId)); -- if we are seeking to the last key via a seek method, we will not need to do this. Please note, I am not asking if we can iterate to the last key, I want to seek to the last key. In terms of a tree, what I am imaging is that we will only walk a couple of nodes that point to the larger values of the tree. * {{addTransactions}} I think there is a small ordering error here. Please do correct me if I am wrong. {code} 215 deletedStore.writeBatch(batch); 216 this.latestTxid = latestId; {code} Imagine this scenario right after we execute line 215 ( I am assuming that is a flush to disk for time being), and the execution fails. When you come back into this function next time, we do this. {code} 206 long latestId = this.latestTxid; {code} Now if the txid we wrote to the database was say; 105, and before we can update {{this.latestTxid}} we failed. We will end up reusing the TXIDs, which means that we will lose some TXIDs or the value part of some TXIDs. It is like going back in time.The fix might be to change the order of these lines. {code} 215 this.latestTxid = latestId; 216 deletedStore.writeBatch(batch); {code} With this order, worse that can happen is that our TXIDs can have holes since we updated {{this.latestTxid}} * ozone.scm.block.deletion.max.retry -- use this config for logging warnings ? * In test -- add a testCommitTransactions -- with one TXID being invalid ? Nits: * line 62: typo or rename : largerThanLaestReadTxid --> largerThanLatestReadTxid or getNextTxid * line 158: Comments seems to refer to MAX_RETRY_TIME {{incrementCount}}, but no such variable exists. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch, HDFS-12283-HDFS-7240.003.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16130411#comment-16130411 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 24s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 17m 4s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 49s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 49s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 2m 1s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 16s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 59s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 9s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 57s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 57s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 57s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 48s{color} | {color:orange} hadoop-hdfs-project: The patch generated 1 new + 1 unchanged - 0 fixed = 2 total (was 1) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 54s{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} xml {color} | {color:green} 0m 1s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 37s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 38s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 71m 31s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:red}-1{color} | {color:red} asflicense {color} | {color:red} 0m 21s{color} | {color:red} The patch generated 1 ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}115m 44s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.ozone.web.client.TestKeys | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure090 | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure150 | | Timed out junit tests | org.apache.hadoop.ozone.web.client.TestKeysRatis | \\ \\ || Subsystem || Report/Notes || | Docker | Image:yetus/hadoop:14b5c93 | | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12882328/HDFS-12283-HDFS-7240.003.patch | | Optional Tests | asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle cc xml | | uname | Linux 14fea562af41 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/hadoop/patchprocess/precommit/personality/provided.sh | | git revision | HDFS-7240 / 293c425 | |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16129804#comment-16129804 ] Weiwei Yang commented on HDFS-12283: Hi [~yuanbo] The new patch seems to cause a lot of UT failures, can you fix them? Thanks > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16128507#comment-16128507 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 1m 6s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 36s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 15m 51s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 36s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 43s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 38s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 37s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 42s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 29s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 41s{color} | {color:orange} hadoop-hdfs-project: The patch generated 4 new + 1 unchanged - 0 fixed = 5 total (was 1) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 33s{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} xml {color} | {color:green} 0m 2s{color} | {color:green} The patch has no ill-formed XML file. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 2m 2s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 35s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 38s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 65m 53s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 17s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}106m 55s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-hdfs-project/hadoop-hdfs | | | org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.getTransactions(int) does not release lock on all exception paths At DeletedBlockLogImpl.java:on all exception paths At DeletedBlockLogImpl.java:[line 113] | | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.ozone.web.TestOzoneRestWithMiniCluster | | | hadoop.ozone.web.TestOzoneWebAccess | | | hadoop.cblock.TestCBlockReadWrite | | | hadoop.ozone.TestMiniOzoneCluster | | | hadoop.ozone.container.ozoneimpl.TestOzoneContainer | | | hadoop.ozone.web.client.TestVolume | | | hadoop.ozone.web.client.TestKeysRatis | | | hadoop.ozone.web.client.TestBucketsRatis | | | hadoop.ozone.ksm.TestMultipleContainerReadWrite | | | hadoop.ozone.ksm.TestKeySpaceManager | | |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16128428#comment-16128428 ] Yuanbo Liu commented on HDFS-12283: --- [~cheersyang] Thanks a lot for your review. Agree with the most part of your comments and I've addressed them in v2 patch. {quote} line 110: this might have problem.. e.g you have listed tx 1,3,5 (2,4 has been committed), then 4 won't be a valid start key anymore. {quote} It's quite a tricky part because committing transactions could happen in any time. So we decide to use a filter instead of a startKey to avoid repeatedly scanning the same records. The whole idea is based on the sequentially increasing txid, we record the last read txid, scan the db from the very beginning, and get the transactions whose id are larger than the last read txid, so that the invalid start key issue could be addressed. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch, > HDFS-12283-HDFS-7240.002.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16125837#comment-16125837 ] Weiwei Yang commented on HDFS-12283: Hi [~yuanbo] Thanks for working on this and posting a patch, we are made good progress here. Despite the findbugs and checkstyle issues, I have some more comments *Ozone.proto* Can we move the protobuf definition code here to {{StorageContainerDatanodeProtocol.proto}}? Since this proto is serving the protocol between SCM and datanode. *BlockDeletionTransaction.java* line 25 - 30, suggestion to add some more explaination to the java doc, such as: a block deletion transaction represents a block deletion message send from SCM to datanode, which contains a number of under deletion blocks in a container and a txid as an unique ID to track the progress. *DeletedBlockLog.java* minor line 53: suggest to remove word DB from the java doc, as the interface might be implemented by some other form of logs in future *DeletedBlockLogImpl.java* line 56: I think the log impl should be self contained, we don't need to pass a {{MetadataStore}} argument in its constructor. The constructor should handle following cases, 1) if db already exists, load the db using metadata store API; 2) if db doesn't exists, create the DB on the given path (from configuration); line 70: this iterates the DB to get latest key, this is not efficiency I think. Maybe we can maintain latest txid in same database with a prefix? e.g #latest#latest_txid line 110: this might have problem.. e.g you have listed tx 1,3,5 (2,4 has been committed), then 4 won't be a valid start key anymore. line 141: should it be {{> MAX_RETRY}}? The init count is 0, means this transaction has not yet sent to datanode, if we want to support max time of retries, e.g 5, we need to revise this check to >5, correct? line 189: this may introduce some race condition here. For example, if line 189 succeed but line 193 failed, in this case DB entry not updated but txid incremented by 1, can you fix this inconsistency? *TestDeletedBlockLog.java* I think we need to add more test cases here. We need to at least address following {{testGetTransactions}}: 1) can we test the case that to generate 40 tx, then fetch 30, 30, we need to ensure the 2nd time returns last 10 plus first 20; 2) can we add a test case that when the log is empty, we fetch an empty list? {{testIncrementCount}}: we need to add the test to make sure it is in range [-1, MAX_RETRY], currently it only tests 0 to 1. {{testCommitTransactions}}: can we add a test case to generate 40 tx, then commit random number of tx, then fetch 20, 20 to verify we can still get things we want? Please let me know if this makes sense. Thank you. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch, HDFS-12283-HDFS-7240.001.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16125276#comment-16125276 ] Hadoop QA commented on HDFS-12283: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 17s{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 1 new or modified test files. {color} | || || || || {color:brown} HDFS-7240 Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 40s{color} | {color:blue} Maven dependency ordering for branch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 17m 29s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 54s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 54s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 2m 0s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 39s{color} | {color:green} HDFS-7240 passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 40s{color} | {color:green} HDFS-7240 passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s{color} | {color:blue} Maven dependency ordering for patch {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 31s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 33s{color} | {color:green} the patch passed {color} | | {color:orange}-0{color} | {color:orange} checkstyle {color} | {color:orange} 0m 40s{color} | {color:orange} hadoop-hdfs-project: The patch generated 3 new + 0 unchanged - 0 fixed = 3 total (was 0) {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 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:red}-1{color} | {color:red} findbugs {color} | {color:red} 2m 0s{color} | {color:red} hadoop-hdfs-project/hadoop-hdfs generated 2 new + 0 unchanged - 0 fixed = 2 total (was 0) {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 34s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 1m 37s{color} | {color:red} hadoop-hdfs-client in the patch failed. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 69m 58s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:red}-1{color} | {color:red} asflicense {color} | {color:red} 0m 18s{color} | {color:red} The patch generated 2 ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}112m 40s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hadoop-hdfs-project/hadoop-hdfs | | | org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.getTransactions(int) does not release lock on all exception paths At DeletedBlockLogImpl.java:on all exception paths At DeletedBlockLogImpl.java:[line 100] | | | Increment of volatile field org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.txid in org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.getLatestId() At DeletedBlockLogImpl.java:in org.apache.hadoop.ozone.scm.block.DeletedBlockLogImpl.getLatestId() At DeletedBlockLogImpl.java:[line 87] | | Failed junit tests | hadoop.scm.TestArchive | | | hadoop.cblock.TestCBlockReadWrite | | | hadoop.hdfs.server.balancer.TestBalancer | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure070 | | | hadoop.hdfs.TestDFSStripedOutputStreamWithFailure080 | | | hadoop.hdfs.server.datanode.TestDataNodeVolumeFailureReporting | | | hadoop.cblock.TestBufferManager | | |
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16125197#comment-16125197 ] Hadoop QA commented on HDFS-12283: -- | (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-12283 does not apply to trunk. Rebase required? Wrong Branch? See https://wiki.apache.org/hadoop/HowToContribute for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Issue | HDFS-12283 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12881681/HDFS-12283.001.patch | | Console output | https://builds.apache.org/job/PreCommit-HDFS-Build/20681/console | | Powered by | Apache Yetus 0.6.0-SNAPSHOT http://yetus.apache.org | This message was automatically generated. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > Attachments: HDFS-12283.001.patch > > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16122631#comment-16122631 ] Anu Engineer commented on HDFS-12283: - +1, I am perfectly fine with doing this using RocksDB.RocksDB internally is an LSM tree, which is based on logs. > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16119670#comment-16119670 ] Weiwei Yang commented on HDFS-12283: +[~anu] and [~xyao] in the loop, feel free to comment please. :) > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Yuanbo Liu > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (HDFS-12283) Ozone: DeleteKey-5: Implement SCM DeletedBlockLog
[ https://issues.apache.org/jira/browse/HDFS-12283?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16119663#comment-16119663 ] Weiwei Yang commented on HDFS-12283: Some more thoughts. Each key value pair in the log is {code} { long txid : BlockDeletionTransaction tx} // where the value is (protobuf message) BlockDeletionTransaction { long txid; String containerName; List blockIDs; } {code} Following API needs to be implemented {code} // Returns a certain size list of transactions // criteria: each 0<= processedCount < 5 // We may need to maintain a position while scanning the log // to avoid repetitively scanning a certain range of records List getBlockDeletionTransactions(int count); // Increment processedCount for given list of transactions by 1 // if count > 5, reset to -1 void incrementProcessedCount(List txIDs); // Delete transactions from the log based on their IDs void commitTransactions(List txIDs); {code} Please let me know if this makes sense. Thanks > Ozone: DeleteKey-5: Implement SCM DeletedBlockLog > - > > Key: HDFS-12283 > URL: https://issues.apache.org/jira/browse/HDFS-12283 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: ozone, scm >Reporter: Weiwei Yang >Assignee: Weiwei Yang > > The DeletedBlockLog is a persisted log in SCM to keep tracking container > blocks which are under deletion. It maintains info about under-deletion > container blocks that notified by KSM, and the state how it is processed. We > can use RocksDB to implement the 1st version of the log, the schema looks like > ||TxID||ContainerName||Block List||ProcessedCount|| > |0|c1|b1,b2,b3|0| > |1|c2|b1|3| > |2|c2|b2, b3|-1| > Some explanations > # TxID is an incremental long value transaction ID for ONE container and > multiple blocks > # Container name is the name of the container > # Block list is a list of block IDs > # ProcessedCount is the number of times SCM has sent this record to datanode, > it represents the "state" of the transaction, it is in range of \[-1, 5\], -1 > means the transaction eventually failed after some retries, 5 is the max > number times of retries. > We need to define {{DeletedBlockLog}} as an interface and implement this with > RocksDB {{MetadataStore}} as the first version. -- This message was sent by Atlassian JIRA (v6.4.14#64029) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org