Skip to content

HBASE-22491 Separate the heap HFileBlock and offheap HFileBlock because the heap block won't need refCnt and save into prevBlocks list before shipping - #268

Merged
openinx merged 1 commit into
apache:HBASE-21879from
openinx:HBASE-21879
Jun 13, 2019

Conversation

@openinx

Copy link
Copy Markdown
Member

…se the heap block won't need refCnt and save into prevBlocks list before shipping

@openinxopeninx changed the title HBASE-22491 Separate the heap HFileBlock and offheap HFileBlock becau…HBASE-22491 Separate the heap HFileBlock and offheap HFileBlock because the heap block won't need refCnt and save into prevBlocks list before shippingMay 30, 2019
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec146Docker mode activated.
_ Prechecks _
+1hbaseanti0Patch does not have any anti-patterns.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 8 new or modified test files.
_ HBASE-21879 Compile Tests _
0mvndep25Maven dependency ordering for branch
+1mvninstall229HBASE-21879 passed
+1compile65HBASE-21879 passed
+1checkstyle80HBASE-21879 passed
+1shadedjars258branch has no errors when building our shaded downstream artifacts.
-1findbugs161hbase-server in HBASE-21879 has 11 extant Findbugs warnings.
+1javadoc49HBASE-21879 passed
_ Patch Compile Tests _
0mvndep11Maven dependency ordering for patch
+1mvninstall233the patch passed
+1compile100the patch passed
+1javac100the patch passed
-1checkstyle73hbase-server: The patch generated 1 new + 93 unchanged - 0 fixed = 94 total (was 93)
+1whitespace0The patch has no whitespace issues.
+1shadedjars310patch has no errors when building our shaded downstream artifacts.
+1hadoopcheck509Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0.
+1findbugs241the patch passed
+1javadoc50the patch passed
_ Other Tests _
+1unit172hbase-common in the patch passed.
-1unit10770hbase-server in the patch failed.
+1asflicense63The patch does not generate ASF License warnings.
13706
ReasonTests
Failed junit testshadoop.hbase.coprocessor.TestMetaTableMetrics
hadoop.hbase.io.hfile.TestHFileBlock
SubsystemReport/Notes
DockerClient=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/1/artifact/out/Dockerfile
GITHUB PR#268
Optional Testsdupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux a6eeb6ce0dcd 4.4.0-145-generic #171-Ubuntu SMP Tue Mar 26 12:43:40 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/testptch/patchprocess/precommit/personality/provided.sh
git revisionHBASE-21879 / 68c5129
mavenversion: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Default Java1.8.0_181
findbugsv3.1.11
findbugshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/1/artifact/out/branch-findbugs-hbase-server-warnings.html
checkstylehttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/1/artifact/out/diff-checkstyle-hbase-server.txt
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/1/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/1/testReport/
Max. process+thread count4114 (vs. ulimit of 10000)
modulesC: hbase-common hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/1/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

return;
}
if (this.curBlock != null) {
if (this.curBlock != null && !this.curBlock.isOnHeap()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

We still have this but in a different way. Instead of MemType the block knows its type.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Discussed with @anoopsjohn before, Maitaining a MemType inside the block will make the HFileBlock complex and easy to write a bug, because we need to handle the shared & non-shared logics at the same paths or methods.
Separating them into two classes will be more clear.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ya its ok we dont keep the memtype in single class type. But why we can not create 2 block types SharedMem vs ExclusiveMem rather than on heap vs off heap?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Addressed this in the new patch. Thanks.

*/
boolean isOnHeap() {
public boolean isOnHeap() {
return buf.hasArray();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Nit : Just return 'false' here? Since you have HeapHfileBlock now where isOnheap() is always true?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yes, can be.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Think about this again, lots of UT use the HFileBlock with heap buf , if just return false here, I guess those UT will be failure.... so plan to keep this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why cant do the other way around? Like new class type for the pooled BB backed blocks?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Thought about this before, our ByteBuffAllocator won't allocate pooled heap BB , also if allocate a offheap BB, then it must be a pooled one. That's to say, heapBB = exclusiveBB, offheapBB = sharedBB. So if it's a heapBB, then must be a exclusiveBB..

@anoopsjohnanoopsjohnJun 12, 2019

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Think about this again, lots of UT use the HFileBlock with heap buf , if just return false here, I guess those UT will be failure.... so plan to keep this.

Then why cant you just do the reverse way? HFileBlock will be on heap one. So the UTs also dont need any change. We will have an extension to it. Name it like SharedMemHFileBlock or OffheapHFileBlock (I prefer the former). This will look a bit strange here where the HFileBlock as such is not telling whether it is on heap or off heap and we have a On heap specific extended class again!

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

OK, let me create two classes: one named ExclusiveMemHFileBlock , the other one is SharedMemHFileBlock, will be easy to see the difference between those two kinds of blocks.

@ramkrish86

Copy link
Copy Markdown
Contributor

Just few nits and questions. Rest looks good to me.

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec233Docker mode activated.
_ Prechecks _
+1hbaseanti0Patch does not have any anti-patterns.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 9 new or modified test files.
_ HBASE-21879 Compile Tests _
0mvndep13Maven dependency ordering for branch
+1mvninstall242HBASE-21879 passed
+1compile72HBASE-21879 passed
+1checkstyle90HBASE-21879 passed
+1shadedjars265branch has no errors when building our shaded downstream artifacts.
-1findbugs172hbase-server in HBASE-21879 has 11 extant Findbugs warnings.
+1javadoc51HBASE-21879 passed
_ Patch Compile Tests _
0mvndep15Maven dependency ordering for patch
+1mvninstall249the patch passed
+1compile72the patch passed
+1javac72the patch passed
+1checkstyle94the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedjars269patch has no errors when building our shaded downstream artifacts.
+1hadoopcheck498Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0.
+1findbugs255the patch passed
+1javadoc51the patch passed
_ Other Tests _
+1unit166hbase-common in the patch passed.
-1unit15783hbase-server in the patch failed.
+1asflicense68The patch does not generate ASF License warnings.
18805
ReasonTests
Failed junit testshadoop.hbase.client.TestFromClientSide3
hadoop.hbase.client.TestFromClientSide
SubsystemReport/Notes
DockerClient=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/2/artifact/out/Dockerfile
GITHUB PR#268
Optional Testsdupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 1762c457c9f3 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux
Build toolmaven
Personality/testptch/patchprocess/precommit/personality/provided.sh
git revisionHBASE-21879 / 68c5129
mavenversion: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Default Java1.8.0_181
findbugsv3.1.11
findbugshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/2/artifact/out/branch-findbugs-hbase-server-warnings.html
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/2/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/2/testReport/
Max. process+thread count5120 (vs. ulimit of 10000)
modulesC: hbase-common hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/2/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

@openinx

Copy link
Copy Markdown
MemberAuthor

The two timeout UT TestFromClientSide3/TestFromClientSide are unrelated. Any other concerns ? @anoopsjohn@ramkrish86

@openinx

Copy link
Copy Markdown
MemberAuthor

Rebased HBASE-21879 branch with master branch , and resolve all conflicts now. Let's see what hadoop QA will say.

*/
boolean isOnHeap() {
public boolean isOnHeap() {
return buf.hasArray();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why cant do the other way around? Like new class type for the pooled BB backed blocks?

return;
}
if (this.curBlock != null) {
if (this.curBlock != null && !this.curBlock.isOnHeap()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ya its ok we dont keep the memtype in single class type. But why we can not create 2 block types SharedMem vs ExclusiveMem rather than on heap vs off heap?

}

public HFileBlock build() {
if (buf.hasArray()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I still feel we should take any assumptions here. Better keep the notion of whether the block is backed by an exclusive or shared memory area. Based on that create different type of object. Here we always see whether on heap and if so exclusive memory. Why we have to drop that way?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Why we have to drop that way?

You mean MemoryType ? It's a concept around all the IOEngine / BlockCache / ByteBuffAllocator /HFileBlock etc... Actually, as I commented above, heap or offheap can decide the shared or non-shared. Then all those MemoryType places can be uniformed in this build() method here, I'd prefer this simple implementation.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Dont mean to keep the memory Type. That is not needed in HFileBlock. Even in the Builder too.. A setter which takes boolean to say whether it is exclusive memory or not would have been enough. Any way this assumption is true as of now. So its ok a continue this way if u strongly feel so

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

OK, will do. Thanks.

// We don't have to keep ref to EXCLUSIVE type of block
if (this.curBlock != null) {
// We don't have to keep ref to heap block
if (this.curBlock != null && !this.curBlock.isOnHeap()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ya here only difference is you will see whether the block is a Shared memory backed. If so add ref. We dont really worry whether it is off heap or on heap.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Adding to prevBlocks is only at these 2 places?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Adding to prevBlocks is only at these 2 places?

Yeah, check all the places, only the two add here.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Fine


@Override
public HeapHFileBlock retain() {
// do nothing

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This is good.

@@ -373,7 +373,7 @@ private Cacheable asReferencedHeapBlock(Cacheable buf) {
if (buf instanceof HFileBlock) {
HFileBlock blk = ((HFileBlock) buf);
if (!blk.isOnHeap()) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Here also it will be if shared memory type of block

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

At least the API name in HFileBlock we can keep like isSharedMemory() instead of this on heap vs off heap? That will be more clear when reading parts of code like here. WHy we do this clone.

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

At least the API name in HFileBlock we can keep like isSharedMemory() instead of this on heap vs off heap?

Will impl this in the new patch.

WHy we do this clone.

Because it's a offheap one, while our LRU only keep heap block, so need a deep clone here, please see: HBASE-22127

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

That was not a Q why we clone. :-) My bad. I put a '.' in between. I mean with that name change and using that API in other code places like above, it will be more clear for any new reader to understand why we do this clone.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
0reexec27Docker mode activated.
_ Prechecks _
+1hbaseanti0Patch does not have any anti-patterns.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 9 new or modified test files.
_ HBASE-21879 Compile Tests _
0mvndep26Maven dependency ordering for branch
+1mvninstall247HBASE-21879 passed
+1compile73HBASE-21879 passed
+1checkstyle91HBASE-21879 passed
+1shadedjars265branch has no errors when building our shaded downstream artifacts.
+1findbugs237HBASE-21879 passed
+1javadoc53HBASE-21879 passed
_ Patch Compile Tests _
0mvndep16Maven dependency ordering for patch
+1mvninstall237the patch passed
+1compile71the patch passed
+1javac71the patch passed
+1checkstyle89the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedjars266patch has no errors when building our shaded downstream artifacts.
+1hadoopcheck727Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1findbugs259the patch passed
+1javadoc51the patch passed
_ Other Tests _
+1unit165hbase-common in the patch passed.
+1unit8146hbase-server in the patch passed.
+1asflicense48The patch does not generate ASF License warnings.
11427
SubsystemReport/Notes
DockerClient=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/3/artifact/out/Dockerfile
GITHUB PR#268
Optional Testsdupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 76111f40bf28 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 10:58:50 UTC 2018 x86_64 GNU/Linux
Build toolmaven
Personality/testptch/patchprocess/precommit/personality/provided.sh
git revisionHBASE-21879 / 810d287
mavenversion: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Default Java1.8.0_181
findbugsv3.1.11
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/3/testReport/
Max. process+thread count5115 (vs. ulimit of 10000)
modulesC: hbase-common hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/3/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

@Apache9Apache9 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I still stand my point that this is not the most important thing for now. We should change the way that we release ByteBuffs, so we could solve the problem for both on-heap and off-heap ByteBuffs. And later we could see if we can optimize for on-heap ByteBuffs. In general, I think we will make use of off-heap ByteBuffs as much as possible so I do not think it worth to spend so much time to optimize for on-heap ByteBuffs right now...

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
0reexec30Docker mode activated.
_ Prechecks _
+1hbaseanti0Patch does not have any anti-patterns.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 9 new or modified test files.
_ HBASE-21879 Compile Tests _
0mvndep15Maven dependency ordering for branch
+1mvninstall243HBASE-21879 passed
+1compile75HBASE-21879 passed
+1checkstyle95HBASE-21879 passed
+1shadedjars268branch has no errors when building our shaded downstream artifacts.
+1findbugs238HBASE-21879 passed
+1javadoc51HBASE-21879 passed
_ Patch Compile Tests _
0mvndep15Maven dependency ordering for patch
+1mvninstall241the patch passed
+1compile75the patch passed
+1javac75the patch passed
+1checkstyle93the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedjars270patch has no errors when building our shaded downstream artifacts.
+1hadoopcheck730Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1findbugs250the patch passed
+1javadoc53the patch passed
_ Other Tests _
+1unit171hbase-common in the patch passed.
+1unit8330hbase-server in the patch passed.
+1asflicense51The patch does not generate ASF License warnings.
11618
SubsystemReport/Notes
DockerClient=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/4/artifact/out/Dockerfile
GITHUB PR#268
Optional Testsdupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 57d25dbaaee0 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux
Build toolmaven
Personality/testptch/patchprocess/precommit/personality/provided.sh
git revisionHBASE-21879 / a6e3d5b
mavenversion: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Default Java1.8.0_181
findbugsv3.1.11
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/4/testReport/
Max. process+thread count5243 (vs. ulimit of 10000)
modulesC: hbase-common hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/4/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

.withNextBlockOnDiskSize(nextBlockOnDiskSize)
.withHFileContext(fileContext)
.withByteBuffAllocator(allocator)
.withOffset(offset)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why withOffset() been called twice?

Copy link
Copy Markdown
MemberAuthor

Choose a reason for hiding this comment

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

Yeah, Let me fix this. Thanks.

@anoopsjohnanoopsjohn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Some comments added

@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec28Docker mode activated.
_ Prechecks _
+1hbaseanti0Patch does not have any anti-patterns.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 11 new or modified test files.
_ HBASE-21879 Compile Tests _
0mvndep23Maven dependency ordering for branch
+1mvninstall228HBASE-21879 passed
+1compile64HBASE-21879 passed
+1checkstyle82HBASE-21879 passed
+1shadedjars260branch has no errors when building our shaded downstream artifacts.
+1findbugs229HBASE-21879 passed
+1javadoc51HBASE-21879 passed
_ Patch Compile Tests _
0mvndep11Maven dependency ordering for patch
+1mvninstall223the patch passed
+1compile67the patch passed
+1javac67the patch passed
-1checkstyle61hbase-server: The patch generated 2 new + 120 unchanged - 0 fixed = 122 total (was 120)
+1whitespace0The patch has no whitespace issues.
+1shadedjars260patch has no errors when building our shaded downstream artifacts.
+1hadoopcheck689Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1findbugs333the patch passed
+1javadoc62the patch passed
_ Other Tests _
+1unit198hbase-common in the patch passed.
-1unit13504hbase-server in the patch failed.
+1asflicense61The patch does not generate ASF License warnings.
16778
ReasonTests
Failed junit testshadoop.hbase.client.TestAsyncTableGetMultiThreaded
hadoop.hbase.io.hfile.bucket.TestBucketCache
hadoop.hbase.master.balancer.TestStochasticLoadBalancerRegionReplicaSameHosts
SubsystemReport/Notes
DockerClient=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/5/artifact/out/Dockerfile
GITHUB PR#268
Optional Testsdupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 8563b2ea564a 4.4.0-145-generic #171-Ubuntu SMP Tue Mar 26 12:43:40 UTC 2019 x86_64 GNU/Linux
Build toolmaven
Personality/testptch/patchprocess/precommit/personality/provided.sh
git revisionHBASE-21879 / a6e3d5b
mavenversion: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Default Java1.8.0_181
findbugsv3.1.11
checkstylehttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/5/artifact/out/diff-checkstyle-hbase-server.txt
unithttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/5/artifact/out/patch-unit-hbase-server.txt
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/5/testReport/
Max. process+thread count4443 (vs. ulimit of 10000)
modulesC: hbase-common hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/5/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

@openinx

Copy link
Copy Markdown
MemberAuthor

Addressed the failed UT & checkstyle from HBaseQA.

@Apache-HBase

Copy link
Copy Markdown

🎊 +1 overall

VoteSubsystemRuntimeComment
0reexec26Docker mode activated.
_ Prechecks _
+1hbaseanti0Patch does not have any anti-patterns.
+1@author0The patch does not contain any @author tags.
+1test4tests0The patch appears to include 11 new or modified test files.
_ HBASE-21879 Compile Tests _
0mvndep24Maven dependency ordering for branch
+1mvninstall234HBASE-21879 passed
+1compile69HBASE-21879 passed
+1checkstyle85HBASE-21879 passed
+1shadedjars256branch has no errors when building our shaded downstream artifacts.
+1findbugs214HBASE-21879 passed
+1javadoc47HBASE-21879 passed
_ Patch Compile Tests _
0mvndep12Maven dependency ordering for patch
+1mvninstall230the patch passed
+1compile68the patch passed
+1javac68the patch passed
+1checkstyle88the patch passed
+1whitespace0The patch has no whitespace issues.
+1shadedjars261patch has no errors when building our shaded downstream artifacts.
+1hadoopcheck722Patch does not cause any errors with Hadoop 2.8.5 2.9.2 or 3.1.2.
+1findbugs244the patch passed
+1javadoc52the patch passed
_ Other Tests _
+1unit171hbase-common in the patch passed.
+1unit8340hbase-server in the patch passed.
+1asflicense59The patch does not generate ASF License warnings.
11536
SubsystemReport/Notes
DockerClient=17.05.0-ce Server=17.05.0-ce base: https://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/6/artifact/out/Dockerfile
GITHUB PR#268
Optional Testsdupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile
unameLinux 46ba7a988f9e 4.4.0-138-generic #164-Ubuntu SMP Tue Oct 2 17:16:02 UTC 2018 x86_64 GNU/Linux
Build toolmaven
Personality/testptch/patchprocess/precommit/personality/provided.sh
git revisionHBASE-21879 / a6e3d5b
mavenversion: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z)
Default Java1.8.0_181
findbugsv3.1.11
Test Resultshttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/6/testReport/
Max. process+thread count4759 (vs. ulimit of 10000)
modulesC: hbase-common hbase-server U: .
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/6/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

*/
boolean isOnHeap() {
return buf.hasArray();
public boolean isSharedMem() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Still we create HFileBlock only in tests? If not we could have left this API abstract only and even HFileBlock. That would have been best. May be in a follow up we can do that. Just renaming will be enough. In this jira keep it this way only. Fine.

}

static HFileBlock shallowClone(HFileBlock blk) {
return createBuilder(blk).withShared(!blk.buf.hasArray()).build();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

blk.buf.hasArray() -> Instead use blk.isShared()

@anoopsjohnanoopsjohn left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Few more minor comments. +1 to commit after that

…se the heap block won't need refCnt and save into prevBlocks list before shipping
@openinx
openinx merged commit e4a9147 into apache:HBASE-21879Jun 13, 2019
@Apache-HBase

Copy link
Copy Markdown

💔 -1 overall

VoteSubsystemRuntimeComment
0reexec0Docker mode activated.
-1patch7#268 does not apply to HBASE-21879. Rebase required? Wrong Branch? See https://yetus.apache.org/documentation/in-progress/precommit-patchnames for help.
SubsystemReport/Notes
GITHUB PR#268
Console outputhttps://builds.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-268/7/console
Powered byApache Yetus 0.9.0 http://yetus.apache.org

This message was automatically generated.

@openinx
openinx deleted the HBASE-21879 branch June 13, 2019 06:34
asfgit pushed a commit that referenced this pull request Jun 18, 2019
…se the heap block won't need refCnt and save into prevBlocks list before shipping (#268)
asfgit pushed a commit that referenced this pull request Jun 24, 2019
…se the heap block won't need refCnt and save into prevBlocks list before shipping (#268)
openinx added a commit to openinx/hbase that referenced this pull request Jun 25, 2019
…se the heap block won't need refCnt and save into prevBlocks list before shipping (apache#268)
infraio pushed a commit to infraio/hbase that referenced this pull request Aug 17, 2020
…se the heap block won't need refCnt and save into prevBlocks list before shipping (apache#268)
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@openinx@Apache-HBase@ramkrish86@anoopsjohn@Apache9