[jira] [Commented] (HBASE-15300) Upgrade to zookeeper 3.4.8
[ https://issues.apache.org/jira/browse/HBASE-15300?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182713#comment-15182713 ] Hadoop QA commented on HBASE-15300: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {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:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s {color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 39s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 10s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 11s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 56s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 21s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 13s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 39s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 11s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 2m 11s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 12s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 2m 12s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 55s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} 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} hadoopcheck {color} | {color:green} 23m 50s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 21s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 2m 15s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 110m 57s {color} | {color:green} root in the patch passed with JDK v1.8.0. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 108m 24s {color} | {color:green} root in the patch passed with JDK v1.7.0_79. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 20s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 268m 40s {color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12791697/HBASE-15300.v1.patch | | JIRA Issue | HBASE-15300 | | Optional Tests | asflicense javac javadoc unit xml compile | | uname | Linux asf907.gq1.ygridcore.net 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh | | git revision | master / ef712df | | JDK v1.7.0_79 Test Results | https://builds.apache.org/job/PreCommit-HBASE-Build/862/testReport/ | | modules | C: . U: . | | Max memory used | 209MB | | Powered by | Apache Yetus 0.1.0 http://yetus.apache.org | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/862/console | This message was automatically generated. > Upgrade to zookeeper 3.4.8 > -- > > Key: HBASE-15300 > URL: https://issues.apache.org/jira/browse/HBASE-15300 > Project: HBase >
[jira] [Commented] (HBASE-15391) Avoid too large "deleted from META" info log
[ https://issues.apache.org/jira/browse/HBASE-15391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182700#comment-15182700 ] Hadoop QA commented on HBASE-15391: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} patch {color} | {color:blue} 0m 1s {color} | {color:blue} The patch file was not named according to hbase's naming conventions. Please see https://yetus.apache.org/documentation/latest/precommit-patchnames for instructions. {color} | | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s {color} | {color:green} Patch does not have any anti-patterns. {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:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s {color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 21s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 26s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 17s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 59s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 11s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 55s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 25s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 18s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 19s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 18s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 18s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 18s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 18s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 1m 51s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 9s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 24m 49s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 6s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 25s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 17s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 4s {color} | {color:green} hbase-client in the patch passed with JDK v1.8.0. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 6s {color} | {color:green} hbase-client in the patch passed with JDK v1.7.0_79. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 7s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 40m 6s {color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12791728/HBASE-15391-trunk-v2.diff | | JIRA Issue | HBASE-15391 | | Optional Tests | asflicense javac javadoc unit findbugs hadoopcheck hbaseanti checkstyle compile | | uname | Linux
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182694#comment-15182694 ] Anoop Sam John commented on HBASE-15392: Yes Lars.. For every row cells which SQM says include/skip and go to next row.. This will happen with ECT (so when we have Scans with some columns specified). Am fine with keeping it only for get scans > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekAsDirection(StoreScanner.java:795) >
[jira] [Comment Edited] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182684#comment-15182684 ] Lars Hofhansl edited comment on HBASE-15392 at 3/7/16 7:20 AM: --- Thanks [~anoop.hbase]... But you left the important part from my quote: "or, as in this case, for every Row" :) So we're agreeing my patche fixes the issue and is general? [~stack], can you easily confirm that it fixes the problem you've seeing? was (Author: lhofhansl): Thanks [~anoop.hbase]... But you left the important part from my quote: "or, as in this case, for every Row" :) So we're agreeing my patches fixes the issue and is general? [~stack], can you easily confirm that it fixes the problem you've seeing? > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182684#comment-15182684 ] Lars Hofhansl commented on HBASE-15392: --- Thanks [~anoop.hbase]... But you left the important part from my quote: "or, as in this case, for every Row" :) So we're agreeing my patches fixes the issue and is general? [~stack], can you easily confirm that it fixes the problem you've seeing? > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at >
[jira] [Commented] (HBASE-15391) Avoid too large "deleted from META" info log
[ https://issues.apache.org/jira/browse/HBASE-15391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182682#comment-15182682 ] Duo Zhang commented on HBASE-15391: --- +1 on patch v2. > Avoid too large "deleted from META" info log > > > Key: HBASE-15391 > URL: https://issues.apache.org/jira/browse/HBASE-15391 > Project: HBase > Issue Type: Improvement >Reporter: Liu Shaohui >Assignee: Liu Shaohui >Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-15391-trunk-v1.diff, HBASE-15391-trunk-v2.diff > > > When deleting a large table in HBase, there will be a large info log in > HMaster. > {code} > 2016-02-29,05:58:45,920 INFO org.apache.hadoop.hbase.catalog.MetaEditor: > Deleted [{ENCODED => 4b54572150941cd03f5addfdeab0a754, NAME => > 'YCSBTest,,1453186492932.4b54572150941cd03f5addfdeab0a754.', STARTKEY => '', > ENDKEY => 'user01'}, {ENCODED => 715e142bcd6a31d7842abf286ef8a5fe, NAME => > 'YCSBTest,user01,1453186492933.715e142bcd6a31d7842abf286ef8a5fe.', STARTKEY > => 'user01', ENDKEY => 'user02'}, {ENCODED => > 5f9cef5714973f13baa63fba29a68d70, NAME => > 'YCSBTest,user02,1453186492933.5f9cef5714973f13baa63fba29a68d70.', STARTKEY > => 'user02', ENDKEY => 'user03'}, {ENCODED => > 86cf3fa4c0a6b911275512c1d4b78533, NAME => 'YCSBTest,user0... > {code} > The reason is that MetaTableAccessor will log all regions when deleting them > from meta. See, MetaTableAccessor.java#deleteRegions > {code} > public static void deleteRegions(Connection connection, >List regionsInfo, long ts) > throws IOException { > List deletes = new ArrayList(regionsInfo.size()); > for (HRegionInfo hri: regionsInfo) { > Delete e = new Delete(hri.getRegionName()); > e.addFamily(getCatalogFamily(), ts); > deletes.add(e); > } > deleteFromMetaTable(connection, deletes); > LOG.info("Deleted " + regionsInfo); > } > {code} > Just change the info log to debug and add a info log about the number of > deleted regions. Others suggestions are welcomed~ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15393) Enable table replication command will fail when parent znode is not default in peer cluster
[ https://issues.apache.org/jira/browse/HBASE-15393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ashish Singhi updated HBASE-15393: -- Attachment: HBASE-15393.0.98.patch Patch for 0.98 branch. > Enable table replication command will fail when parent znode is not default > in peer cluster > --- > > Key: HBASE-15393 > URL: https://issues.apache.org/jira/browse/HBASE-15393 > Project: HBase > Issue Type: Bug > Components: Replication >Affects Versions: 1.0.3, 0.98.17 >Reporter: Ashish Singhi >Assignee: Ashish Singhi > Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.4, 1.0.4, 0.98.18 > > Attachments: HBASE-15393.0.98.patch, HBASE-15393.branch-1.patch, > HBASE-15393.patch, HBASE-15393.v1.patch, HBASE-15393.v2.patch, > HBASE-15393.v3.patch > > > Enable table replication command will fail when parent znode is not > /hbase(default) in peer cluster and there is only one peer cluster added in > the source cluster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182667#comment-15182667 ] Hadoop QA commented on HBASE-15392: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s {color} | {color:green} Patch does not have any anti-patterns. {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:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s {color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 10s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 54s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 38s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 4m 30s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 18s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 11s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 38s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 38s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 49s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 56s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 56s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 36s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 36s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 4m 44s {color} | {color:red} Patch generated 4 new checkstyle issues in hbase-server (total was 152, now 141). {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 15s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 27m 14s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 19s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 36s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 36s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 22m 38s {color} | {color:red} hbase-server in the patch failed with JDK v1.8.0. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 20m 55s {color} | {color:red} hbase-server in the patch failed with JDK v1.7.0_79. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 10s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 95m 4s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | JDK v1.8.0 Failed junit tests | hadoop.hbase.filter.TestFilter | | | hadoop.hbase.filter.TestColumnPrefixFilter | | | hadoop.hbase.io.encoding.TestPrefixTree | | | hadoop.hbase.filter.TestMultipleColumnPrefixFilter | | | hadoop.hbase.regionserver.TestBlocksScanned | | JDK v1.7.0_79 Failed junit tests | hadoop.hbase.filter.TestFilter | | | hadoop.hbase.filter.TestColumnPrefixFilter | | | hadoop.hbase.io.encoding.TestPrefixTree | | | hadoop.hbase.filter.TestMultipleColumnPrefixFilter | | |
[jira] [Commented] (HBASE-15213) Fix increment performance regression caused by HBASE-8763 on branch-1.0
[ https://issues.apache.org/jira/browse/HBASE-15213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182665#comment-15182665 ] Yu Li commented on HBASE-15213: --- Agreed, thanks for the patience to correct my misunderstandings here! > Fix increment performance regression caused by HBASE-8763 on branch-1.0 > --- > > Key: HBASE-15213 > URL: https://issues.apache.org/jira/browse/HBASE-15213 > Project: HBase > Issue Type: Sub-task > Components: Performance >Reporter: Junegunn Choi >Assignee: Junegunn Choi > Fix For: 1.1.4, 1.0.4 > > Attachments: 15157v3.branch-1.1.patch, HBASE-15213-increment.png, > HBASE-15213.branch-1.0.patch, HBASE-15213.v1.branch-1.0.patch > > > This is an attempt to fix the increment performance regression caused by > HBASE-8763 on branch-1.0. > I'm aware that hbase.increment.fast.but.narrow.consistency was added to > branch-1.0 (HBASE-15031) to address the issue and a separate work is ongoing > on master branch, but anyway, this is my take on the problem. > I read through HBASE-14460 and HBASE-8763 but it wasn't clear to me what > caused the slowdown but I could indeed reproduce the performance regression. > Test setup: > - Server: 4-core Xeon 2.4GHz Linux server running mini cluster (100 handlers, > JDK 1.7) > - Client: Another box of the same spec > - Increments on random 10k records on a single-region table, recreated every > time > Increment throughput (TPS): > || Num threads || Before HBASE-8763 (d6cc2fb) || branch-1.0 || branch-1.0 > (narrow-consistency) || > || 1| 2661 | 2486| 2359 | > || 2| 5048 | 5064| 4867 | > || 4| 7503 | 8071| 8690 | > || 8| 10471| 10886 | 13980 | > || 16 | 15515| 9418| 18601 | > || 32 | 17699| 5421| 20540 | > || 64 | 20601| 4038| 25591 | > || 96 | 19177| 3891| 26017 | > We can clearly observe that the throughtput degrades as we increase the > number of concurrent requests, which led me to believe that there's severe > context switching overhead and I could indirectly confirm that suspicion with > cs entry in vmstat output. branch-1.0 shows a much higher number of context > switches even with much lower throughput. > Here are the observations: > - WriteEntry in the writeQueue can only be removed by the very handler that > put it, only when it is at the front of the queue and marked complete. > - Since a WriteEntry is marked complete after the wait-loop, only one entry > can be removed at a time. > - This stringent condition causes O(N^2) context switches where n is the > number of concurrent handlers processing requests. > So what I tried here is to mark WriteEntry complete before we go into > wait-loop. With the change, multiple WriteEntries can be shifted at a time > without context switches. I changed writeQueue to LinkedHashSet since fast > containment check is needed as WriteEntry can be removed by any handler. > The numbers look good, it's virtually identical to pre-HBASE-8763 era. > || Num threads || branch-1.0 with fix || > || 1| 2459 | > || 2| 4976 | > || 4| 8033 | > || 8| 12292| > || 16 | 15234| > || 32 | 16601| > || 64 | 19994| > || 96 | 20052| > So what do you think about it? Please let me know if I'm missing anything. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182664#comment-15182664 ] Heng Chen commented on HBASE-15406: --- To be honest, i don't like the way master do clean up with a chore. It looks weird there is one thread in master just for one tool. If we unify hbck into HMaster as i said above, even though we not implement it with procedure V2, it will also be simpler and more clear to do clean up. Of course, this way is expensive compare to it's effect. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15322) HBase 1.1.3 crashing
[ https://issues.apache.org/jira/browse/HBASE-15322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182663#comment-15182663 ] Anoop Sam John commented on HBASE-15322: Ya.. We were directly calling methods in UnsafeAccess (UnsafeComparer in case of 1.13 release). So it will load that class and try to load classes of its static members and so try load Unsafe class. We dont have any catch guard in these check areas. If u see UnsafeChecker there is no direct ref to Unsafe at all. > HBase 1.1.3 crashing > > > Key: HBASE-15322 > URL: https://issues.apache.org/jira/browse/HBASE-15322 > Project: HBase > Issue Type: Bug > Components: hbase >Affects Versions: 1.0.0, 2.0.0, 0.98.7, 0.94.24 > Environment: OS: Ubuntu 14.04/Ubuntu 15.10 > JDK: OpenJDK8/OpenJDK9 >Reporter: Anant Sharma >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.4, 0.98.18, 1.4.0 > > Attachments: BASE-15322.patch > > > HBase crashes in standalone mode with the following log: > __ > 2016-02-24 22:38:37,578 ERROR [main] master.HMasterCommandLine: Master exiting > java.lang.RuntimeException: Failed construction of Master: class > org.apache.hadoop.hbase.master.HMaster > at > org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2341) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:233) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at > org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126) > at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2355) > Caused by: java.lang.NoClassDefFoundError: Could not initialize class > org.apache.hadoop.hbase.util.Bytes$LexicographicalComparerHolder$UnsafeComparer > at org.apache.hadoop.hbase.util.Bytes.putInt(Bytes.java:899) > at > org.apache.hadoop.hbase.KeyValue.createByteArray(KeyValue.java:1082) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:652) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:580) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:483) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:370) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:267) > at org.apache.hadoop.hbase.HConstants.(HConstants.java:978) > at > org.apache.hadoop.hbase.HTableDescriptor.(HTableDescriptor.java:1488) > at > org.apache.hadoop.hbase.util.FSTableDescriptors.(FSTableDescriptors.java:124) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:570) > at org.apache.hadoop.hbase.master.HMaster.(HMaster.java:365) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > at > org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2336) > __ > The class is in the hbase-common.jar and its there in the classpath as can be > seen from the log: > _ > 2016-02-24 22:38:32,538 INFO [main] util.ServerCommandLine: >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182662#comment-15182662 ] Anoop Sam John commented on HBASE-15392: bq.Generally for Scans we should reduce the per Cell/Row cost. IMHO, we cannot add a check for moreRowsMayExistAfter(...) for every Cell or It is not for every cell.. When the SQM says abt move to next row then only.. Still for scan this many be done for more cells.Ya agree.. So we can keep this change for only Get case? That is only a boolean check. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at >
[jira] [Updated] (HBASE-15391) Avoid too large "deleted from META" info log
[ https://issues.apache.org/jira/browse/HBASE-15391?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Liu Shaohui updated HBASE-15391: Attachment: HBASE-15391-trunk-v2.diff Update for Duo Zhang's review > Avoid too large "deleted from META" info log > > > Key: HBASE-15391 > URL: https://issues.apache.org/jira/browse/HBASE-15391 > Project: HBase > Issue Type: Improvement >Reporter: Liu Shaohui >Assignee: Liu Shaohui >Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-15391-trunk-v1.diff, HBASE-15391-trunk-v2.diff > > > When deleting a large table in HBase, there will be a large info log in > HMaster. > {code} > 2016-02-29,05:58:45,920 INFO org.apache.hadoop.hbase.catalog.MetaEditor: > Deleted [{ENCODED => 4b54572150941cd03f5addfdeab0a754, NAME => > 'YCSBTest,,1453186492932.4b54572150941cd03f5addfdeab0a754.', STARTKEY => '', > ENDKEY => 'user01'}, {ENCODED => 715e142bcd6a31d7842abf286ef8a5fe, NAME => > 'YCSBTest,user01,1453186492933.715e142bcd6a31d7842abf286ef8a5fe.', STARTKEY > => 'user01', ENDKEY => 'user02'}, {ENCODED => > 5f9cef5714973f13baa63fba29a68d70, NAME => > 'YCSBTest,user02,1453186492933.5f9cef5714973f13baa63fba29a68d70.', STARTKEY > => 'user02', ENDKEY => 'user03'}, {ENCODED => > 86cf3fa4c0a6b911275512c1d4b78533, NAME => 'YCSBTest,user0... > {code} > The reason is that MetaTableAccessor will log all regions when deleting them > from meta. See, MetaTableAccessor.java#deleteRegions > {code} > public static void deleteRegions(Connection connection, >List regionsInfo, long ts) > throws IOException { > List deletes = new ArrayList(regionsInfo.size()); > for (HRegionInfo hri: regionsInfo) { > Delete e = new Delete(hri.getRegionName()); > e.addFamily(getCatalogFamily(), ts); > deletes.add(e); > } > deleteFromMetaTable(connection, deletes); > LOG.info("Deleted " + regionsInfo); > } > {code} > Just change the info log to debug and add a info log about the number of > deleted regions. Others suggestions are welcomed~ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15398) Cells loss or disorder when using family essential filter and partial scanning protocol
[ https://issues.apache.org/jira/browse/HBASE-15398?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182648#comment-15182648 ] Phil Yang commented on HBASE-15398: --- {quote} should we enforce that essential family filter and setAllowPartialResults(true) cannot be used at the same time {quote} Sounds acceptable. Another option is if user uses an essential family filter, we must return complete result even if user setBatch or setAllowPartail(true), but client may OOM. > Cells loss or disorder when using family essential filter and partial > scanning protocol > --- > > Key: HBASE-15398 > URL: https://issues.apache.org/jira/browse/HBASE-15398 > Project: HBase > Issue Type: Bug > Components: dataloss, Scanners >Affects Versions: 1.2.0, 1.1.3 >Reporter: Phil Yang >Assignee: Phil Yang >Priority: Critical > Attachments: 15398-test.txt > > > In RegionScannerImpl, we have two heaps, storeHeap and joinedHeap. If we have > a filter and it doesn't apply to all cf, the stores whose families needn't be > filtered will be in joinedHeap. We scan storeHeap first, then joinedHeap, > and merge the results and sort and return to client. We need sort because the > order of Cell is rowkey/cf/cq/ts and a smaller cf may be in the joinedHeap. > However, after HBASE-11544 we may transfer partial results when we get > SIZE_LIMIT_REACHED_MID_ROW or other similar states. We may return a larger cf > first because it is in storeHeap and then a smaller cf because it is in > joinedHeap. Server won't hold all cells in a row and client doesn't have a > sorting logic. The order of cf in Result for user is wrong. > And a more critical bug is, if we get a LIMIT_REACHED_MID_ROW on the last > cell of a row in storeHeap, we will break scanning in RegionScannerImpl and > in populateResult we will change the state to SIZE_LIMIT_REACHED because next > peeked cell is next row. But this is only the last cell of one and we have > two... And SIZE_LIMIT_REACHED means this Result is not partial (by > ScannerContext.partialResultFormed), client will see it and merge them and > return to user with losing data of joinedHeap. On next scan we will read next > row of storeHeap and joinedHeap is forgotten and never be read... -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Description: These days there are many tests timeout on builds.apache.org. I have no log on timeout tests but I find a possible reason: master crash on initialization and minicluster will log "No master found; retry" forever. The crash is caused by OutOfOrderScannerNextException. (was: These days there are many tests timeout on build.apache.org. I have no log on timeout tests but I find a possible reason: master crash on initialization and minicluster will log "No master found; retry" forever. The crash is caused by OutOfOrderScannerNextException.) > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang >Assignee: Phil Yang > Attachments: HBASE-15408.v1.txt, fail.txt > > > These days there are many tests timeout on builds.apache.org. I have no log > on timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Status: Patch Available (was: Open) > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang >Assignee: Phil Yang > Attachments: HBASE-15408.v1.txt, fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang reassigned HBASE-15408: - Assignee: Phil Yang > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang >Assignee: Phil Yang > Attachments: HBASE-15408.v1.txt, fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Attachment: HBASE-15408.v1.txt Upload a patch to decrease the timeout and add a retry > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: HBASE-15408.v1.txt, fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15393) Enable table replication command will fail when parent znode is not default in peer cluster
[ https://issues.apache.org/jira/browse/HBASE-15393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ashish Singhi updated HBASE-15393: -- Attachment: HBASE-15393.branch-1.patch Attached branch-1 patch. [~tedyu], I think you missed to add TestReplicationAdminWithTwoDifferentZKClusters.java the new file in master branch commit. Thanks. > Enable table replication command will fail when parent znode is not default > in peer cluster > --- > > Key: HBASE-15393 > URL: https://issues.apache.org/jira/browse/HBASE-15393 > Project: HBase > Issue Type: Bug > Components: Replication >Affects Versions: 1.0.3, 0.98.17 >Reporter: Ashish Singhi >Assignee: Ashish Singhi > Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.4, 1.0.4, 0.98.18 > > Attachments: HBASE-15393.branch-1.patch, HBASE-15393.patch, > HBASE-15393.v1.patch, HBASE-15393.v2.patch, HBASE-15393.v3.patch > > > Enable table replication command will fail when parent znode is not > /hbase(default) in peer cluster and there is only one peer cluster added in > the source cluster. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182623#comment-15182623 ] Lars Hofhansl commented on HBASE-15392: --- Thanks for looking... Generally for Scans we should reduce the per Cell/Row cost. IMHO, we cannot add a check for moreRowsMayExistAfter(...) for every Cell or, as in this case, for every Row. That's an extra compare, possibly two, we've been trying so hard to remove them. This should be done for Gets only. -1 on doing that always. In all but exceptional cases a Scan will stay within the block most of the time (if not, folks should increase their block size for Scans, anyway). For Gets it's a different story, since we know ahead of time that we want to look at the single row only. (That makes me think, we probably want a Cell-per-block metric, but that's a different story) In the end, I'm still a fan of my -looksee change. It (1) restores the old behavior for Gets, (2) keeps the Scan optimization (that I have verified many times over - we had some of our M/R jobs speed up by 3x end-to-end!), (3) and does not add any compares back into the mix. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at >
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182622#comment-15182622 ] Mikhail Antonov commented on HBASE-15406: - Also..when one presses ctrl-c in terminal, that should be interruptible signal, so hbck can still send a command to turn the switch back on? > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15391) Avoid too large "deleted from META" info log
[ https://issues.apache.org/jira/browse/HBASE-15391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182620#comment-15182620 ] Liu Shaohui commented on HBASE-15391: - [~Apache9] Sorry about this typo. Fix it in patch v2. Thanks~ > Avoid too large "deleted from META" info log > > > Key: HBASE-15391 > URL: https://issues.apache.org/jira/browse/HBASE-15391 > Project: HBase > Issue Type: Improvement >Reporter: Liu Shaohui >Assignee: Liu Shaohui >Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-15391-trunk-v1.diff > > > When deleting a large table in HBase, there will be a large info log in > HMaster. > {code} > 2016-02-29,05:58:45,920 INFO org.apache.hadoop.hbase.catalog.MetaEditor: > Deleted [{ENCODED => 4b54572150941cd03f5addfdeab0a754, NAME => > 'YCSBTest,,1453186492932.4b54572150941cd03f5addfdeab0a754.', STARTKEY => '', > ENDKEY => 'user01'}, {ENCODED => 715e142bcd6a31d7842abf286ef8a5fe, NAME => > 'YCSBTest,user01,1453186492933.715e142bcd6a31d7842abf286ef8a5fe.', STARTKEY > => 'user01', ENDKEY => 'user02'}, {ENCODED => > 5f9cef5714973f13baa63fba29a68d70, NAME => > 'YCSBTest,user02,1453186492933.5f9cef5714973f13baa63fba29a68d70.', STARTKEY > => 'user02', ENDKEY => 'user03'}, {ENCODED => > 86cf3fa4c0a6b911275512c1d4b78533, NAME => 'YCSBTest,user0... > {code} > The reason is that MetaTableAccessor will log all regions when deleting them > from meta. See, MetaTableAccessor.java#deleteRegions > {code} > public static void deleteRegions(Connection connection, >List regionsInfo, long ts) > throws IOException { > List deletes = new ArrayList(regionsInfo.size()); > for (HRegionInfo hri: regionsInfo) { > Delete e = new Delete(hri.getRegionName()); > e.addFamily(getCatalogFamily(), ts); > deletes.add(e); > } > deleteFromMetaTable(connection, deletes); > LOG.info("Deleted " + regionsInfo); > } > {code} > Just change the info log to debug and add a info log about the number of > deleted regions. Others suggestions are welcomed~ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182613#comment-15182613 ] Mikhail Antonov commented on HBASE-15406: - Right. The timeline is a question though. If we can address bullet point #2 using procedure framework that may be the way to go, otherwise zk ephemeral node-based approach may do just fine. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15236) Inconsistent cell reads over multiple bulk-loaded HFiles
[ https://issues.apache.org/jira/browse/HBASE-15236?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15236: - Attachment: HBASE-15236-master-v3.patch Review is ongoing in the review board. Just uploading this to check the tests. > Inconsistent cell reads over multiple bulk-loaded HFiles > > > Key: HBASE-15236 > URL: https://issues.apache.org/jira/browse/HBASE-15236 > Project: HBase > Issue Type: Bug >Reporter: Appy >Assignee: Appy > Attachments: HBASE-15236-master-v2.patch, > HBASE-15236-master-v3.patch, HBASE-15236.patch, TestWithSingleHRegion.java, > tables_data.zip > > > If there are two bulkloaded hfiles in a region with same seqID, same > timestamps and duplicate keys*, get and scan may return different values for > a key. Not sure how this would happen, but one of our customer uploaded a > dataset with 2 files in a single region and both having same bulk load > timestamp. These files are small ~50M (I couldn't find any setting for max > file size that could lead to 2 files). The range of keys in two hfiles are > overlapping to some extent, but not fully (so the two files are because of > region merge). > In such a case, depending on file sizes (used in > StoreFile.Comparators.SEQ_ID), we may get different values for the same cell > (say "r", "cf:50") depending on what we call: get "r" "cf:50" or get "r" > "cf:". > To replicate this, i ran ImportTsv twice with 2 different csv files but same > timestamp (-Dimporttsv.timestamp=1). Collected two resulting hfiles in a > single directory and loaded with LoadIncrementalHFiles. Here are the commands. > {noformat} > //CSV files should be in hdfs:///user/hbase/tmp > sudo -u hbase hbase org.apache.hadoop.hbase.mapreduce.ImportTsv > -Dimporttsv.columns=HBASE_ROW_KEY,c:1,c:2,c:3,c:4,c:5,c:6 > -Dimporttsv.separator='|' -Dimporttsv.timestamp=1 > -Dimporttsv.bulk.output=hdfs:///user/hbase/1 t tmp > {noformat} > tables_data.zip contains three tables: t, t2, and t3. > To load these tables and test with them, use the attached > TestWithSingleHRegion.java. (Change ROOT_DIR and TABLE_NAME variables > appropriately) > Hfiles for table 't': > 1) 07922ac90208445883b2ddc89c424c89 : length = 1094: KVs = (c:5, 55) (c:6, 66) > 2) 143137fa4fa84625b4e8d1d84a494f08 : length = 1192: KVs = (c:1, 1) (c:2, 2) > (c:3, 3) (c:4, 4) (c:5, 5) (c:6, 6) > Get returns 5 where as Scan returns 55. > On the other hand if I make the first hfile, the one with values 55 and 66 > bigger in size than second hfile, then: > Get returns 55 where as Scan returns 55. > This can be seen in table 't2'. > Weird things: > 1. Get consistently returns values from larger hfile. > 2. Scan consistently returns 55. > Reason: > Explanation 1: We add StoreFileScanners to heap by iterating over list of > store files which is kept sorted in DefaultStoreFileManger using > StoreFile.Comparators.SEQ_ID. It sorts the file first by increasing seq id, > then by decreasing filesize. So our larger files sizes are always in the > start. > Explanation 2: In KeyValueHeap.next(), if both current and this.heap.peek() > scanners (type is StoreFileScanner in this case) point to KVs which compare > as equal, we put back the current scanner into heap, and call pollRealKV() to > get new one. While inserting, KVScannerComparator is used which compares the > two (one already in heap and the one being inserted) as equal and inserts it > after the existing one. \[1\] > Say s1 is scanner over first hfile and s2 over second. > 1. We scan with s2 to get values 1, 2, 3, 4 > 2. see that both scanners have c:5 as next key, put current scanner s2 back > in heap, take s1 out > 4. return 55, advance s1 to key c:6 > 5. compare c:6 to c:5, put back s2 in heap since it has larger key, take out > s1 > 6. ignore it's value (there is code for that too), advance s2 to c:6 > Go back to step 2 with both scanners having c:6 as next key > This is wrong because if we add a key between c:4 and c:5 to first hfile, say > (c:44, foo) which makes s1 as the 'current' scanner when we hit step 2, then > we'll get the values - 1, 2, 3, 4, foo, 5, 6. > (try table t3) > Fix: > Assign priority ids to StoreFileScanners when inserting them into heap, > latest hfiles get higher priority, and use them in KVComparator instead of > just seq id. > \[1\] > [PriorityQueue.siftUp()|http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/util/PriorityQueue.java#586] -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15391) Avoid too large "deleted from META" info log
[ https://issues.apache.org/jira/browse/HBASE-15391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182610#comment-15182610 ] Duo Zhang commented on HBASE-15391: --- {code} +if (LOG.isDebugEnabled()) { + LOG.info("Overwritten regions: " + regionInfos); +} {code} Should use {{LOG.debug}} inside the if block? > Avoid too large "deleted from META" info log > > > Key: HBASE-15391 > URL: https://issues.apache.org/jira/browse/HBASE-15391 > Project: HBase > Issue Type: Improvement >Reporter: Liu Shaohui >Assignee: Liu Shaohui >Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-15391-trunk-v1.diff > > > When deleting a large table in HBase, there will be a large info log in > HMaster. > {code} > 2016-02-29,05:58:45,920 INFO org.apache.hadoop.hbase.catalog.MetaEditor: > Deleted [{ENCODED => 4b54572150941cd03f5addfdeab0a754, NAME => > 'YCSBTest,,1453186492932.4b54572150941cd03f5addfdeab0a754.', STARTKEY => '', > ENDKEY => 'user01'}, {ENCODED => 715e142bcd6a31d7842abf286ef8a5fe, NAME => > 'YCSBTest,user01,1453186492933.715e142bcd6a31d7842abf286ef8a5fe.', STARTKEY > => 'user01', ENDKEY => 'user02'}, {ENCODED => > 5f9cef5714973f13baa63fba29a68d70, NAME => > 'YCSBTest,user02,1453186492933.5f9cef5714973f13baa63fba29a68d70.', STARTKEY > => 'user02', ENDKEY => 'user03'}, {ENCODED => > 86cf3fa4c0a6b911275512c1d4b78533, NAME => 'YCSBTest,user0... > {code} > The reason is that MetaTableAccessor will log all regions when deleting them > from meta. See, MetaTableAccessor.java#deleteRegions > {code} > public static void deleteRegions(Connection connection, >List regionsInfo, long ts) > throws IOException { > List deletes = new ArrayList(regionsInfo.size()); > for (HRegionInfo hri: regionsInfo) { > Delete e = new Delete(hri.getRegionName()); > e.addFamily(getCatalogFamily(), ts); > deletes.add(e); > } > deleteFromMetaTable(connection, deletes); > LOG.info("Deleted " + regionsInfo); > } > {code} > Just change the info log to debug and add a info log about the number of > deleted regions. Others suggestions are welcomed~ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15391) Avoid too large "deleted from META" info log
[ https://issues.apache.org/jira/browse/HBASE-15391?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182602#comment-15182602 ] Liu Shaohui commented on HBASE-15391: - [~stack] [~Apache9] Please help to review this patch? Thanks~ > Avoid too large "deleted from META" info log > > > Key: HBASE-15391 > URL: https://issues.apache.org/jira/browse/HBASE-15391 > Project: HBase > Issue Type: Improvement >Reporter: Liu Shaohui >Assignee: Liu Shaohui >Priority: Minor > Fix For: 2.0.0 > > Attachments: HBASE-15391-trunk-v1.diff > > > When deleting a large table in HBase, there will be a large info log in > HMaster. > {code} > 2016-02-29,05:58:45,920 INFO org.apache.hadoop.hbase.catalog.MetaEditor: > Deleted [{ENCODED => 4b54572150941cd03f5addfdeab0a754, NAME => > 'YCSBTest,,1453186492932.4b54572150941cd03f5addfdeab0a754.', STARTKEY => '', > ENDKEY => 'user01'}, {ENCODED => 715e142bcd6a31d7842abf286ef8a5fe, NAME => > 'YCSBTest,user01,1453186492933.715e142bcd6a31d7842abf286ef8a5fe.', STARTKEY > => 'user01', ENDKEY => 'user02'}, {ENCODED => > 5f9cef5714973f13baa63fba29a68d70, NAME => > 'YCSBTest,user02,1453186492933.5f9cef5714973f13baa63fba29a68d70.', STARTKEY > => 'user02', ENDKEY => 'user03'}, {ENCODED => > 86cf3fa4c0a6b911275512c1d4b78533, NAME => 'YCSBTest,user0... > {code} > The reason is that MetaTableAccessor will log all regions when deleting them > from meta. See, MetaTableAccessor.java#deleteRegions > {code} > public static void deleteRegions(Connection connection, >List regionsInfo, long ts) > throws IOException { > List deletes = new ArrayList(regionsInfo.size()); > for (HRegionInfo hri: regionsInfo) { > Delete e = new Delete(hri.getRegionName()); > e.addFamily(getCatalogFamily(), ts); > deletes.add(e); > } > deleteFromMetaTable(connection, deletes); > LOG.info("Deleted " + regionsInfo); > } > {code} > Just change the info log to debug and add a info log about the number of > deleted regions. Others suggestions are welcomed~ -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182598#comment-15182598 ] ramkrishna.s.vasudevan commented on HBASE-15392: Sorry Stack. Just seeing your comment. Will wait for your patch only then. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekAsDirection(StoreScanner.java:795) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:624) > at >
[jira] [Updated] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] ramkrishna.s.vasudevan updated HBASE-15392: --- Attachment: HBASE-15392_suggest.patch Just attaching a suggestion patch. Once optimize know is it get or there are no more rows available as it is stopRow we can just return the qcode as it is and later in the StoreScanner just handle that by return from the storeScanner. So it can work for last row of a scan also if there is a stopRow. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, HBASE-15392_suggest.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182589#comment-15182589 ] stack commented on HBASE-15392: --- bq. So how will the included result get added? Did not mean to post that. Yeah, need to INCLUDE. Meant to post a subsequent patch that does not do such short-circuit. Let me finish what I have here. Whats missing is tests to verify we are doing the right thing when scan or get. Working on it. Again, thank you for the great reviews... [~anoop.hbase] I could do as you suggest but was trying to find a means of avoiding yet more compares. [~lhofhansl] Patch looks like the posted patches that move the check of a get scan into moreRowsMayExistAfter which seems like a more general fix, and one we want? (In a hurry at mo more considered response to follow) > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at >
[jira] [Commented] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182585#comment-15182585 ] Phil Yang commented on HBASE-15408: --- I find a wait logic in JVMClusterUtil: {code} if (System.currentTimeMillis() > startTime + maxwait) { String msg = "Master not initialized after " + maxwait + "ms seconds"; Threads.printThreadInfo(System.out, "Thread dump because: " + msg); throw new RuntimeException(msg); } {code} We will throw the Exception after 200 seconds if the master crashes. It may be too long because the tests marked on @Category(MediumTests.class) will be timeout after 180 seconds. I think we can decrease it from 200 to 30? > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15378) Scanner can not handle a heartbeat message with no results
[ https://issues.apache.org/jira/browse/HBASE-15378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182580#comment-15182580 ] Phil Yang commented on HBASE-15378: --- We will continue the loop if it is heartbeat and cache is empty. If cache is not empty, we can return cached data to user. {code} if (callable.isHeartbeatMessage()) { if (cache.size() > 0) { // Caller of this method just wants a Result. If we see a heartbeat message, it means // processing of the scan is taking a long time server side. Rather than continue to // loop until a limit (e.g. size or caching) is reached, break out early to avoid causing // unnecesary delays to the caller if (LOG.isTraceEnabled()) { LOG.trace("Heartbeat message received and cache contains Results." + " Breaking out of scan loop"); } break; } continue; } {code} > Scanner can not handle a heartbeat message with no results > -- > > Key: HBASE-15378 > URL: https://issues.apache.org/jira/browse/HBASE-15378 > Project: HBase > Issue Type: Bug > Components: dataloss, Scanners >Affects Versions: 1.2.0, 1.1.3 >Reporter: Phil Yang >Assignee: Phil Yang >Priority: Critical > Attachments: HBASE-15378-v1.txt, HBASE-15378-v2.txt, > HBASE-15378-v3.txt > > > When a RS scanner get a TIME_LIMIT_REACHED_MID_ROW state, they will stop > scanning and send back what it has read to client and mark the message as a > heartbeat message. If there is no cell has been read, it will be an empty > response. > However, ClientScanner only handles the situation that the client gets an > empty heartbeat and its cache is not empty. If the cache is empty too, it > will be regarded as end-of-region and open a new scanner for next region. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15322) HBase 1.1.3 crashing
[ https://issues.apache.org/jira/browse/HBASE-15322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182576#comment-15182576 ] ramkrishna.s.vasudevan commented on HBASE-15322: Do we need UnsafeChecker class newly here? {code} Class clazz = Class.forName(CLASS_NAME); 43Field f = clazz.getDeclaredField("theUnsafe"); {code} This line is the important change right? Where directly we avoid calling Unsafe? > HBase 1.1.3 crashing > > > Key: HBASE-15322 > URL: https://issues.apache.org/jira/browse/HBASE-15322 > Project: HBase > Issue Type: Bug > Components: hbase >Affects Versions: 1.0.0, 2.0.0, 0.98.7, 0.94.24 > Environment: OS: Ubuntu 14.04/Ubuntu 15.10 > JDK: OpenJDK8/OpenJDK9 >Reporter: Anant Sharma >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.4, 0.98.18, 1.4.0 > > Attachments: BASE-15322.patch > > > HBase crashes in standalone mode with the following log: > __ > 2016-02-24 22:38:37,578 ERROR [main] master.HMasterCommandLine: Master exiting > java.lang.RuntimeException: Failed construction of Master: class > org.apache.hadoop.hbase.master.HMaster > at > org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2341) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:233) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at > org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126) > at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2355) > Caused by: java.lang.NoClassDefFoundError: Could not initialize class > org.apache.hadoop.hbase.util.Bytes$LexicographicalComparerHolder$UnsafeComparer > at org.apache.hadoop.hbase.util.Bytes.putInt(Bytes.java:899) > at > org.apache.hadoop.hbase.KeyValue.createByteArray(KeyValue.java:1082) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:652) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:580) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:483) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:370) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:267) > at org.apache.hadoop.hbase.HConstants.(HConstants.java:978) > at > org.apache.hadoop.hbase.HTableDescriptor.(HTableDescriptor.java:1488) > at > org.apache.hadoop.hbase.util.FSTableDescriptors.(FSTableDescriptors.java:124) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:570) > at org.apache.hadoop.hbase.master.HMaster.(HMaster.java:365) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > at > org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2336) > __ > The class is in the hbase-common.jar and its there in the classpath as can be > seen from the log: > _ > 2016-02-24 22:38:32,538 INFO [main] util.ServerCommandLine: >
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182572#comment-15182572 ] Heng Chen commented on HBASE-15406: --- {quote} One of the solutions would be to have ephemeral znode for hbck and a chore on master which keeps track of it. Adding yet more stuff to ZK, but conceptually I won't see the problem here - we don't want to keep more configuration properties there, but keeping transient state is probably fine. {quote} That is why i said "Maybe we could merge hbck into master with procedure in the future". We could record state of hbck in zk, and let master do cleanup, it is quite like procedure framework. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15378) Scanner can not handle a heartbeat message with no results
[ https://issues.apache.org/jira/browse/HBASE-15378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182573#comment-15182573 ] ramkrishna.s.vasudevan commented on HBASE-15378: So the case here is that there are no results and also the TIME_LIMIT has reached but still we try to handle it as heartBeatMessage and the ClientScanner does not handle this case. So here {code} while ((callable != null && callable.isHeartbeatMessage()) 531 || (doneWithRegion(remainingResultSize, countdown, serverHasMoreResults) 532 && (!partialResults.isEmpty() || possiblyNextScanner(countdown, values == null; {code} On seeing it is a heartBeatMessage you will once again continue the loop? I think am missing something here. > Scanner can not handle a heartbeat message with no results > -- > > Key: HBASE-15378 > URL: https://issues.apache.org/jira/browse/HBASE-15378 > Project: HBase > Issue Type: Bug > Components: dataloss, Scanners >Affects Versions: 1.2.0, 1.1.3 >Reporter: Phil Yang >Assignee: Phil Yang >Priority: Critical > Attachments: HBASE-15378-v1.txt, HBASE-15378-v2.txt, > HBASE-15378-v3.txt > > > When a RS scanner get a TIME_LIMIT_REACHED_MID_ROW state, they will stop > scanning and send back what it has read to client and mark the message as a > heartbeat message. If there is no cell has been read, it will be an empty > response. > However, ClientScanner only handles the situation that the client gets an > empty heartbeat and its cache is not empty. If the cache is empty too, it > will be regarded as end-of-region and open a new scanner for next region. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182568#comment-15182568 ] Mikhail Antonov commented on HBASE-15406: - I guess Ted is talking about the latter case, when you start hbck, then decide you need to re-run it with different set of arguments and hit ctrl+c, then you get distracted by something (or loose network connection, or something). That shouldn't leave the cluster in the bad shape. One of the solutions would be to have ephemeral znode for hbck and a chore on master which keeps track of it. Adding yet more stuff to ZK, but conceptually I won't see the problem here - we don't want to keep more configuration properties there, but keeping transient state is probably fine. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182560#comment-15182560 ] Heng Chen commented on HBASE-15406: --- IMO there are two situations of hbck abort. * hbck exit because of some exceptions, as for this situation, we could check the switch in finally scope. * hbck abort by system (kill -9), when this happens, we could only fix the switch manually. Maybe we could merge hbck into master with procedure in the future, but not do it in this issue, So i think we could only solve this first one situation now. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182556#comment-15182556 ] ramkrishna.s.vasudevan commented on HBASE-15392: [~saint@gmail.com] In your patch {code} // Check before we try optimize. If we have hit the stopRow, time to bale out. 673 if (!matcher.moreRowsMayExistAfter(cell)) { 674 qcode = MatchCode.DONE; 675 break; 676 } {code} You are converting to DONE in optimize for the case 'INCLUDE_AND_SEEK_NEXT_ROW:'. So how will the included result get added? It is right if we do that for SEEK_NEXT_ROW? In [~larsh] patch {code} if (qcode == ScanQueryMatcher.MatchCode.INCLUDE_AND_SEEK_NEXT_ROW) { if (isGet || !matcher.moreRowsMayExistAfter(kv)) { {code} This will only work for Gets and for cases where there is no nextIndexKey. In case of SCans on with stopRow and when we are in the stopRow this may not work because INCLUDE_AND_SEEK_NEXT_ROW would have been changed to INLCUDE or SKIP_ROW. So may be it is better to add the result inside optimzie and Call DONE in such a case? But I think there are other metric and other checks related to 'storeLimit' that may prevent us. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at >
[jira] [Commented] (HBASE-15322) HBase 1.1.3 crashing
[ https://issues.apache.org/jira/browse/HBASE-15322?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182554#comment-15182554 ] Anoop Sam John commented on HBASE-15322: Ping [~ndimiduk] . Ping [~koko.an...@gmail.com] ... He has tested a 1.1.3 based version of patch and seems solving the issue. I believe this should go in next patch releases on any branch. > HBase 1.1.3 crashing > > > Key: HBASE-15322 > URL: https://issues.apache.org/jira/browse/HBASE-15322 > Project: HBase > Issue Type: Bug > Components: hbase >Affects Versions: 1.0.0, 2.0.0, 0.98.7, 0.94.24 > Environment: OS: Ubuntu 14.04/Ubuntu 15.10 > JDK: OpenJDK8/OpenJDK9 >Reporter: Anant Sharma >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.2.1, 1.1.4, 0.98.18, 1.4.0 > > Attachments: BASE-15322.patch > > > HBase crashes in standalone mode with the following log: > __ > 2016-02-24 22:38:37,578 ERROR [main] master.HMasterCommandLine: Master exiting > java.lang.RuntimeException: Failed construction of Master: class > org.apache.hadoop.hbase.master.HMaster > at > org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2341) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:233) > at > org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:139) > at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) > at > org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126) > at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2355) > Caused by: java.lang.NoClassDefFoundError: Could not initialize class > org.apache.hadoop.hbase.util.Bytes$LexicographicalComparerHolder$UnsafeComparer > at org.apache.hadoop.hbase.util.Bytes.putInt(Bytes.java:899) > at > org.apache.hadoop.hbase.KeyValue.createByteArray(KeyValue.java:1082) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:652) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:580) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:483) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:370) > at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:267) > at org.apache.hadoop.hbase.HConstants.(HConstants.java:978) > at > org.apache.hadoop.hbase.HTableDescriptor.(HTableDescriptor.java:1488) > at > org.apache.hadoop.hbase.util.FSTableDescriptors.(FSTableDescriptors.java:124) > at > org.apache.hadoop.hbase.regionserver.HRegionServer.(HRegionServer.java:570) > at org.apache.hadoop.hbase.master.HMaster.(HMaster.java:365) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > at > org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2336) > __ > The class is in the hbase-common.jar and its there in the classpath as can be > seen from the log: > _ > 2016-02-24 22:38:32,538 INFO [main] util.ServerCommandLine: >
[jira] [Commented] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182531#comment-15182531 ] Phil Yang commented on HBASE-15408: --- The vm of test building may be much slower than production environment, maybe we should do something in MiniCluster, for example, throw an exception and terminate the test when master crash? > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182529#comment-15182529 ] Phil Yang commented on HBASE-15408: --- Can we catch the OutOfOrderScannerNextException and retry in MetaTableAccessor.fullScan(Connection connection, QueryType type)(Line 235)? > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182525#comment-15182525 ] Clara Xiong commented on HBASE-15389: - That is fine. Your prototype is enough for me to work on the other part. The interface is well defined. Let's keep uploading to RB for any updates so we can stay in sync and peer review. https://reviews.apache.org/r/44434/ is for master. For validation in production, I do need 98. So please get your part work on 98 at some point and start a new RB too. > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Affects Versions: 2.0.0, 1.3.0, 0.98.19 >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182523#comment-15182523 ] Phil Yang commented on HBASE-15408: --- [~mantonov] On master. > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Description: These days there are many tests timeout on build.apache.org. I have no log on timeout tests but I find a possible reason: master crash on initialization and minicluster will log "No master found; retry" forever. The crash is caused by OutOfOrderScannerNextException. (was: These days there are many tests timeout on build.apache.org. I have no log on timeout tests but I find a possible reason: master crash on initialization and minicluster will say "No master found; retry". The crash is caused by OutOfOrderScannerNextException.) > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will log "No master found; retry" forever. The crash is > caused by OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Attachment: fail.txt Upload the log and the important part is : 2016-03-04 19:12:24,321 FATAL [10.235.114.28:58993.activeMasterManager] master.HMaster$1(1741): Failed to become active master org.apache.hadoop.hbase.DoNotRetryIOException: Failed after retry of OutOfOrderScannerNextException: was there a rpc timeout? at org.apache.hadoop.hbase.client.ClientScanner.loadCache(ClientScanner.java:469) at org.apache.hadoop.hbase.client.ClientScanner.nextWithSyncCache(ClientScanner.java:358) at org.apache.hadoop.hbase.client.ClientSimpleScanner.next(ClientSimpleScanner.java:51) at org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:776) at org.apache.hadoop.hbase.MetaTableAccessor.scanMeta(MetaTableAccessor.java:702) at org.apache.hadoop.hbase.MetaTableAccessor.fullScan(MetaTableAccessor.java:238) at org.apache.hadoop.hbase.MetaTableAccessor.fullScanRegions(MetaTableAccessor.java:213) at org.apache.hadoop.hbase.master.AssignmentManager.rebuildUserRegions(AssignmentManager.java:1677) at org.apache.hadoop.hbase.master.AssignmentManager.joinCluster(AssignmentManager.java:417) at org.apache.hadoop.hbase.master.HMaster.finishActiveMasterInitialization(HMaster.java:767) at org.apache.hadoop.hbase.master.HMaster.access$500(HMaster.java:190) at org.apache.hadoop.hbase.master.HMaster$1.run(HMaster.java:1737) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.hadoop.hbase.exceptions.OutOfOrderScannerNextException: Expected nextCallSeq: 1 But the nextCallSeq got from client: 0; request=scanner_id: 5 number_of_rows: 100 close_scanner: false next_call_seq: 0 client_handles_partials: true client_handles_heartbeats: true track_scan_metrics: false renew: false at org.apache.hadoop.hbase.regionserver.RSRpcServices.scan(RSRpcServices.java:2613) at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:220) at org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:63) at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithoutRetries(RpcRetryingCallerImpl.java:185) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:360) at org.apache.hadoop.hbase.client.ScannerCallableWithReplicas$RetryingRPC.call(ScannerCallableWithReplicas.java:334) at org.apache.hadoop.hbase.client.RpcRetryingCallerImpl.callWithRetries(RpcRetryingCallerImpl.java:118) at org.apache.hadoop.hbase.client.ResultBoundedCompletionService$QueueingFuture.run(ResultBoundedCompletionService.java:65) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ... 1 more 2016-03-04 19:12:24,327 FATAL [10.235.114.28:58993.activeMasterManager] master.HMaster(2208): Master server abort: loaded coprocessors are: [org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint] > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > Attachments: fail.txt > > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will say "No master found; retry". The crash is caused by > OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Description: These days there are many tests timeout on build.apache.org. I have no log on timeout tests but I find a possible reason: master crash on initialization and minicluster will say "No master found; retry". The crash is caused by OutOfOrderScannerNextException. > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > > These days there are many tests timeout on build.apache.org. I have no log on > timeout tests but I find a possible reason: master crash on initialization > and minicluster will say "No master found; retry". The crash is caused by > OutOfOrderScannerNextException. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182519#comment-15182519 ] Mikhail Antonov commented on HBASE-15408: - Which branch is that on? > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15408) MiniCluster's master crash on initialization and unittest timeout
[ https://issues.apache.org/jira/browse/HBASE-15408?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Phil Yang updated HBASE-15408: -- Summary: MiniCluster's master crash on initialization and unittest timeout (was: MiniCluster) > MiniCluster's master crash on initialization and unittest timeout > - > > Key: HBASE-15408 > URL: https://issues.apache.org/jira/browse/HBASE-15408 > Project: HBase > Issue Type: Bug >Reporter: Phil Yang > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (HBASE-15408) MiniCluster
Phil Yang created HBASE-15408: - Summary: MiniCluster Key: HBASE-15408 URL: https://issues.apache.org/jira/browse/HBASE-15408 Project: HBase Issue Type: Bug Reporter: Phil Yang -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15300) Upgrade to zookeeper 3.4.8
[ https://issues.apache.org/jira/browse/HBASE-15300?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-15300: --- Attachment: HBASE-15300.v1.patch > Upgrade to zookeeper 3.4.8 > -- > > Key: HBASE-15300 > URL: https://issues.apache.org/jira/browse/HBASE-15300 > Project: HBase > Issue Type: Improvement >Reporter: Ted Yu >Assignee: Ted Yu >Priority: Minor > Labels: zookeeper > Attachments: HBASE-15300.v1.patch, HBASE-1533.v1.patch > > > zookeeper 3.4.8 has been released. > Among the fixes the following are desirable: > ZOOKEEPER-706 large numbers of watches can cause session re-establishment to > fail > ZOOKEEPER-1797 PurgeTxnLog may delete data logs during roll > This issue upgrades zookeeper dependency to 3.4.8 -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182504#comment-15182504 ] Duo Zhang commented on HBASE-15389: --- OK, you will include the StoreEngine in your patch? This is should work, as your patch will depend on my patch. I should hurry up :) > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Affects Versions: 2.0.0, 1.3.0, 0.98.19 >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (HBASE-15407) Add SASL support for fan out OutputStream
Duo Zhang created HBASE-15407: - Summary: Add SASL support for fan out OutputStream Key: HBASE-15407 URL: https://issues.apache.org/jira/browse/HBASE-15407 Project: HBase Issue Type: Sub-task Reporter: Duo Zhang Otherwise we can not use it in secure environment. Should be a netty handler, but see https://github.com/netty/netty/issues/1966 I do not think it will be available in the near future, so we need to do it by ourselves. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182459#comment-15182459 ] Duo Zhang commented on HBASE-15389: --- I think we can work parallel but to commit with two separated patches seems a little difficult? The getCompactBoundaries method is needed by me but implemented in your patch. But never mind, we could start working now. Committing with one or two patches is not a big deal. Getting things done is more important. > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Affects Versions: 2.0.0, 1.3.0, 0.98.19 >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182425#comment-15182425 ] Ted Yu commented on HBASE-15406: Heng: Before putting up a patch, can you let us know how you plan to solve the problem ? I thought of a few methods but none of them seems to satisfactory. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-6721) RegionServer Group based Assignment
[ https://issues.apache.org/jira/browse/HBASE-6721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182415#comment-15182415 ] Francis Liu commented on HBASE-6721: [~enis] Looks like the build aborted again due to 500mins timeout: https://builds.apache.org/job/PreCommit-HBASE-Build/843/console I'm wondering if it's really expected to finish in 500 mins? - Pre-unit tests (~160mins total elapsed) - jdk7 unit tests (410mins total elapsed) -jdk8 The longest component unit test run by a large margin is hbase-server and hbase-component. I compared the run times to other successful pre-commit builds and hbase-server runtime seems to be pretty similar. Tho I'm wondering why we are running hbase-server again when hbase-component has already been run? The redundancy seems to be what's making the build go over the time limit? > RegionServer Group based Assignment > --- > > Key: HBASE-6721 > URL: https://issues.apache.org/jira/browse/HBASE-6721 > Project: HBase > Issue Type: New Feature >Reporter: Francis Liu >Assignee: Francis Liu > Labels: hbase-6721 > Attachments: 6721-master-webUI.patch, HBASE-6721 > GroupBasedLoadBalancer Sequence Diagram.xml, HBASE-6721-DesigDoc.pdf, > HBASE-6721-DesigDoc.pdf, HBASE-6721-DesigDoc.pdf, HBASE-6721-DesigDoc.pdf, > HBASE-6721_0.98_2.patch, HBASE-6721_10.patch, HBASE-6721_11.patch, > HBASE-6721_12.patch, HBASE-6721_13.patch, HBASE-6721_14.patch, > HBASE-6721_15.patch, HBASE-6721_8.patch, HBASE-6721_9.patch, > HBASE-6721_9.patch, HBASE-6721_94.patch, HBASE-6721_94.patch, > HBASE-6721_94_2.patch, HBASE-6721_94_3.patch, HBASE-6721_94_3.patch, > HBASE-6721_94_4.patch, HBASE-6721_94_5.patch, HBASE-6721_94_6.patch, > HBASE-6721_94_7.patch, HBASE-6721_98_1.patch, HBASE-6721_98_2.patch, > HBASE-6721_hbase-6721_addendum.patch, HBASE-6721_trunk.patch, > HBASE-6721_trunk.patch, HBASE-6721_trunk.patch, HBASE-6721_trunk1.patch, > HBASE-6721_trunk2.patch, balanceCluster Sequence Diagram.svg, > hbase-6721-v15-branch-1.1.patch, hbase-6721-v16.patch, hbase-6721-v17.patch, > hbase-6721-v18.patch, hbase-6721-v19.patch, hbase-6721-v20.patch, > hbase-6721-v21.patch, hbase-6721-v22.patch, hbase-6721-v23.patch, > hbase-6721-v25.patch, hbase-6721-v26.patch, hbase-6721-v26_draft1.patch, > hbase-6721-v27.patch, hbase-6721-v27.patch, hbase-6721-v27.patch.txt, > hbase-6721-v28.patch, hbase-6721-v28.patch, immediateAssignments Sequence > Diagram.svg, randomAssignment Sequence Diagram.svg, retainAssignment Sequence > Diagram.svg, roundRobinAssignment Sequence Diagram.svg > > > In multi-tenant deployments of HBase, it is likely that a RegionServer will > be serving out regions from a number of different tables owned by various > client applications. Being able to group a subset of running RegionServers > and assign specific tables to it, provides a client application a level of > isolation and resource allocation. > The proposal essentially is to have an AssignmentManager which is aware of > RegionServer groups and assigns tables to region servers based on groupings. > Load balancing will occur on a per group basis as well. > This is essentially a simplification of the approach taken in HBASE-4120. See > attached document. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182407#comment-15182407 ] Lars Hofhansl commented on HBASE-15392: --- I also like your suggestion [~anoop.hbase]. Although, I'm not sure what optimize would do in this case. In the SEEK_NEXT_ROW we could be DONE in that case. For INCLUDE_AND_SEEK_NEXT_ROW we'd have to recheck the condition in the StoreScanner again unless we add an INCLUDE_AND_DONE state. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at >
[jira] [Commented] (HBASE-15243) Utilize the lowest seek value when all Filters in MUST_PASS_ONE FilterList return SEEK_NEXT_USING_HINT
[ https://issues.apache.org/jira/browse/HBASE-15243?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182376#comment-15182376 ] Lars Hofhansl commented on HBASE-15243: --- Looks good to me. As for the observation above: bq. This might be tangential but I think seeking could be a bit more aggressive on the MUST_PASS_ALL case as well. I'd agree. We only have to reverse the compare the getHint method and we'll find the optimize (i.e. max) hint value for MUST_PASS_ALL. Different jira maybe. I will say the FilterList is more tricky than it should and we've seen many "funny" things with in the past. The more tests we have the better. > Utilize the lowest seek value when all Filters in MUST_PASS_ONE FilterList > return SEEK_NEXT_USING_HINT > -- > > Key: HBASE-15243 > URL: https://issues.apache.org/jira/browse/HBASE-15243 > Project: HBase > Issue Type: Improvement >Reporter: Ted Yu >Assignee: Ted Yu > Fix For: 2.0.0, 1.3.0 > > Attachments: HBASE-15243-v1.txt, HBASE-15243-v2.txt, > HBASE-15243-v3.txt, HBASE-15243-v4.txt, HBASE-15243-v5.txt, > HBASE-15243-v6.txt, HBASE-15243-v7.txt > > > As Preston Koprivica pointed out at the tail of HBASE-4394, when all filters > in a MUST_PASS_ONE FilterList return a SEEK_USING_NEXT_HINT code, we should > return SEEK_NEXT_USING_HINT from the FilterList to utilize the lowest seek > value. > This would save unnecessary accesses to blocks which are not in scan result. > A unit test has been added which shows the reduction in the number of blocks > accessed when this optimization takes effect. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-14703) HTable.mutateRow does not collect stats
[ https://issues.apache.org/jira/browse/HBASE-14703?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182374#comment-15182374 ] Heng Chen commented on HBASE-14703: --- Thanks [~jesse_yates] for your help during this issue. It is really a long time. Any plan to backport it to branch-1+, or just leave it on master? > HTable.mutateRow does not collect stats > --- > > Key: HBASE-14703 > URL: https://issues.apache.org/jira/browse/HBASE-14703 > Project: HBase > Issue Type: Bug >Reporter: Heng Chen >Assignee: Heng Chen > Fix For: 2.0.0 > > Attachments: HBASE-14702_v5.2_addendum-addendum.patch, > HBASE-14703-5.2-addendum.patch, HBASE-14703-async.patch, > HBASE-14703-start.patch, HBASE-14703-v4.1.patch, HBASE-14703-v4.patch, > HBASE-14703-v6_with-check-and-mutate.patch, HBASE-14703.patch, > HBASE-14703_v1.patch, HBASE-14703_v10.patch, HBASE-14703_v10.patch, > HBASE-14703_v11.patch, HBASE-14703_v12.patch, HBASE-14703_v13.patch, > HBASE-14703_v2.patch, HBASE-14703_v3.patch, HBASE-14703_v5.1.patch, > HBASE-14703_v5.2.patch, HBASE-14703_v5.patch, HBASE-14703_v6-addendum.patch, > HBASE-14703_v6.patch, HBASE-14703_v7.patch, HBASE-14703_v8.patch, > HBASE-14703_v9.patch > > > We are trying to fix the stats implementation, by moving it out of the Result > object and into an Rpc payload (but not the 'cell payload', just as part of > the values returned from the request). This change will also us use easily > switch to AsyncProcess as the executor, and support stats, for nearly all the > rpc calls. However, that means when you upgrade the client or server, you > will lose stats visibility until the other side is upgraded. We could keep > around the Result based stats storage to accommodate the old api and send > both stats back from the server (in each result and in the rpc payload). > Note that we will still be wire compatible - protobufs mean we can just ride > over the lack of information. > The other tricky part of this is that Result has a > non-InterfaceAudience.Private getStatistics() method (along with two > InterfaceAudience.Private addResults and setStatistics methods), so we might > need a release to deprecate the getStats() method before throwing it out? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Heng Chen updated HBASE-15406: -- Fix Version/s: 1.4.0 1.3.0 2.0.0 > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Assigned] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Heng Chen reassigned HBASE-15406: - Assignee: Heng Chen > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Heng Chen >Priority: Critical > Fix For: 2.0.0, 1.3.0, 1.4.0 > > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15376) ScanNext metric is size-based while every other per-operation metric is time based
[ https://issues.apache.org/jira/browse/HBASE-15376?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182368#comment-15182368 ] Heng Chen commented on HBASE-15376: --- Commit it today if no other concerns. > ScanNext metric is size-based while every other per-operation metric is time > based > -- > > Key: HBASE-15376 > URL: https://issues.apache.org/jira/browse/HBASE-15376 > Project: HBase > Issue Type: Sub-task >Reporter: Enis Soztutar > Attachments: HBASE-15376.patch, HBASE-15376_v1.patch, > HBASE-15376_v3.patch > > > We have per-operation metrics for {{Get}}, {{Mutate}}, {{Delete}}, > {{Increment}}, and {{ScanNext}}. > The metrics are emitted like: > {code} >"Get_num_ops" : 4837505, > "Get_min" : 0, > "Get_max" : 296, > "Get_mean" : 0.2934618155433431, > "Get_median" : 0.0, > "Get_75th_percentile" : 0.0, > "Get_95th_percentile" : 1.0, > "Get_99th_percentile" : 1.0, > ... > "ScanNext_num_ops" : 194705, > "ScanNext_min" : 0, > "ScanNext_max" : 18441, > "ScanNext_mean" : 7468.274651395701, > "ScanNext_median" : 583.0, > "ScanNext_75th_percentile" : 583.0, > "ScanNext_95th_percentile" : 13481.0, > "ScanNext_99th_percentile" : 13481.0, > {code} > The problem is that all of Get,Mutate,Delete,Increment,Append,Replay are time > based tracking how long the operation ran, while ScanNext is tracking > returned response sizes (returned cell-sizes to be exact). Obviously, this is > very confusing and you would only know this subtlety if you read the metrics > collection code. > Not sure how useful is the ScanNext metric as it is today. We can deprecate > it, and introduce a time based one to keep track of scan request latencies. > ps. Shamelessly using the parent jira (since these seem relavant). -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ted Yu updated HBASE-15406: --- Priority: Critical (was: Major) Marking critical since split / merge can be disabled for extended period of time. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Critical > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182365#comment-15182365 ] Heng Chen commented on HBASE-15406: --- Oh, sorry, it has no dealing when hbck abort. Let me fix it. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182356#comment-15182356 ] Ted Yu commented on HBASE-15406: Yes. > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
[ https://issues.apache.org/jira/browse/HBASE-15406?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182344#comment-15182344 ] Mikhail Antonov commented on HBASE-15406: - As HBASE-15128 was committed to 1.3 too, that should also affect it? > Split / merge switch left disabled after early termination of hbck > -- > > Key: HBASE-15406 > URL: https://issues.apache.org/jira/browse/HBASE-15406 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu > > This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: > Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster > Terminate hbck early > Enter hbase shell where I observed: > {code} > hbase(main):001:0> splitormerge_enabled 'SPLIT' > false > 0 row(s) in 0.3280 seconds > hbase(main):002:0> splitormerge_enabled 'MERGE' > false > 0 row(s) in 0.0070 seconds > {code} > Expectation is that the split / merge switches should be restored to default > value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182343#comment-15182343 ] Lars Hofhansl commented on HBASE-15392: --- Strike that... It's not slower. In any case. Please let me know if the -looksee patch fixes the problem. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekAsDirection(StoreScanner.java:795) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:624) > at >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182342#comment-15182342 ] Lars Hofhansl commented on HBASE-15392: --- Lastly (maybe) how big are the column? I'm testing the -looksee patch and it actually _slightly slower_ (because we're doing more work in SEEK'ing vs SKIP'ing), my Cells are small. Maybe this is more pronounced for big Cells (as the likelihood of overshooting by just one column leading to a new block is higher). > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at >
[jira] [Issue Comment Deleted] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lars Hofhansl updated HBASE-15392: -- Comment: was deleted (was: | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} patch {color} | {color:blue} 0m 1s {color} | {color:blue} The patch file was not named according to hbase's naming conventions. Please see https://yetus.apache.org/documentation/latest/precommit-patchnames for instructions. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 3s {color} | {color:red} HBASE-15392 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/latest/precommit-patchnames for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12791683/15392-0.98-looksee.txt | | JIRA Issue | HBASE-15392 | | Powered by | Apache Yetus 0.1.0 http://yetus.apache.org | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/861/console | This message was automatically generated. ) > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182337#comment-15182337 ] Hadoop QA commented on HBASE-15392: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} patch {color} | {color:blue} 0m 1s {color} | {color:blue} The patch file was not named according to hbase's naming conventions. Please see https://yetus.apache.org/documentation/latest/precommit-patchnames for instructions. {color} | | {color:red}-1{color} | {color:red} patch {color} | {color:red} 0m 3s {color} | {color:red} HBASE-15392 does not apply to master. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/latest/precommit-patchnames for help. {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12791683/15392-0.98-looksee.txt | | JIRA Issue | HBASE-15392 | | Powered by | Apache Yetus 0.1.0 http://yetus.apache.org | | Console output | https://builds.apache.org/job/PreCommit-HBASE-Build/861/console | This message was automatically generated. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) >
[jira] [Updated] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Lars Hofhansl updated HBASE-15392: -- Attachment: 15392-0.98-looksee.txt Hey [~stack], does -looksee fix the problem for you (sorry against 0.98) > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392-0.98-looksee.txt, 15392.wip.patch, > 15392v2.wip.patch, 15392v3.wip.patch, no_optimize.patch, no_optimize.patch, > two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekAsDirection(StoreScanner.java:795) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.next(StoreScanner.java:624) > at >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182325#comment-15182325 ] Lars Hofhansl commented on HBASE-15392: --- Is this part that's no longer executed: {code} if (qcode == ScanQueryMatcher.MatchCode.INCLUDE_AND_SEEK_NEXT_ROW) { if (!matcher.moreRowsMayExistAfter(kv)) { return false; } seekToNextRow(kv); } {code} ? If so we can even be smarter. We know that a Get will always exactly touch one row. So if we do a XXX_SEEK_NEXT_ROW, we know we're done. We do not even have to check. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392.wip.patch, 15392v2.wip.patch, 15392v3.wip.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at >
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182324#comment-15182324 ] Lars Hofhansl commented on HBASE-15392: --- bq. It optimizes for scans but F's random reads (smile). Discrimination! I still do not follow. Optimize relies on the ColumnTrackers doing the right thing. I.e. when we're past the column we're looking for they will issue a SEEK (and no longer an INCLUDE_AND_SEEK). With that I do not see how optimize can make things worse in terms of number of blocks read. If the SEEK would get us to another block, optimize allows the seek, otherwise it converts it to INCLUDE or SKIP. In either case we're moving to the next ROW. Either we SEEK there or we SKIP multiple times, but to the _very same_ row. How would optimize cause us reading further than we would have without? I am missing something. [~stack], is this only happening when a row is the last in a block? How can reproduce this easily? > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392.wip.patch, 15392v2.wip.patch, 15392v3.wip.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at >
[jira] [Commented] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182280#comment-15182280 ] Hadoop QA commented on HBASE-15405: --- | (/) *{color:green}+1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s {color} | {color:green} Patch does not have any anti-patterns. {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:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 37s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 37s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 4m 5s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 14s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 51s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 25s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 32s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 42s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 43s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 43s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 33s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 33s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 4m 27s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 15s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 23m 43s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 59s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 26s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 32s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 89m 15s {color} | {color:green} hbase-server in the patch passed with JDK v1.8.0. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 87m 49s {color} | {color:green} hbase-server in the patch passed with JDK v1.7.0_79. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 14s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 221m 49s {color} | {color:black} {color} | \\ \\ || Subsystem || Report/Notes || | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12791671/HBASE-15405-master.patch | | JIRA Issue | HBASE-15405 | | Optional Tests | asflicense javac javadoc unit findbugs hadoopcheck hbaseanti checkstyle compile | | uname | Linux asf907.gq1.ygridcore.net 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh | | git revision | master / ef712df | | findbugs | v3.0.0 | | JDK v1.7.0_79 Test Results |
[jira] [Updated] (HBASE-15400) Use DateTieredCompactor for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15400: Description: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files with data older than max age archived in trunks of the window size on the higher tier. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of DateTieredCompactor from HBASE-15389 and focused on the part to meet need for these two use cases while supporting others. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. And we want to output multiple files older than max age in the trunks of the maximum tier window size determined by base window size, windows per tier and max age. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. For the incoming window, we need to accommodate the case with user-specified future data. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. was: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of date tiered file writer from HBASE-15389. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. And we want to output multiple files older than max age in the sizes of the maximum tier window size determined by base window size, windows per tier and max age. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. > Use DateTieredCompactor for Date Tiered Compaction > -- > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files
[jira] [Updated] (HBASE-15400) Use DateTieredCompactor for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15400: Summary: Use DateTieredCompactor for Date Tiered Compaction (was: Using Multiple Output for Date Tiered Compaction) > Use DateTieredCompactor for Date Tiered Compaction > -- > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This work is based on a prototype of date tiered file writer from > HBASE-15389. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > And we want to output multiple files older than max age in the sizes of the > maximum tier window size determined by base window size, windows per tier and > max age. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of current restriction of contiguous compaction by seq > id. I will only output two files if all the files in the windows are being > combined, one for the data within window and the other for the out-of-window > tail. If there is any file in the window excluded from compaction, only one > file will be output from compaction. When the windows are promoted, the > situation of out of order data will gradually improve. > 3. We have to pass the boundaries with the list of store file as a complete > time snapshot instead of two separate calls because window layout is > determined by the time the computation is called. So we will need new type of > compaction request. > 4. Since we will assign the same seq id for all output files, we need to sort > by maxTimestamp subsequently. Right now all compaction policy gets the files > sorted for StoreFileManager which sorts by seq id and other criteria. I will > use this order for DTCP only, to avoid impacting other compaction policies. > 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182264#comment-15182264 ] Clara Xiong commented on HBASE-15389: - What do you think if we keep HBASE-15389 and HBASE-15400 as two separate patches and work in parallel?For HBASE-15389, we can have: .../regionserver/AbstractMultiFileWriter.java .../regionserver/DateTieredMultiFileWriter.java .../hbase/regionserver/StripeMultiFileWriter.java .../hbase/regionserver/StripeStoreFlusher.java .../compactions/DateTieredCompactor.java .../regionserver/TestDateTieredCompaction.java These files has no dependencies on the other part and can be checked in independently. For HBASE-15400, we can have: .../hbase/regionserver/DateTieredStoreEngine.java .../hadoop/hbase/regionserver/StoreFile.java .../compactions/DateTieredCompactionPolicy.java .../regionserver/TestDateTieredCompactionPolicy.java I can work on them and add more unit test cases. It will be appreciated if you can add input too. HBASE-15400 can be checked in after HBASE-15389 is checked in. I have patches for master and 98 now but will hold off on uploading the older versions since DateTieredCompactor doesn't work on 98 yet. These two patches together will work end to end. We can test in staging and production at Xiaomi and Flurry/Yahoo in parallel later. What do you think? > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Affects Versions: 2.0.0, 1.3.0, 0.98.19 >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182255#comment-15182255 ] Clara Xiong commented on HBASE-15389: - HadoopQA reported unit test failures in TestStripeStoreFileManager which seem to be regression. Could you have a look too when you work on the new unit test? > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Affects Versions: 2.0.0, 1.3.0, 0.98.19 >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182252#comment-15182252 ] Lars Hofhansl commented on HBASE-15392: --- Lemme have a look. Optimize might aggravate the problem, but it should not be the cause. If there's a seek to next row and optimize decides to skip instead of seek, that should be the better decision (less overall work to do). Does Get have any special logic around this? In any case I'll take a look today. > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392.wip.patch, 15392v2.wip.patch, 15392v3.wip.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at >
[jira] [Updated] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15389: Affects Version/s: 0.98.19 1.3.0 2.0.0 > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Affects Versions: 2.0.0, 1.3.0, 0.98.19 >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=1518#comment-1518 ] Clara Xiong commented on HBASE-15400: - Uploaded to RB at https://reviews.apache.org/r/44434/ so we can discuss in more details. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This work is based on a prototype of date tiered file writer from > HBASE-15389. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > And we want to output multiple files older than max age in the sizes of the > maximum tier window size determined by base window size, windows per tier and > max age. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of current restriction of contiguous compaction by seq > id. I will only output two files if all the files in the windows are being > combined, one for the data within window and the other for the out-of-window > tail. If there is any file in the window excluded from compaction, only one > file will be output from compaction. When the windows are promoted, the > situation of out of order data will gradually improve. > 3. We have to pass the boundaries with the list of store file as a complete > time snapshot instead of two separate calls because window layout is > determined by the time the computation is called. So we will need new type of > compaction request. > 4. Since we will assign the same seq id for all output files, we need to sort > by maxTimestamp subsequently. Right now all compaction policy gets the files > sorted for StoreFileManager which sorts by seq id and other criteria. I will > use this order for DTCP only, to avoid impacting other compaction policies. > 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15392) Single Cell Get reads two HFileBlocks
[ https://issues.apache.org/jira/browse/HBASE-15392?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182216#comment-15182216 ] Anoop Sam John commented on HBASE-15392: So for optimize() INCLUDE_AND_SEEK_NEXT_ROW case also we add moreRowsMayExistAfter() check so this will help with an explicit columns scan case with stop row. This same would be applicable for SEEK_NEXT_ROW also (?) > Single Cell Get reads two HFileBlocks > - > > Key: HBASE-15392 > URL: https://issues.apache.org/jira/browse/HBASE-15392 > Project: HBase > Issue Type: Sub-task > Components: BucketCache >Reporter: stack >Assignee: stack > Attachments: 15392.wip.patch, 15392v2.wip.patch, 15392v3.wip.patch, > no_optimize.patch, no_optimize.patch, two_seeks.txt > > > As found by Daniel "SystemTap" Pol, a simple Get results in our reading two > HFileBlocks, the one that contains the wanted Cell, and the block that > follows. > Here is a bit of custom logging that logs a stack trace on each HFileBlock > read so you can see the call stack responsible: > {code} > 2016-03-03 22:20:30,191 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > START LOOP > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] regionserver.StoreScanner: > QCODE SEEK_NEXT_COL > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileBlockIndex: > STARTED WHILE > 2016-03-03 22:20:30,192 INFO > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.CombinedBlockCache: > OUT OF L2 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.BucketCache: Read > offset=31409152, len=2103 > 2016-03-03 22:20:30,192 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] bucket.FileIOEngine: > offset=31409152, length=2103 > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > From Cache [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > 2016-03-03 22:20:30,193 TRACE > [B.defaultRpcServer.handler=20,queue=2,port=16020] hfile.HFileReaderImpl: > Cache hit return [blockType=DATA, fileOffset=2055421, headerSize=33, > onDiskSizeWithoutHeader=2024, uncompressedSizeWithoutHeader=2020, > prevBlockOffset=2053364, isUseHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, onDiskDataSizeWithHeader=2053, > getOnDiskSizeWithHeader=2057, totalChecksumBytes=4, isUnpacked=true, > buf=[org.apache.hadoop.hbase.nio.SingleByteBuff@e19fbd54], > dataBeginsWith=\x00\x00\x00)\x00\x00\x01`\x00\x16user995139035672819231, > fileContext=[usesHBaseChecksum=true, checksumType=CRC32C, > bytesPerChecksum=16384, blocksize=65536, encoding=NONE, includesMvcc=true, > includesTags=false, compressAlgo=NONE, compressTags=false, > cryptoContext=[cipher=NONE keyHash=NONE]]] > java.lang.Throwable > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl.readBlock(HFileReaderImpl.java:1515) > at > org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$CellBasedKeyBlockIndexReader.loadDataBlockWithScanInfo(HFileBlockIndex.java:324) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.seekTo(HFileReaderImpl.java:831) > at > org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.reseekTo(HFileReaderImpl.java:812) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseekAtOrAfter(StoreFileScanner.java:288) > at > org.apache.hadoop.hbase.regionserver.StoreFileScanner.reseek(StoreFileScanner.java:198) > at > org.apache.hadoop.hbase.regionserver.NonLazyKeyValueScanner.doRealSeek(NonLazyKeyValueScanner.java:54) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.generalizedSeek(KeyValueHeap.java:321) > at > org.apache.hadoop.hbase.regionserver.KeyValueHeap.requestSeek(KeyValueHeap.java:279) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.reseek(StoreScanner.java:806) > at > org.apache.hadoop.hbase.regionserver.StoreScanner.seekAsDirection(StoreScanner.java:795) > at >
[jira] [Commented] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182211#comment-15182211 ] Clara Xiong commented on HBASE-15400: - Sorry if I didn't make it clear. If a user load a single bulkload file with large time span to an empty store with seqId 0 or 1 or a very small number, then call major compaction to output a date tiered layout. They use the default window size and then we output files more than the existing seq id. Another extreme case is a user use -1 for bulk load files by explicitly turning off the configuration assign sequence id. One more extreme case is a user that specify timestamp for business logic which cover an extremely large time range that requires more output files than the seq id the first file gets written to an empty store. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This work is based on a prototype of date tiered file writer from > HBASE-15389. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > And we want to output multiple files older than max age in the sizes of the > maximum tier window size determined by base window size, windows per tier and > max age. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of current restriction of contiguous compaction by seq > id. I will only output two files if all the files in the windows are being > combined, one for the data within window and the other for the out-of-window > tail. If there is any file in the window excluded from compaction, only one > file will be output from compaction. When the windows are promoted, the > situation of out of order data will gradually improve. > 3. We have to pass the boundaries with the list of store file as a complete > time snapshot instead of two separate calls because window layout is > determined by the time the computation is called. So we will need new type of > compaction request. > 4. Since we will assign the same seq id for all output files, we need to sort > by maxTimestamp subsequently. Right now all compaction policy gets the files > sorted for StoreFileManager which sorts by seq id and other criteria. I will > use this order for DTCP only, to avoid impacting other compaction policies. > 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (HBASE-15406) Split / merge switch left disabled after early termination of hbck
Ted Yu created HBASE-15406: -- Summary: Split / merge switch left disabled after early termination of hbck Key: HBASE-15406 URL: https://issues.apache.org/jira/browse/HBASE-15406 Project: HBase Issue Type: Bug Reporter: Ted Yu This was what I did on cluster with 1.4.0-SNAPSHOT built Thursday: Run 'hbase hbck -disableSplitAndMerge' on gateway node of the cluster Terminate hbck early Enter hbase shell where I observed: {code} hbase(main):001:0> splitormerge_enabled 'SPLIT' false 0 row(s) in 0.3280 seconds hbase(main):002:0> splitormerge_enabled 'MERGE' false 0 row(s) in 0.0070 seconds {code} Expectation is that the split / merge switches should be restored to default value after hbck exits. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15405: - Attachment: HBASE-15405-master.patch re-run test. > Fix PE logging and wrong defaults in help message > - > > Key: HBASE-15405 > URL: https://issues.apache.org/jira/browse/HBASE-15405 > Project: HBase > Issue Type: Bug > Components: Performance >Reporter: Appy >Assignee: Appy >Priority: Minor > Attachments: HBASE-15405-master.patch, HBASE-15405-master.patch > > > Corrects wrong default values for few options in the help message. > Final stats from multiple clients are intermingled making it hard to > understand. Also the logged stats aren't very machine readable. It can be > helpful in a daily perf testing rig which scraps logs for results. > Example of logs before the change. > {noformat} > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=359.00, max=324050.00, stdDev=851.82, 95th=1368.00, > 99th=1625.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.92, min=356.00, max=323394.00, stdDev=817.55, 95th=1370.00, > 99th=1618.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=367.00, max=322745.00, stdDev=840.43, 95th=1369.00, > 99th=1622.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 375.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 363.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.6624126434326 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.4124526977539 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 781.3929776087633 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 742.8027916717297 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1070.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1623.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1624.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 372.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3013.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.2451229095459 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3043.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 725.4744472152282 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25282.38016755 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 895.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25812.76334 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = > 89772.78990004538 >
[jira] [Commented] (HBASE-15213) Fix increment performance regression caused by HBASE-8763 on branch-1.0
[ https://issues.apache.org/jira/browse/HBASE-15213?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182200#comment-15182200 ] Junegunn Choi commented on HBASE-15213: --- [~carp84] bq. This possibly will make T3 return earlier than T2 which is incorrect? It's not incorrect. It does not break consistency guarantee of HBase. If you think concurrent clients should receive the responses to the concurrent transactions in the exact order they are processed on the server, it's practically not possible and HBase does not guarantee that. bq. I guess this is exactly why we remove only one element at a time from the queue in 0.98/master codes No, on both branches multiple entries are removed at once if possible. That's what the while loops are for. Each handler thread first mark the entry at hand complete, try to remove multiple, consecutive entries at the front of the queue (while loop), then go into the wait loop. > Fix increment performance regression caused by HBASE-8763 on branch-1.0 > --- > > Key: HBASE-15213 > URL: https://issues.apache.org/jira/browse/HBASE-15213 > Project: HBase > Issue Type: Sub-task > Components: Performance >Reporter: Junegunn Choi >Assignee: Junegunn Choi > Fix For: 1.1.4, 1.0.4 > > Attachments: 15157v3.branch-1.1.patch, HBASE-15213-increment.png, > HBASE-15213.branch-1.0.patch, HBASE-15213.v1.branch-1.0.patch > > > This is an attempt to fix the increment performance regression caused by > HBASE-8763 on branch-1.0. > I'm aware that hbase.increment.fast.but.narrow.consistency was added to > branch-1.0 (HBASE-15031) to address the issue and a separate work is ongoing > on master branch, but anyway, this is my take on the problem. > I read through HBASE-14460 and HBASE-8763 but it wasn't clear to me what > caused the slowdown but I could indeed reproduce the performance regression. > Test setup: > - Server: 4-core Xeon 2.4GHz Linux server running mini cluster (100 handlers, > JDK 1.7) > - Client: Another box of the same spec > - Increments on random 10k records on a single-region table, recreated every > time > Increment throughput (TPS): > || Num threads || Before HBASE-8763 (d6cc2fb) || branch-1.0 || branch-1.0 > (narrow-consistency) || > || 1| 2661 | 2486| 2359 | > || 2| 5048 | 5064| 4867 | > || 4| 7503 | 8071| 8690 | > || 8| 10471| 10886 | 13980 | > || 16 | 15515| 9418| 18601 | > || 32 | 17699| 5421| 20540 | > || 64 | 20601| 4038| 25591 | > || 96 | 19177| 3891| 26017 | > We can clearly observe that the throughtput degrades as we increase the > number of concurrent requests, which led me to believe that there's severe > context switching overhead and I could indirectly confirm that suspicion with > cs entry in vmstat output. branch-1.0 shows a much higher number of context > switches even with much lower throughput. > Here are the observations: > - WriteEntry in the writeQueue can only be removed by the very handler that > put it, only when it is at the front of the queue and marked complete. > - Since a WriteEntry is marked complete after the wait-loop, only one entry > can be removed at a time. > - This stringent condition causes O(N^2) context switches where n is the > number of concurrent handlers processing requests. > So what I tried here is to mark WriteEntry complete before we go into > wait-loop. With the change, multiple WriteEntries can be shifted at a time > without context switches. I changed writeQueue to LinkedHashSet since fast > containment check is needed as WriteEntry can be removed by any handler. > The numbers look good, it's virtually identical to pre-HBASE-8763 era. > || Num threads || branch-1.0 with fix || > || 1| 2459 | > || 2| 4976 | > || 4| 8033 | > || 8| 12292| > || 16 | 15234| > || 32 | 16601| > || 64 | 19994| > || 96 | 20052| > So what do you think about it? Please let me know if I'm missing anything. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15405: - Status: Patch Available (was: Open) > Fix PE logging and wrong defaults in help message > - > > Key: HBASE-15405 > URL: https://issues.apache.org/jira/browse/HBASE-15405 > Project: HBase > Issue Type: Bug > Components: Performance >Reporter: Appy >Assignee: Appy >Priority: Minor > Attachments: HBASE-15405-master.patch > > > Corrects wrong default values for few options in the help message. > Final stats from multiple clients are intermingled making it hard to > understand. Also the logged stats aren't very machine readable. It can be > helpful in a daily perf testing rig which scraps logs for results. > Example of logs before the change. > {noformat} > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=359.00, max=324050.00, stdDev=851.82, 95th=1368.00, > 99th=1625.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.92, min=356.00, max=323394.00, stdDev=817.55, 95th=1370.00, > 99th=1618.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=367.00, max=322745.00, stdDev=840.43, 95th=1369.00, > 99th=1622.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 375.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 363.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.6624126434326 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.4124526977539 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 781.3929776087633 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 742.8027916717297 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1070.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1623.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1624.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 372.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3013.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.2451229095459 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3043.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 725.4744472152282 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25282.38016755 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 895.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25812.76334 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = > 89772.78990004538 > 16/03/05 22:43:06 INFO
[jira] [Updated] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15405: - Status: Open (was: Patch Available) > Fix PE logging and wrong defaults in help message > - > > Key: HBASE-15405 > URL: https://issues.apache.org/jira/browse/HBASE-15405 > Project: HBase > Issue Type: Bug > Components: Performance >Reporter: Appy >Assignee: Appy >Priority: Minor > Attachments: HBASE-15405-master.patch > > > Corrects wrong default values for few options in the help message. > Final stats from multiple clients are intermingled making it hard to > understand. Also the logged stats aren't very machine readable. It can be > helpful in a daily perf testing rig which scraps logs for results. > Example of logs before the change. > {noformat} > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=359.00, max=324050.00, stdDev=851.82, 95th=1368.00, > 99th=1625.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.92, min=356.00, max=323394.00, stdDev=817.55, 95th=1370.00, > 99th=1618.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=367.00, max=322745.00, stdDev=840.43, 95th=1369.00, > 99th=1622.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 375.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 363.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.6624126434326 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.4124526977539 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 781.3929776087633 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 742.8027916717297 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1070.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1623.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1624.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 372.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3013.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.2451229095459 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3043.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 725.4744472152282 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25282.38016755 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 895.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25812.76334 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = > 89772.78990004538 > 16/03/05 22:43:06 INFO
[jira] [Commented] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182173#comment-15182173 ] Hadoop QA commented on HBASE-15405: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s {color} | {color:green} Patch does not have any anti-patterns. {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:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 37s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 37s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 4m 5s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 15s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 50s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 25s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 32s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 42s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 38s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 38s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 32s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 4m 6s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 14s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s {color} | {color:green} Patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 23m 44s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 3s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 25s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 32s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 60m 0s {color} | {color:red} hbase-server in the patch failed with JDK v1.8.0. {color} | | {color:green}+1{color} | {color:green} unit {color} | {color:green} 87m 55s {color} | {color:green} hbase-server in the patch passed with JDK v1.7.0_79. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 15s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 192m 18s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | JDK v1.8.0 Timed out junit tests | org.apache.hadoop.hbase.client.TestReplicasClient | | | org.apache.hadoop.hbase.mapreduce.TestWALPlayer | | | org.apache.hadoop.hbase.mapreduce.TestTableInputFormat | | | org.apache.hadoop.hbase.client.TestFromClientSide | | | org.apache.hadoop.hbase.client.TestMultipleTimestamps | | | org.apache.hadoop.hbase.snapshot.TestSnapshotClientRetries | | | org.apache.hadoop.hbase.master.balancer.TestStochasticLoadBalancer2 | | | org.apache.hadoop.hbase.mapred.TestTableInputFormat | | | org.apache.hadoop.hbase.namespace.TestNamespaceAuditor | | | org.apache.hadoop.hbase.TestHBaseTestingUtility | | |
[jira] [Commented] (HBASE-14363) Print more details on the row behind an Empty REGIONINFO_QUALIFIER warning
[ https://issues.apache.org/jira/browse/HBASE-14363?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182168#comment-15182168 ] Matt Warhaftig commented on HBASE-14363: {quote}"Is that appearing in 1.x already, or was that after your local changes?"{quote} The output listed earlier is HBase source without any local changes. {quote}"I didn't see a key being logged in 0.98.x I was originally troubleshooting when I'd filed this."{quote} Empty REGIONINFO_QUALIFIER details was added 3/2012 (f2d637) and should be available in 0.98.x. Please respond if the HBCK details flag doesn't yield the needed results for your and I will investigate further. > Print more details on the row behind an Empty REGIONINFO_QUALIFIER warning > -- > > Key: HBASE-14363 > URL: https://issues.apache.org/jira/browse/HBASE-14363 > Project: HBase > Issue Type: Improvement > Components: hbck, Operability >Affects Versions: 1.0.0 >Reporter: Harsh J >Assignee: Matt Warhaftig > > Currently HBCK just prints a vague "Empty REGIONINFO_QUALIFIER found" > warning, and does not print the row it found that on. While fixing this is > easy thanks to HBCK, some more detail (say the row/region ID) would be good > to print, to avoid people manually scanning meta to obtain the very same info. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15405: - Status: Patch Available (was: Open) > Fix PE logging and wrong defaults in help message > - > > Key: HBASE-15405 > URL: https://issues.apache.org/jira/browse/HBASE-15405 > Project: HBase > Issue Type: Bug > Components: Performance >Reporter: Appy >Assignee: Appy >Priority: Minor > Attachments: HBASE-15405-master.patch > > > Corrects wrong default values for few options in the help message. > Final stats from multiple clients are intermingled making it hard to > understand. Also the logged stats aren't very machine readable. It can be > helpful in a daily perf testing rig which scraps logs for results. > Example of logs before the change. > {noformat} > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=359.00, max=324050.00, stdDev=851.82, 95th=1368.00, > 99th=1625.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.92, min=356.00, max=323394.00, stdDev=817.55, 95th=1370.00, > 99th=1618.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=367.00, max=322745.00, stdDev=840.43, 95th=1369.00, > 99th=1622.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 375.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 363.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.6624126434326 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.4124526977539 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 781.3929776087633 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 742.8027916717297 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1070.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1623.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1624.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 372.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3013.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.2451229095459 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3043.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 725.4744472152282 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25282.38016755 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 895.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25812.76334 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = > 89772.78990004538 > 16/03/05 22:43:06 INFO
[jira] [Updated] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15405: - Attachment: HBASE-15405-master.patch > Fix PE logging and wrong defaults in help message > - > > Key: HBASE-15405 > URL: https://issues.apache.org/jira/browse/HBASE-15405 > Project: HBase > Issue Type: Bug > Components: Performance >Reporter: Appy >Assignee: Appy >Priority: Minor > Attachments: HBASE-15405-master.patch > > > Corrects wrong default values for few options in the help message. > Final stats from multiple clients are intermingled making it hard to > understand. Also the logged stats aren't very machine readable. It can be > helpful in a daily perf testing rig which scraps logs for results. > Example of logs before the change. > {noformat} > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=359.00, max=324050.00, stdDev=851.82, 95th=1368.00, > 99th=1625.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.92, min=356.00, max=323394.00, stdDev=817.55, 95th=1370.00, > 99th=1618.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, > latency mean=953.98, min=367.00, max=322745.00, stdDev=840.43, 95th=1369.00, > 99th=1622.00 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log > (microseconds), on 1048576 measures > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 375.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 363.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.6624126434326 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.4124526977539 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 781.3929776087633 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 742.8027916717297 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 894.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1070.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = > 1369.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1623.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = > 1624.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = > 372.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3013.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = > 953.2451229095459 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = > 3043.998000214 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = > 725.4744472152282 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25282.38016755 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = > 895.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = > 25812.76334 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = > 1071.0 > 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = > 89772.78990004538 > 16/03/05 22:43:06 INFO
[jira] [Updated] (HBASE-15405) Fix PE logging and wrong defaults in help message
[ https://issues.apache.org/jira/browse/HBASE-15405?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Appy updated HBASE-15405: - Description: Corrects wrong default values for few options in the help message. Final stats from multiple clients are intermingled making it hard to understand. Also the logged stats aren't very machine readable. It can be helpful in a daily perf testing rig which scraps logs for results. Example of logs before the change. {noformat} 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, latency mean=953.98, min=359.00, max=324050.00, stdDev=851.82, 95th=1368.00, 99th=1625.00 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, latency mean=953.92, min=356.00, max=323394.00, stdDev=817.55, 95th=1370.00, 99th=1618.00 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: 0/1048570/1048576, latency mean=953.98, min=367.00, max=322745.00, stdDev=840.43, 95th=1369.00, 99th=1622.00 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest latency log (microseconds), on 1048576 measures 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = 375.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = 363.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = 953.6624126434326 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = 953.4124526977539 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = 781.3929776087633 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = 742.8027916717297 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = 894.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = 894.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = 1070.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = 1071.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = 1369.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = 1369.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = 1623.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99th = 1624.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Min = 372.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = 3013.998000214 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest Avg = 953.2451229095459 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.9th = 3043.998000214 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest StdDev = 725.4744472152282 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = 25282.38016755 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 50th = 895.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.99th = 25812.76334 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 75th = 1071.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = 89772.78990004538 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 95th = 1369.0 16/03/05 22:43:06 INFO hbase.PerformanceEvaluation: IncrementTest 99.999th = 122808.39587019826 {noformat} After the change {noformat} 16/03/06 02:38:21 INFO hbase.PerformanceEvaluation: Test : RandomWriteTest, Thread : TestClient-1 16/03/06 02:38:21 INFO hbase.PerformanceEvaluation: Latency (us) : , mean=6.23, min=2.00, max=101433.00, stdDev=246.62, 50th=2.00, 75th=2.00, 95th=3.00, 99th=13.00, 99.9th=558.00, 99.99th=9656.19, 99.999th=20213.63 16/03/06 02:38:21 INFO hbase.PerformanceEvaluation: Num measures (latency) : 1048576 16/03/06 02:38:21 INFO hbase.PerformanceEvaluation:
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182079#comment-15182079 ] Duo Zhang commented on HBASE-15389: --- Fine, let me write a testcase for the compactor and see how to implement it on 0.98. > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182080#comment-15182080 ] Duo Zhang commented on HBASE-15400: --- For minor compaction, we can only assign different seqIds which count is less than the input files. But for major compaction, we do not need to reuse the seqIds of the input files I think? If we have N output files, we could just use {{seqId - N + 1}} ~ {{seqId}} as the seqIds of the output files? And if we can write out N files, it means that we should have more than N entries so the seqId must be greater than N? Thanks. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This work is based on a prototype of date tiered file writer from > HBASE-15389. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > And we want to output multiple files older than max age in the sizes of the > maximum tier window size determined by base window size, windows per tier and > max age. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of current restriction of contiguous compaction by seq > id. I will only output two files if all the files in the windows are being > combined, one for the data within window and the other for the out-of-window > tail. If there is any file in the window excluded from compaction, only one > file will be output from compaction. When the windows are promoted, the > situation of out of order data will gradually improve. > 3. We have to pass the boundaries with the list of store file as a complete > time snapshot instead of two separate calls because window layout is > determined by the time the computation is called. So we will need new type of > compaction request. > 4. Since we will assign the same seq id for all output files, we need to sort > by maxTimestamp subsequently. Right now all compaction policy gets the files > sorted for StoreFileManager which sorts by seq id and other criteria. I will > use this order for DTCP only, to avoid impacting other compaction policies. > 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182069#comment-15182069 ] Hadoop QA commented on HBASE-15400: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s {color} | {color:green} Patch does not have any anti-patterns. {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 2 new or modified test files. {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 36s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 44s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 4m 26s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 14s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 51s {color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 24s {color} | {color:green} master passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 31s {color} | {color:green} master passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 42s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 42s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 42s {color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 31s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 31s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} checkstyle {color} | {color:red} 4m 26s {color} | {color:red} Patch generated 3 new checkstyle issues in hbase-server (total was 86, now 87). {color} | | {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 14s {color} | {color:green} the patch passed {color} | | {color:red}-1{color} | {color:red} whitespace {color} | {color:red} 0m 0s {color} | {color:red} The patch has 29 line(s) that end in whitespace. Use git apply --whitespace=fix. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 23m 42s {color} | {color:green} Patch does not cause any errors with Hadoop 2.4.0 2.4.1 2.5.0 2.5.1 2.5.2 2.6.1 2.6.2 2.6.3 2.7.1. {color} | | {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 2m 3s {color} | {color:red} hbase-server introduced 7 new FindBugs issues. {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 25s {color} | {color:green} the patch passed with JDK v1.8.0 {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 31s {color} | {color:green} the patch passed with JDK v1.7.0_79 {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 20m 19s {color} | {color:red} hbase-server in the patch failed with JDK v1.8.0. {color} | | {color:red}-1{color} | {color:red} unit {color} | {color:red} 36m 17s {color} | {color:red} hbase-server in the patch failed with JDK v1.7.0_79. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 9s {color} | {color:green} Patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 101m 43s {color} | {color:black} {color} | \\ \\ || Reason || Tests || | FindBugs | module:hbase-server | | | Read of unwritten public or protected field boundary2Writer in new org.apache.hadoop.hbase.regionserver.DateTieredMultiFileWriter(List) At DateTieredMultiFileWriter.java:protected field boundary2Writer in new org.apache.hadoop.hbase.regionserver.DateTieredMultiFileWriter(List) At DateTieredMultiFileWriter.java:[line 45] | | | Read of unwritten public or protected field boundary2Writer in org.apache.hadoop.hbase.regionserver.DateTieredMultiFileWriter.append(Cell) At DateTieredMultiFileWriter.java:protected field
[jira] [Updated] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15400: Description: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of date tiered file writer from HBASE-15389. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. And we want to take output multiple files older than max age in the sizes of the maximum tier window size determined by base window size, windows per tier and max age. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. was: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of date tiered file writer from HBASE-15389. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This work is based on a prototype of date tiered file writer from > HBASE-15389. I have to call out a few design decisions: > 1. We only want to output the files
[jira] [Updated] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15400: Description: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of date tiered file writer from HBASE-15389. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. And we want to output multiple files older than max age in the sizes of the maximum tier window size determined by base window size, windows per tier and max age. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. was: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of date tiered file writer from HBASE-15389. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. And we want to take output multiple files older than max age in the sizes of the maximum tier window size determined by base window size, windows per tier and max age. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This
[jira] [Commented] (HBASE-15389) Write out multiple files when compaction
[ https://issues.apache.org/jira/browse/HBASE-15389?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182051#comment-15182051 ] Clara Xiong commented on HBASE-15389: - While keeping the discussion and patch on how to get DTCP work with multiple output on HBASE-15400, could you help me to understand more about DateTieredCompactor and DateTieredMultipleWriter? They look pretty clever to me. Are you going to add unit tests just like TestStripeCompactor and TestStripeStoreEngine? I tried to back port to 98 but DateTieredCompactor relies on some new APIs of StoreFileScanner in 2.0. I am not sure whether we have to use the new ones. Would you mind give it a try too? > Write out multiple files when compaction > > > Key: HBASE-15389 > URL: https://issues.apache.org/jira/browse/HBASE-15389 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Duo Zhang > Attachments: HBASE-15389-uc.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15400: Description: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. This work is based on a prototype of date tiered file writer from HBASE-15389. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. was: When we compact, we can output multiple files along the current window boundaries. There are two use cases: 1. Major compaction: We want to output date tiered store files. 2. Bulk load files and the old file generated by major compaction before upgrading to DTCP. Pros: 1. Restore locality, process versioning, updates and deletes while maintaining the tiered layout. 2. The best way to fix a skewed layout. I am starting from a prototype of date tiered file writer from HBASE-15389 and will upload a patch soon. I have to call out a few design decisions: 1. We only want to output the files along all windows for major compaction. 2. For minor compaction, we don't want to output too many files, which will remain around because of current restriction of contiguous compaction by seq id. I will only output two files if all the files in the windows are being combined, one for the data within window and the other for the out-of-window tail. If there is any file in the window excluded from compaction, only one file will be output from compaction. When the windows are promoted, the situation of out of order data will gradually improve. 3. We have to pass the boundaries with the list of store file as a complete time snapshot instead of two separate calls because window layout is determined by the time the computation is called. So we will need new type of compaction request. 4. Since we will assign the same seq id for all output files, we need to sort by maxTimestamp subsequently. Right now all compaction policy gets the files sorted for StoreFileManager which sorts by seq id and other criteria. I will use this order for DTCP only, to avoid impacting other compaction policies. 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > This work is based on a prototype of date tiered file writer from > HBASE-15389. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of
[jira] [Commented] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15182045#comment-15182045 ] Clara Xiong commented on HBASE-15400: - After I thought about it again, a very large file from exploring compaction is probably fine if timestamp is reliable. But user application can specify timestamp for business logic. User may periodically bulk load files which have large time spans compared to base window size. So it is still possible that major compaction includes n files but have to write out > n files. Those cases are either not good candidate for date tiered compaction or we need to change the base window size to fit, but we still need to guarantee correctness in those extreme cases. > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > I am starting from a prototype of date tiered file writer from HBASE-15389 > and will upload a patch soon. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of current restriction of contiguous compaction by seq > id. I will only output two files if all the files in the windows are being > combined, one for the data within window and the other for the out-of-window > tail. If there is any file in the window excluded from compaction, only one > file will be output from compaction. When the windows are promoted, the > situation of out of order data will gradually improve. > 3. We have to pass the boundaries with the list of store file as a complete > time snapshot instead of two separate calls because window layout is > determined by the time the computation is called. So we will need new type of > compaction request. > 4. Since we will assign the same seq id for all output files, we need to sort > by maxTimestamp subsequently. Right now all compaction policy gets the files > sorted for StoreFileManager which sorts by seq id and other criteria. I will > use this order for DTCP only, to avoid impacting other compaction policies. > 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HBASE-15400) Using Multiple Output for Date Tiered Compaction
[ https://issues.apache.org/jira/browse/HBASE-15400?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Clara Xiong updated HBASE-15400: Status: Patch Available (was: Open) > Using Multiple Output for Date Tiered Compaction > > > Key: HBASE-15400 > URL: https://issues.apache.org/jira/browse/HBASE-15400 > Project: HBase > Issue Type: Sub-task > Components: Compaction >Reporter: Clara Xiong >Assignee: Clara Xiong > Fix For: 2.0.0 > > Attachments: HBASE-15400.patch > > > When we compact, we can output multiple files along the current window > boundaries. There are two use cases: > 1. Major compaction: We want to output date tiered store files. > 2. Bulk load files and the old file generated by major compaction before > upgrading to DTCP. > Pros: > 1. Restore locality, process versioning, updates and deletes while > maintaining the tiered layout. > 2. The best way to fix a skewed layout. > > I am starting from a prototype of date tiered file writer from HBASE-15389 > and will upload a patch soon. I have to call out a few design decisions: > 1. We only want to output the files along all windows for major compaction. > 2. For minor compaction, we don't want to output too many files, which will > remain around because of current restriction of contiguous compaction by seq > id. I will only output two files if all the files in the windows are being > combined, one for the data within window and the other for the out-of-window > tail. If there is any file in the window excluded from compaction, only one > file will be output from compaction. When the windows are promoted, the > situation of out of order data will gradually improve. > 3. We have to pass the boundaries with the list of store file as a complete > time snapshot instead of two separate calls because window layout is > determined by the time the computation is called. So we will need new type of > compaction request. > 4. Since we will assign the same seq id for all output files, we need to sort > by maxTimestamp subsequently. Right now all compaction policy gets the files > sorted for StoreFileManager which sorts by seq id and other criteria. I will > use this order for DTCP only, to avoid impacting other compaction policies. > 5. We need some cleanup of current design of StoreEngine and CompactionPolicy. -- This message was sent by Atlassian JIRA (v6.3.4#6332)