[GitHub] [hbase] Apache-HBase commented on pull request #3842: HBASE-26421 Use HFileLink file to replace entire file‘s reference whe…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3842:
URL: https://github.com/apache/hbase/pull/3842#issuecomment-972643464


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 26s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  1s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 10s |  master passed  |
   | +1 :green_heart: |  compile  |   3m 18s |  master passed  |
   | +1 :green_heart: |  checkstyle  |   1m 11s |  master passed  |
   | +1 :green_heart: |  spotbugs  |   2m  6s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 51s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 11s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 11s |  the patch passed  |
   | +1 :green_heart: |  checkstyle  |   1m  9s |  hbase-server: The patch 
generated 0 new + 258 unchanged - 2 fixed = 258 total (was 260)  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +1 :green_heart: |  hadoopcheck  |  19m 27s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 15s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 17s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  49m 28s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3842 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 0594f4b1d1c6 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 
23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 1c47f80d83 |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | Max. process+thread count | 96 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] sunhelly opened a new pull request #3854: Backport HBASE-26421 Use HFileLink file to replace entire file's refe…

2021-11-18 Thread GitBox


sunhelly opened a new pull request #3854:
URL: https://github.com/apache/hbase/pull/3854


   …rence when splitting


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Commented] (HBASE-23612) Update pom.xml to use another 2.5.0 protoc as external protobuf

2021-11-18 Thread Mark Jens (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-23612?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17445761#comment-17445761
 ] 

Mark Jens commented on HBASE-23612:
---

Hi,

Is it possible to downport this improvement to branch-2.4 ?

Currently it is not possible to build Apache Phoenix on Linux ARM64 
([https://lists.apache.org/thread/kzlyl6d3ynfydo98nko5xvy71h1gjcpy).]

Phoenix does not use HBase as a Maven dependency but needs to build it locally 
with Hadoop3 profile.

And since Phoenix supports only HBase 2.x it is not possible to build on ARM64 
without manually patching HBase.

> Update pom.xml to use another 2.5.0 protoc as external protobuf
> ---
>
> Key: HBASE-23612
> URL: https://issues.apache.org/jira/browse/HBASE-23612
> Project: HBase
>  Issue Type: Sub-task
>  Components: build
>Reporter: zhao bo
>Assignee: zhao bo
>Priority: Major
> Fix For: 3.0.0-alpha-1
>
>
> Currently, there is no protoc 2.5.0 for release [1]. So we can make a new one 
> for ARM specific. For make sure that could work on ARM.
> We will introduce a new ARM artifact for protoc, group_id is 
> org.openlabtesting.protobuf .. This is just used for protobuf-maven-plugin to 
> compile .proto files. As the 3.X version of protoc support ARM already. So 
> this won't affect the internal protoc usage, which is 3.5.1-1 now.
>  
> [1][https://github.com/protocolbuffers/protobuf/issues/3844#issuecomment-343355946]



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3854: Backport HBASE-26421 Use HFileLink file to replace entire file's refe…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3854:
URL: https://github.com/apache/hbase/pull/3854#issuecomment-972683982


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   6m 41s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ branch-2 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 18s |  branch-2 passed  |
   | +1 :green_heart: |  compile  |   3m 24s |  branch-2 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 21s |  branch-2 passed  |
   | +1 :green_heart: |  spotbugs  |   2m 14s |  branch-2 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 53s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 26s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 26s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m 20s |  hbase-server: The patch 
generated 1 new + 291 unchanged - 2 fixed = 292 total (was 293)  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +1 :green_heart: |  hadoopcheck  |  13m 51s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 21s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 13s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  51m 33s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3854 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 7035fb193417 4.15.0-153-generic #160-Ubuntu SMP Thu Jul 29 
06:54:29 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | branch-2 / 4a8da47f74 |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | checkstyle | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 12500) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3842: HBASE-26421 Use HFileLink file to replace entire file‘s reference whe…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3842:
URL: https://github.com/apache/hbase/pull/3842#issuecomment-972749290


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m  8s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 51s |  master passed  |
   | +1 :green_heart: |  compile  |   1m  1s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   8m 21s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 39s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 54s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m  2s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m  2s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m 14s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 39s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 153m 47s |  hbase-server in the patch passed.  
|
   |  |   | 184m 35s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3842 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 38149535b1f1 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 
17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 1c47f80d83 |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/testReport/
 |
   | Max. process+thread count | 4857 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Commented] (HBASE-26460) Close netty channel causes regionserver crash in handleTooBigRequest

2021-11-18 Thread Lijin Bin (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26460?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17445854#comment-17445854
 ] 

Lijin Bin commented on HBASE-26460:
---

I add two config , disable rpc buffer reuse, and encounter Invalid key 
length/Invalid value length error, so i guess regionserver receive corrupt 
request and the problem is at client code.
{code}

hbase.rpc.server.impl
org.apache.hadoop.hbase.ipc.SimpleRpcServer


hbase.server.allocator.pool.enabled
false

{code}

> Close netty channel causes regionserver crash in handleTooBigRequest
> 
>
> Key: HBASE-26460
> URL: https://issues.apache.org/jira/browse/HBASE-26460
> Project: HBase
>  Issue Type: Bug
>  Components: rpc
>Affects Versions: 3.0.0-alpha-1, 2.0.0
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Critical
>
> In HBASE-26170, I proposed the coredump problem after calling 
> handleTooBigRequest, but that issue did not resolve the regionserver crash 
> problem, which occurs before the WAL corruption in HBASE-24984.
> After looking through the codes, I think the problem is in CLOSE channel. 
> The direct byte buffer used by RPC call request is allocated by Netty, though 
> we add a reference count to record when to release the direct byte buffer, 
> the byte buffer is managed by Netty actually. It is allocated from Netty 
> PoolArena, and is released there. 
> When the HBase ipc handler is processing a request, the Netty channel handler 
> can process the channel events and message coming back in succession. When 
> there is a too big request by NettyRpcFrameDecoder, the channel will be 
> closed, and all the resources of the channel will be released, though there 
> is HBase ipc handlers using the direct byte buffer to process previous 
> requests.
> Netty provides two methods to request the pooled byte buffer, one is through 
> the PoolThreadCache, each handler thread owns a private one. Another is 
> through PoolArena#allocateNormal. Each ChannelHandler has a local 
> PoolThreadCache.
> When a new Netty channel is created, a new ChannelHandler instance is 
> created. 
> And when a channel is closed, the relevant channel handler will be removed 
> from the pipeline. I found this annotation in the Channel class of Netty,
> {code:java}
> It is important to call close() or close(ChannelPromise) to release all 
> resources once you are done with the Channel. This ensures all resources are 
> released in a proper way, i.e. filehandles. {code}
> And when channel handler is removed in ByteToMessageDecoder#handlerRemoved, 
> it will release the byte buffer,
> {code:java}
> @Override
> public final void handlerRemoved(ChannelHandlerContext ctx) throws Exception {
> if (decodeState == STATE_CALLING_CHILD_DECODE) {
> decodeState = STATE_HANDLER_REMOVED_PENDING;
> return;
> }
> ByteBuf buf = cumulation;
> if (buf != null) {
> // Directly set this to null so we are sure we not access it in any 
> other method here anymore.
> cumulation = null;
> int readable = buf.readableBytes();
> if (readable > 0) {
> ByteBuf bytes = buf.readBytes(readable);
> buf.release();
> ctx.fireChannelRead(bytes);
> } else {
> buf.release();
> }
> ... {code}
> We should not close the channel when encountering too big request, I think it 
> should just skip the bytes like that in LengthFieldBasedFrameDecoder.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is used.

2021-11-18 Thread chenglei (Jira)
chenglei created HBASE-26465:


 Summary: MemStoreLAB may be released early when its SegmentScanner 
is used. 
 Key: HBASE-26465
 URL: https://issues.apache.org/jira/browse/HBASE-26465
 Project: HBase
  Issue Type: Bug
Reporter: chenglei






--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is used.

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Affects Version/s: 2.4.8
   3.0.0-alpha-1

> MemStoreLAB may be released early when its SegmentScanner is used. 
> ---
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3854: Backport HBASE-26421 Use HFileLink file to replace entire file's refe…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3854:
URL: https://github.com/apache/hbase/pull/3854#issuecomment-972779168


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 33s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  7s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ branch-2 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 55s |  branch-2 passed  |
   | +1 :green_heart: |  compile  |   0m 56s |  branch-2 passed  |
   | +1 :green_heart: |  shadedjars  |   6m 33s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 40s |  branch-2 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 34s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m  0s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m  0s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   6m 32s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 38s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 146m 57s |  hbase-server in the patch passed.  
|
   |  |   | 173m 44s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3854 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 8f767adf1e6b 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 
23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | branch-2 / 4a8da47f74 |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/testReport/
 |
   | Max. process+thread count | 3960 (vs. ulimit of 12500) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is used.

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: HBASE-26144 moved {{MemStore.clearSnapshot}} out of 
{{HStore#lock}}, but I find that because {{MemStore.clearSnapshot}}  closing 
{{DefaultMemStore#snapshot}}, which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, 

> MemStoreLAB may be released early when its SegmentScanner is used. 
> ---
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of {{HStore#lock}}, but I 
> find that because {{MemStore.clearSnapshot}}  closing 
> {{DefaultMemStore#snapshot}}, which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore.clearSnapshot}} execute conurrently, 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3842: HBASE-26421 Use HFileLink file to replace entire file‘s reference whe…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3842:
URL: https://github.com/apache/hbase/pull/3842#issuecomment-972823548


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   6m 44s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 59s |  master passed  |
   | +1 :green_heart: |  compile  |   1m 40s |  master passed  |
   | +1 :green_heart: |  shadedjars  |  10m 32s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 54s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   6m  6s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 37s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 37s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |  10m 48s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 54s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 241m 14s |  hbase-server in the patch passed.  
|
   |  |   | 288m 28s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3842 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux f77dc3d10b6b 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / 1c47f80d83 |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/testReport/
 |
   | Max. process+thread count | 2944 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3842/5/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is used.

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: HBASE-26144 moved {{MemStore.clearSnapshot}} out of 
{{HStore#lock}}, but I find that because {{MemStore.clearSnapshot}}  closing 
{{DefaultMemStore#snapshot}}, which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner }} 
is scanning.  (was: HBASE-26144 moved {{MemStore.clearSnapshot}} out of 
{{HStore#lock}}, but I find that because {{MemStore.clearSnapshot}}  closing 
{{DefaultMemStore#snapshot}}, which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, )

> MemStoreLAB may be released early when its SegmentScanner is used. 
> ---
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of {{HStore#lock}}, but I 
> find that because {{MemStore.clearSnapshot}}  closing 
> {{DefaultMemStore#snapshot}}, which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
> {{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Summary: MemStoreLAB may be released early when its SegmentScanner is 
scanning  (was: MemStoreLAB may be released early when its SegmentScanner is 
used. )

> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of {{HStore#lock}}, but I 
> find that because {{MemStore.clearSnapshot}}  closing 
> {{DefaultMemStore#snapshot}}, which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
> {{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock 
of {{HStore#lock}}, but I find that because {{MemStore.clearSnapshot}}  closing 
{{DefaultMemStore#snapshot}}, which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner }} 
is scanning.  (was: HBASE-26144 moved {{MemStore.clearSnapshot}} out of 
{{HStore#lock}}, but I find that because {{MemStore.clearSnapshot}}  closing 
{{DefaultMemStore#snapshot}}, which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner }} 
is scanning.)

> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but I find that because {{MemStore.clearSnapshot}}  closing 
> {{DefaultMemStore#snapshot}}, which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
> {{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.
Considering follow thread 

  was:HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.
> Considering follow thread 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock 
of {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.  (was: HBASE-26144 moved {{MemStore.clearSnapshot}} out of 
write lock of {{HStore#lock}}, but I find that because 
{{MemStore.clearSnapshot}}  closing {{DefaultMemStore#snapshot}}, which may be 
used by {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} 
and {{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{MemStore.clearSnapshot}}  may be released early when its {{SegmentScanner }} 
is scanning.)

> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3854: Backport HBASE-26421 Use HFileLink file to replace entire file's refe…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3854:
URL: https://github.com/apache/hbase/pull/3854#issuecomment-972827336


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   6m 44s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  7s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ branch-2 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m  7s |  branch-2 passed  |
   | +1 :green_heart: |  compile  |   1m 13s |  branch-2 passed  |
   | +1 :green_heart: |  shadedjars  |   8m  6s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 43s |  branch-2 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 48s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 14s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m  0s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 41s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 204m 37s |  hbase-server in the patch passed.  
|
   |  |   | 243m 18s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3854 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 045d5d78f7b7 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | branch-2 / 4a8da47f74 |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/testReport/
 |
   | Max. process+thread count | 2693 (vs. ulimit of 12500) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3854/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.
Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.
2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.
4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.
5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore.clearSnapshot}} execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.
Considering follow thread 


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
>{{HStore#updateStorefiles}} after completed flushing memStore to hfile.
> 3.The scan thread starts and stopping after 
> {{DefaultMemStore#getSnapshotSegments}} in
>{{DefaultMemStore#getScanners}},here the scan thread gets the 
> {{DefaultMemStore#snapshot}} which is created by the flush thread.
> 4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
> {{DefaultMemStore#snapshot}},because the reference count of the corresponding
>{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
> are recycled.
> 5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
> {{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
>reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s 
> in corresponding {{MemStoreLABImpl}} are recycled by step 4, and these 
> {{Chunk}}s may
>be overwritten by other write threads, which may cause serious problem.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.
Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.
2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.
4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.
5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
> }} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
>{{HStore#updateStorefiles}} after completed flushing memStore to hfile.
> 3.The scan thread starts and stopping after 
> {{DefaultMemStore#getSnapshotSegments}} in
>{{DefaultMemStore#getScanners}},here the scan thread gets the 
> {{DefaultMemStore#snapshot}} which is created by the flush thread.
> 4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
> {{DefaultMemStore#snapshot}},because the reference count of the corresponding
>{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
> are re

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner 
}} is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its 
> {{SegmentScanner}} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
>{{HStore#updateStorefiles}} after completed flushing memStore to hfile.
> 3.The scan thread starts and stopping after 
> {{DefaultMemStore#getSnapshotSegments}} in
>{{DefaultMemStore#getScanners}},here the scan thread gets the 
> {{DefaultMemStore#snapshot}} which is created by the flush thread.
> 4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
> {{DefaultMemStore#snapshot}},because the reference count of the corresponding
>{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
> are

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunk}}s in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its 
> {{SegmentScanner}} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
>{{HStore#updateStorefiles}} after completed flushing memStore to hfile.
> 3.The scan thread starts and stopping after 
> {{DefaultMemStore#getSnapshotSegments}} in
>{{DefaultMemStore#getScanners}},here the scan thread gets the 
> {{DefaultMemStore#snapshot}} which is created by the flush thread.
> 4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
> {{DefaultMemStore#snapshot}},because the reference count of the corresponding
>{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
> are 

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may
   be overwritten by other write threads, which may cause serious problem.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunk}}s 
may
   be overwritten by other write threads, which may cause serious problem.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its 
> {{SegmentScanner}} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
>{{HStore#updateStorefiles}} after completed flushing memStore to hfile.
> 3.The scan thread starts and stopping after 
> {{DefaultMemStore#getSnapshotSegments}} in
>{{DefaultMemStore#getScanners}},here the scan thread gets the 
> {{DefaultMemStore#snapshot}} which is created by the flush thread.
> 4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
> {{DefaultMemStore#snapshot}},because the reference count of the corresponding
>{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
> are 

[jira] [Created] (HBASE-26466) Immutable timeseries usecase - Create new region rather than split existing one

2021-11-18 Thread Viraj Jasani (Jira)
Viraj Jasani created HBASE-26466:


 Summary: Immutable timeseries usecase - Create new region rather 
than split existing one
 Key: HBASE-26466
 URL: https://issues.apache.org/jira/browse/HBASE-26466
 Project: HBase
  Issue Type: Brainstorming
Reporter: Viraj Jasani


For insertion of immutable data usecase (specifically time-series data), region 
split mechanism doesn't seem to provide better availability when ingestion rate 
is very high. When we ingest lot of data, the region split policy tries to 
split the given hot region based on the size (either size of all stores 
combined or size of any single store exceeding max file size configured) if we 
consider default {_}SteppingSplitPolicy{_}. The latest hot regions tend to 
receive all latest inserts. When the region is split, the first half of the 
region (say daughterA) stays on the same server whereas the second half 
(daughterB) region – likely to become another hot region because all new latest 
updates come to second half region in the sequential write fashion – is moved 
out to other servers in the cluster. Hence, once new daughter region is 
created, client traffic will be redirected to another server. Client requests 
will be piled up when region split is triggered till new daughters come alive 
and once done, client will have to request meta for updated daughter region and 
redirect traffic to new server.

If we could have configurable region creation strategy that 1) keeps the split 
disabled for the given table, and 2) create new region dynamically with 
lexicographically higher start key on the same server and update it's own 
region boundary, the client will have to look up meta once and continue 
ingestion without any degraded SLA caused by region split transitions.

Note: region split might also encounter some complications, requiring the 
procedure to be rolled back from some step, or continue with internal retries, 
eventually further delaying the ingestion from clients.

 

There are some complications around updating live region's start and end keys 
as this key range is immutable. We could brainstorm ideas around making them 
optionally mutable and any issues around them. For instance, client might 
continue writing data to the region with updated end key but writes will fail 
and hence, they will lookup in meta for updated key-space range of the table.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] sunhelly merged pull request #3842: HBASE-26421 Use HFileLink file to replace entire file‘s reference whe…

2021-11-18 Thread GitBox


sunhelly merged pull request #3842:
URL: https://github.com/apache/hbase/pull/3842


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] sunhelly merged pull request #3854: Backport HBASE-26421 Use HFileLink file to replace entire file's refe…

2021-11-18 Thread GitBox


sunhelly merged pull request #3854:
URL: https://github.com/apache/hbase/pull/3854


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] wchevreuil commented on a change in pull request #3845: HBASE-26454 CreateTableProcedure still relies on temp dir and renames…

2021-11-18 Thread GitBox


wchevreuil commented on a change in pull request #3845:
URL: https://github.com/apache/hbase/pull/3845#discussion_r752265249



##
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.java
##
@@ -474,8 +474,8 @@ void createTableDirectories(TableName tableName) throws 
IOException {
*/
   List getTableRootPaths(TableName tableName, boolean 
includeSnapshotPath)
   throws IOException {
-List paths = Lists.newArrayList(pathHelper.getTmpTableDir(tableName),

Review comment:
   Found out this was creating table tmp dir on 
CreateTableProcedure.CREATE_TABLE_POST_OPERATION when ACL is enabled,

##
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/security/access/SnapshotScannerHDFSAclHelper.java
##
@@ -474,8 +474,8 @@ void createTableDirectories(TableName tableName) throws 
IOException {
*/
   List getTableRootPaths(TableName tableName, boolean 
includeSnapshotPath)
   throws IOException {
-List paths = Lists.newArrayList(pathHelper.getTmpTableDir(tableName),

Review comment:
   Found out this was creating table tmp dir on 
CreateTableProcedure.CREATE_TABLE_POST_OPERATION when ACL is enabled.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Resolved] (HBASE-26421) Use HFileLink file to replace entire file‘s reference when splitting

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha resolved HBASE-26421.

Fix Version/s: 2.5.0
   3.0.0-alpha-2
   Resolution: Fixed

Merged to master, branch-2 and branch-2.4. Thanks [~zhangduo] for reviewing.

> Use HFileLink file to replace entire file‘s reference when splitting
> 
>
> Key: HBASE-26421
> URL: https://issues.apache.org/jira/browse/HBASE-26421
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2
>
>
> ++When splitting store files, if a file should be owned by only one child 
> region, then there will be an entire file's reference in the child region. We 
> can use HFileLink files, just like those in snapshot tables, to replace the 
> reference files that refer to entire files.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26422) Support priority select reference files for compaction of stripe store engine

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-26422:
---
Summary: Support priority select reference files for compaction of stripe 
store engine  (was: Support only select reference files for the compaction 
after split)

> Support priority select reference files for compaction of stripe store engine
> -
>
> Key: HBASE-26422
> URL: https://issues.apache.org/jira/browse/HBASE-26422
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Major
>
> The reference files are those with these patterns, . 
> and =-..
> We can compact these reference files in the first compaction after splitting, 
> instead of a major compaction.
> Then when the region only has normal hfiles and HFileLink files, it can be 
> splitted once more.
> From the overall perspective, it can reduce compaction IOs.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26423) Support move linked data files between regions of the same table when compacting in stripe store engine

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-26423:
---
Summary: Support move linked data files between regions of the same table 
when compacting in stripe store engine  (was: Support move linked data files 
between regions of the same table when compacting)

> Support move linked data files between regions of the same table when 
> compacting in stripe store engine
> ---
>
> Key: HBASE-26423
> URL: https://issues.apache.org/jira/browse/HBASE-26423
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Priority: Minor
>
> There are two important contents for this issue,
>  # must add reference files for moved data files in a dependent directory 
> which will be looked through to find out which region the data file is 
> currently in;
>  # for HFileLinks in the same table of snapshot table, must support these 
> links to add more locations according to the move info.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3845: HBASE-26454 CreateTableProcedure still relies on temp dir and renames…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3845:
URL: https://github.com/apache/hbase/pull/3845#issuecomment-972931504


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m  5s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ HBASE-26067 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 58s |  HBASE-26067 passed  |
   | +1 :green_heart: |  compile  |   3m 11s |  HBASE-26067 passed  |
   | +1 :green_heart: |  checkstyle  |   1m  3s |  HBASE-26067 passed  |
   | +1 :green_heart: |  spotbugs  |   2m  8s |  HBASE-26067 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 46s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 10s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 10s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m  6s |  hbase-server: The patch 
generated 13 new + 0 unchanged - 0 fixed = 13 total (was 0)  |
   | -0 :warning: |  whitespace  |   0m  0s |  The patch has 1 line(s) that end 
in whitespace. Use git apply --whitespace=fix <>. Refer 
https://git-scm.com/docs/git-apply  |
   | +1 :green_heart: |  hadoopcheck  |  19m 24s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 17s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 14s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  49m 26s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3845 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 5ad8675cd2bb 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 
17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-26067 / 36b6088a26 |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | checkstyle | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
 |
   | whitespace | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/artifact/yetus-general-check/output/whitespace-eol.txt
 |
   | Max. process+thread count | 96 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may
   be overwritten by other write threads, which may cause serious problem.


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may
   be overwritten by other write threads, which may cause serious problem.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its 
> {{SegmentScanner}} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thr

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore.snapshot.getAllSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding  
{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} are 
recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the 
reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may be overwritten by other write threads, which may cause serious problem.


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore#getSnapshotSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding
   {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
are recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the
   reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may
   be overwritten by other write threads, which may cause serious problem.


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.


> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Priority: Critical
>
> H

[GitHub] [hbase] sunhelly opened a new pull request #3855: HBASE-26422 Support priority select reference files for compaction of…

2021-11-18 Thread GitBox


sunhelly opened a new pull request #3855:
URL: https://github.com/apache/hbase/pull/3855


   … stripe store engine


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Assigned] (HBASE-26423) Support move linked data files between regions of the same table in StripeCompactionPolicy

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha reassigned HBASE-26423:
--

Assignee: Xiaolin Ha

> Support move linked data files between regions of the same table in 
> StripeCompactionPolicy
> --
>
> Key: HBASE-26423
> URL: https://issues.apache.org/jira/browse/HBASE-26423
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Minor
>
> There are two important contents for this issue,
>  # must add reference files for moved data files in a dependent directory 
> which will be looked through to find out which region the data file is 
> currently in;
>  # for HFileLinks in the same table of snapshot table, must support these 
> links to add more locations according to the move info.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26423) Support move linked data files between regions of the same table in StripeCompactionPolicy

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-26423:
---
Summary: Support move linked data files between regions of the same table 
in StripeCompactionPolicy  (was: Support move linked data files between regions 
of the same table when compacting in stripe store engine)

> Support move linked data files between regions of the same table in 
> StripeCompactionPolicy
> --
>
> Key: HBASE-26423
> URL: https://issues.apache.org/jira/browse/HBASE-26423
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Priority: Minor
>
> There are two important contents for this issue,
>  # must add reference files for moved data files in a dependent directory 
> which will be looked through to find out which region the data file is 
> currently in;
>  # for HFileLinks in the same table of snapshot table, must support these 
> links to add more locations according to the move info.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26422) Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26422?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-26422:
---
Summary: Support priority select reference files in StripeCompactionPolicy  
(was: Support priority select reference files for compaction of stripe store 
engine)

> Support priority select reference files in StripeCompactionPolicy
> -
>
> Key: HBASE-26422
> URL: https://issues.apache.org/jira/browse/HBASE-26422
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Major
>
> The reference files are those with these patterns, . 
> and =-..
> We can compact these reference files in the first compaction after splitting, 
> instead of a major compaction.
> Then when the region only has normal hfiles and HFileLink files, it can be 
> splitted once more.
> From the overall perspective, it can reduce compaction IOs.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache9 commented on a change in pull request #3803: HBASE-26304: Reflect out of band locality improvements in metrics and balancer

2021-11-18 Thread GitBox


Apache9 commented on a change in pull request #3803:
URL: https://github.com/apache/hbase/pull/3803#discussion_r752329695



##
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/InputStreamBlockDistribution.java
##
@@ -0,0 +1,143 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.regionserver;
+
+import com.google.errorprone.annotations.RestrictedApi;
+import java.io.IOException;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FSDataInputStream;
+import org.apache.hadoop.hbase.HDFSBlocksDistribution;
+import org.apache.hadoop.hbase.io.FileLink;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.hadoop.hbase.util.FSUtils;
+import org.apache.hadoop.hdfs.client.HdfsDataInputStream;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Computes the HDFSBlockDistribution for a file based on the underlying 
located blocks
+ * for an HdfsDataInputStream reading that file. This computation may involve 
a call to
+ * the namenode, so the value is cached based on
+ * {@link #HBASE_LOCALITY_INPUTSTREAM_DERIVE_CACHE_PERIOD}.
+ */
+@InterfaceAudience.Private
+public class InputStreamBlockDistribution {
+  private static final Logger LOG = 
LoggerFactory.getLogger(InputStreamBlockDistribution.class);
+
+  private static final String HBASE_LOCALITY_INPUTSTREAM_DERIVE_ENABLED =
+"hbase.locality.inputstream.derive.enabled";
+  private static final boolean 
DEFAULT_HBASE_LOCALITY_INPUTSTREAM_DERIVE_ENABLED = false;
+
+  private static final String HBASE_LOCALITY_INPUTSTREAM_DERIVE_CACHE_PERIOD =
+"hbase.locality.inputstream.derive.cache.period";
+  private static final int 
DEFAULT_HBASE_LOCALITY_INPUTSTREAM_DERIVE_CACHE_PERIOD = 60_000;
+
+  private final FSDataInputStream stream;
+  private final StoreFileInfo fileInfo;
+  private final int cachePeriodMs;
+
+  private HDFSBlocksDistribution hdfsBlocksDistribution;
+  private long lastCachedAt;
+  private boolean streamUnsupported;
+
+  public InputStreamBlockDistribution(FSDataInputStream stream, StoreFileInfo 
fileInfo) {
+this.stream = stream;

Review comment:
   So where is the stream constructed? What if it is closed but we still 
want to compute locality? Is this possible?




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache9 commented on pull request #3641: HBASE-26006 Update ref guide about the 2.4.x release line

2021-11-18 Thread GitBox


Apache9 commented on pull request #3641:
URL: https://github.com/apache/hbase/pull/3641#issuecomment-972958557


   Any updates here @apurtell ? I think we need to add the 2.4.x release line 
information to our ref guide as now it is the only active branch for 2.x...


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3855: HBASE-26422 Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3855:
URL: https://github.com/apache/hbase/pull/3855#issuecomment-972989116


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m  1s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ HBASE-25302 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 33s |  HBASE-25302 passed  |
   | +1 :green_heart: |  compile  |   3m 22s |  HBASE-25302 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 13s |  HBASE-25302 passed  |
   | +1 :green_heart: |  spotbugs  |   2m 13s |  HBASE-25302 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 14s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 19s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 19s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m 13s |  hbase-server: The patch 
generated 1 new + 23 unchanged - 1 fixed = 24 total (was 24)  |
   | -0 :warning: |  whitespace  |   0m  0s |  The patch has 3 line(s) that end 
in whitespace. Use git apply --whitespace=fix <>. Refer 
https://git-scm.com/docs/git-apply  |
   | +1 :green_heart: |  hadoopcheck  |  21m 27s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 23s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 14s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  54m  2s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3855 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 02011bae5376 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-25302 / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | checkstyle | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
 |
   | whitespace | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-general-check/output/whitespace-eol.txt
 |
   | Max. process+thread count | 85 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Commented] (HBASE-26458) Value of hbase.master.snapshot.ttl is not used

2021-11-18 Thread Joel Swiatek (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446055#comment-17446055
 ] 

Joel Swiatek commented on HBASE-26458:
--

After more discussion on the PR https://github.com/apache/hbase/pull/3852 and 
offline, we are going to document existing behavior for master and branch-2 and 
apply a code fix to branch-1.

The code fixes for master and branch-2 require changing behavior of protobufs, 
which is incompatible and can create inconsistent RPC payloads during rolling 
upgrades.

> Value of hbase.master.snapshot.ttl is not used
> --
>
> Key: HBASE-26458
> URL: https://issues.apache.org/jira/browse/HBASE-26458
> Project: HBase
>  Issue Type: Bug
>  Components: snapshots
>Affects Versions: 1.7.1, 2.4.8
>Reporter: Joel Swiatek
>Assignee: Joel Swiatek
>Priority: Minor
> Fix For: 1.7.1, 2.4.8
>
> Attachments: 
> branch-1-0001-HBASE-22458-Add-UNSET_SNAPSHOT_PROP-and-fix-TTL-defa.patch, 
> branch-2-0001-HBASE-22458-Add-UNSET_SNAPSHOT_PROP-and-fix-TTL-defa.patch, 
> master-0001-HBASE-22458-Add-UNSET_SNAPSHOT_PROP-and-fix-TTL-defa.patch
>
>   Original Estimate: 120h
>  Remaining Estimate: 120h
>
> When creating a snapshot, users can explicitly specify the TTL to be used. If 
> no TTL is specified, then the SnapshotDescription is initially created with a 
> TTL of -1 to indicate FOREVER.
> When the SnapshotDescription runs through SnapshotDescriptionUtils#validate, 
> the TTL is checked to see if the default value of hbase.master.snapshot.ttl 
> should be applied. The value from the config is only applied if the TTL == 0, 
> but it should be -1.
> This has another nasty side-effect: any user who creates a snapshot and 
> explicitly sets \{TTL => 0} will find that their snapshot gets its TTL from 
> hbase.master.snapshot.TTL.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3855: HBASE-26422 Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3855:
URL: https://github.com/apache/hbase/pull/3855#issuecomment-973111011


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 28s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ HBASE-25302 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 43s |  HBASE-25302 passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  HBASE-25302 passed  |
   | +1 :green_heart: |  shadedjars  |   8m 21s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 43s |  HBASE-25302 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 28s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 13s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 13s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m 21s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 41s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 142m 12s |  hbase-server in the patch passed.  
|
   |  |   | 174m 47s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3855 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux bbf65cda8971 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 
23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-25302 / b2571df7ae |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/testReport/
 |
   | Max. process+thread count | 3971 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26466) Immutable timeseries usecase - Create new region rather than split existing one

2021-11-18 Thread Viraj Jasani (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Viraj Jasani updated HBASE-26466:
-
Description: 
For insertion of immutable data usecase (specifically time-series data), region 
split mechanism doesn't seem to provide better availability when ingestion rate 
is very high. When we ingest lot of data, the region split policy tries to 
split the given hot region based on the size (either size of all stores 
combined or size of any single store exceeding max file size configured) if we 
consider default {_}SteppingSplitPolicy{_}. The latest hot regions tend to 
receive all latest inserts. When the region is split, the first half of the 
region (say daughterA) stays on the same server whereas the second half 
(daughterB) region – likely to become another hot region because all new latest 
updates come to second half region in the sequential write fashion – is moved 
out to other servers in the cluster. Hence, once new daughter region is 
created, client traffic will be redirected to another server. Client requests 
will be piled up when region split is triggered till new daughters come alive 
and once done, client will have to request meta for updated daughter region and 
redirect traffic to new server.

If we could have configurable region creation strategy that 1) keeps the split 
disabled for the given table, and 2) create new region dynamically with 
lexicographically higher start key on the same server and update it's own 
region boundary, the client will have to look up meta once and continue 
ingestion without any degraded SLA caused by region split transitions.

Note: region split might also encounter some complications, requiring the 
procedure to be rolled back from some step, or continue with internal retries, 
eventually further delaying the ingestion from clients.

 

There are some complications around updating live region's start and end keys 
as this key range is immutable. We could brainstorm ideas around making them 
optionally mutable and any issues around them. For instance, client might 
continue writing data to the region with updated end key but writes will fail 
for out of range keys and hence, they will lookup in meta for updated key-space 
range (new region created with end key: EMPTY_END_ROW) of the table.

  was:
For insertion of immutable data usecase (specifically time-series data), region 
split mechanism doesn't seem to provide better availability when ingestion rate 
is very high. When we ingest lot of data, the region split policy tries to 
split the given hot region based on the size (either size of all stores 
combined or size of any single store exceeding max file size configured) if we 
consider default {_}SteppingSplitPolicy{_}. The latest hot regions tend to 
receive all latest inserts. When the region is split, the first half of the 
region (say daughterA) stays on the same server whereas the second half 
(daughterB) region – likely to become another hot region because all new latest 
updates come to second half region in the sequential write fashion – is moved 
out to other servers in the cluster. Hence, once new daughter region is 
created, client traffic will be redirected to another server. Client requests 
will be piled up when region split is triggered till new daughters come alive 
and once done, client will have to request meta for updated daughter region and 
redirect traffic to new server.

If we could have configurable region creation strategy that 1) keeps the split 
disabled for the given table, and 2) create new region dynamically with 
lexicographically higher start key on the same server and update it's own 
region boundary, the client will have to look up meta once and continue 
ingestion without any degraded SLA caused by region split transitions.

Note: region split might also encounter some complications, requiring the 
procedure to be rolled back from some step, or continue with internal retries, 
eventually further delaying the ingestion from clients.

 

There are some complications around updating live region's start and end keys 
as this key range is immutable. We could brainstorm ideas around making them 
optionally mutable and any issues around them. For instance, client might 
continue writing data to the region with updated end key but writes will fail 
and hence, they will lookup in meta for updated key-space range of the table.


> Immutable timeseries usecase - Create new region rather than split existing 
> one
> ---
>
> Key: HBASE-26466
> URL: https://issues.apache.org/jira/browse/HBASE-26466
> Project: HBase
>  Issue Type: Brainstorming
>Reporter: Viraj Jasani
>Priority: Major
>
> For insertion of immutable data usecase (specifically time-series data), 
> region split me

[GitHub] [hbase] Apache-HBase commented on pull request #3845: HBASE-26454 CreateTableProcedure still relies on temp dir and renames…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3845:
URL: https://github.com/apache/hbase/pull/3845#issuecomment-973123279


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m  8s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ HBASE-26067 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 13s |  HBASE-26067 passed  |
   | +1 :green_heart: |  compile  |   1m 19s |  HBASE-26067 passed  |
   | +1 :green_heart: |  shadedjars  |   9m  8s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 43s |  HBASE-26067 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m  2s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 19s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 19s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   9m 12s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 42s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 212m 26s |  hbase-server in the patch passed.  
|
   |  |   | 248m  4s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3845 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux d449db9f1636 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-26067 / 36b6088a26 |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/testReport/
 |
   | Max. process+thread count | 2939 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] joswiatek opened a new pull request #3856: HBASE-26458 Update snapshot doc

2021-11-18 Thread GitBox


joswiatek opened a new pull request #3856:
URL: https://github.com/apache/hbase/pull/3856


   https://issues.apache.org/jira/browse/HBASE-26458 and #3852 


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3856: HBASE-26458 Update snapshot doc

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3856:
URL: https://github.com/apache/hbase/pull/3856#issuecomment-973139694


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m 10s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  5s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ branch-2 Compile Tests _ |
   ||| _ Patch Compile Tests _ |
   ||| _ Other Tests _ |
   |  |   |   2m 28s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/artifact/yetus-jdk8-hadoop2-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3856 |
   | Optional Tests |  |
   | uname | Linux 30922ea85acb 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | branch-2 / 8d3562c6fa |
   | Max. process+thread count | 41 (vs. ulimit of 12500) |
   | modules | C: . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Commented] (HBASE-26451) Hbase Export/Import via MapReduce job

2021-11-18 Thread Peter Somogyi (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26451?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446094#comment-17446094
 ] 

Peter Somogyi commented on HBASE-26451:
---

Hi [~xdosis],

Import will add all the HFiles to HBase with the timestamps it was originally 
inserted with. HBase will _"merge"_ all the HFiles when you run a request and 
gets you the _latest_ data. Since you had the same HFiles twice the only 
difference was the delete thumbstone for a single rowkey for which the 
timestamp was the latest so HBase did not give you back that row.

It could look something like this:

1. Original state in table:
||rowkey||column family||timestamp||value||
|r1|f1|1|a|
|r2|f1|2|b|
|r3|f1|3|c|

2. Run export
3. Delete r2
||rowkey||column family||timestamp||value||
|r1|f1|1|a|
|r2|f1|2|b|
|r3|f1|3|c|
|r2|f1|4||

4. Run import
||rowkey||column family||timestamp||value||
|r1|f1|1|a|
|r2|f1|2|b|
|r3|f1|3|c|
|r2|f1|4||
|r1|f1|1|a|
|r2|f1|2|b|
|r3|f1|3|c|

>From this if you run a scan in the table HBase will give you back only the 
>following:
||rowkey||column family||timestamp||value||
|r1|f1|1|a|
|r3|f1|3|c|

 

> Hbase Export/Import via MapReduce job
> -
>
> Key: HBASE-26451
> URL: https://issues.apache.org/jira/browse/HBASE-26451
> Project: HBase
>  Issue Type: Bug
>  Components: backup&restore
>Affects Versions: 2.0.1
>Reporter: Christos Dosis
>Priority: Major
>
> Hi Hbase support team,
>  
> While using the MapReduce job with export/import commands we have the below 
> behaviour.
>  
> {+}Step1{+}:  I have a hbase table(tsdb) with 3 rows. and export the table 
> like below:
> /opt/hbase/bin/hbase org.apache.hadoop.hbase.mapreduce.Export tsdb 
> file:///opt/hbase/backup/tsdb
> {+}Step2{+}: Then I delete 1 row.
> {+}Step3{+}: Then I import tsdb table from the exported data from Step 1.
> /opt/hbase/bin/hbase org.apache.hadoop.hbase.mapreduce.Import tsdb 
> file:///opt/hbase/backup/tsdb
>  
> There are still only 2 rows in the table. Is this a valid behaviour?
>  
> Br,
> Chris



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] joswiatek opened a new pull request #3857: HBASE-22458 Add UNSET_SNAPSHOT_PROP and fix TTL defaulting

2021-11-18 Thread GitBox


joswiatek opened a new pull request #3857:
URL: https://github.com/apache/hbase/pull/3857


   https://issues.apache.org/jira/browse/HBASE-26458
   
   Note that this change is possible in branch-1 because the TTL determined 
from the snapshotProps is always included in the protobuf in this code: 
https://github.com/apache/hbase/blob/0d214ff53e3b8cb3bccbc01815ccbc9a03dfabb4/hbase-client/src/main/java/org/apache/hadoop/hbase/client/HBaseAdmin.java#L3708-L3717
   
   This is notably different from master and branch-2, where the TTL is only 
set if it is valid. If it is not set, then the default protobuf value of 0 is 
used, which matches `NO_SNAPSHOT_TTL_SPECIFIED`: 
https://github.com/apache/hbase/blob/b2571df7ae04307c0dbe28caed59aa383d7eec45/hbase-client/src/main/java/org/apache/hadoop/hbase/shaded/protobuf/ProtobufUtil.java#L3089-L3092


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3856: HBASE-26458 Update snapshot doc

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3856:
URL: https://github.com/apache/hbase/pull/3856#issuecomment-973143935


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   7m  6s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  6s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ branch-2 Compile Tests _ |
   ||| _ Patch Compile Tests _ |
   ||| _ Other Tests _ |
   |  |   |   8m 28s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3856 |
   | Optional Tests |  |
   | uname | Linux 2b42de00fad8 4.15.0-65-generic #74-Ubuntu SMP Tue Sep 17 
17:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | branch-2 / 8d3562c6fa |
   | Max. process+thread count | 56 (vs. ulimit of 12500) |
   | modules | C: . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Created] (HBASE-26467) Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size bigger than data chunk size

2021-11-18 Thread zhuobin zheng (Jira)
zhuobin zheng created HBASE-26467:
-

 Summary: Wrong Cell Generated by 
MemStoreLABImpl.forceCopyOfBigCellInto when Cell size bigger than data chunk 
size 
 Key: HBASE-26467
 URL: https://issues.apache.org/jira/browse/HBASE-26467
 Project: HBase
  Issue Type: Bug
Reporter: zhuobin zheng


In our company 2.X cluster. I found some region compaction keeps failling 
because some cell can't construct succefully. In fact , we even can't read 
these cell.

>From follow stack , we can found the bug cause KeyValue can't constructed.

Simple Log and Stack: 
{code:java}
// code placeholder
2021-11-18 16:50:47,708 ERROR [regionserver/:60020-longCompactions-4] 
regionserver.CompactSplit: Compaction failed 
region=xx_table,3610ff49595a0fc4a824f2a575f37a31,1570874723992.dac703ceb35e8d8703233bebf34ae49f.,
 storeName=c, priority=-319, startTime=1637225447127 
java.lang.IllegalArgumentException: Invalid tag length at position=4659867, 
tagLength=0,         
at 
org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueTagBytes(KeyValueUtil.java:685)
        at 
org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueBytes(KeyValueUtil.java:643)
        at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:345)
        at 
org.apache.hadoop.hbase.SizeCachedKeyValue.(SizeCachedKeyValue.java:43)
        at 
org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.getCell(HFileReaderImpl.java:981)
        at 
org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:233)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:418)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:322)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:288)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:487)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor$1.createScanner(Compactor.java:248)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:318)
        at 
org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65)
        at 
org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126)
        at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1468)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2266)
        at 
org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:624)
        at 
org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:666)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748) {code}
>From further observation, I found the following characteristics:
 # Cell size more than 2M
 # We can reproduce the bug only after in memory compact
 # Cell bytes end with \x00\x02\x00\x00

 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (HBASE-26467) Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size bigger than data chunk size

2021-11-18 Thread zhuobin zheng (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

zhuobin zheng reassigned HBASE-26467:
-

Assignee: zhuobin zheng

> Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size 
> bigger than data chunk size 
> --
>
> Key: HBASE-26467
> URL: https://issues.apache.org/jira/browse/HBASE-26467
> Project: HBase
>  Issue Type: Bug
>Reporter: zhuobin zheng
>Assignee: zhuobin zheng
>Priority: Critical
>
> In our company 2.X cluster. I found some region compaction keeps failling 
> because some cell can't construct succefully. In fact , we even can't read 
> these cell.
> From follow stack , we can found the bug cause KeyValue can't constructed.
> Simple Log and Stack: 
> {code:java}
> // code placeholder
> 2021-11-18 16:50:47,708 ERROR [regionserver/:60020-longCompactions-4] 
> regionserver.CompactSplit: Compaction failed 
> region=xx_table,3610ff49595a0fc4a824f2a575f37a31,1570874723992.dac703ceb35e8d8703233bebf34ae49f.,
>  storeName=c, priority=-319, startTime=1637225447127 
> java.lang.IllegalArgumentException: Invalid tag length at position=4659867, 
> tagLength=0,         
> at 
> org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueTagBytes(KeyValueUtil.java:685)
>         at 
> org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueBytes(KeyValueUtil.java:643)
>         at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:345)
>         at 
> org.apache.hadoop.hbase.SizeCachedKeyValue.(SizeCachedKeyValue.java:43)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.getCell(HFileReaderImpl.java:981)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:233)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:418)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:322)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:288)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:487)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor$1.createScanner(Compactor.java:248)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:318)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65)
>         at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126)
>         at 
> org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1468)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2266)
>         at 
> org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:624)
>         at 
> org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:666)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748) {code}
> From further observation, I found the following characteristics:
>  # Cell size more than 2M
>  # We can reproduce the bug only after in memory compact
>  # Cell bytes end with \x00\x02\x00\x00
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3856: HBASE-26458 Update snapshot doc

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3856:
URL: https://github.com/apache/hbase/pull/3856#issuecomment-973151430


   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m 10s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ branch-2 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 13s |  branch-2 passed  |
   | -1 :x: |  refguide  |   3m 56s |  branch has 2 errors when building the 
reference guide.  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 56s |  the patch passed  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | -1 :x: |  refguide  |   3m 38s |  patch has 2 errors when building the 
reference guide.  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 16s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  18m 50s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3856 |
   | Optional Tests | dupname asflicense refguide |
   | uname | Linux 1df6bda3ce85 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | branch-2 / 8d3562c6fa |
   | refguide | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/artifact/yetus-general-check/output/branch-refguide.log
 |
   | refguide | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/artifact/yetus-general-check/output/patch-refguide.log
 |
   | Max. process+thread count | 66 (vs. ulimit of 12500) |
   | modules | C: . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3856/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3845: HBASE-26454 CreateTableProcedure still relies on temp dir and renames…

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3845:
URL: https://github.com/apache/hbase/pull/3845#issuecomment-973152603


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m 57s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  6s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ HBASE-26067 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 25s |  HBASE-26067 passed  |
   | +1 :green_heart: |  compile  |   1m 16s |  HBASE-26067 passed  |
   | +1 :green_heart: |  shadedjars  |   9m 55s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 44s |  HBASE-26067 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 46s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 14s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   9m 58s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 46s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 247m 29s |  hbase-server in the patch passed.  
|
   |  |   | 285m 49s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3845 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 441d9e70c035 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 
16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-26067 / 36b6088a26 |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/testReport/
 |
   | Max. process+thread count | 3779 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3845/4/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26467) Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size bigger than data chunk size

2021-11-18 Thread zhuobin zheng (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

zhuobin zheng updated HBASE-26467:
--
Description: 
In our company 2.X cluster. I found some region compaction keeps failling 
because some cell can't construct succefully. In fact , we even can't read 
these cell.

>From follow stack , we can found the bug cause KeyValue can't constructed.

Simple Log and Stack: 
{code:java}
// code placeholder
2021-11-18 16:50:47,708 ERROR [regionserver/:60020-longCompactions-4] 
regionserver.CompactSplit: Compaction failed 
region=xx_table,3610ff49595a0fc4a824f2a575f37a31,1570874723992.dac703ceb35e8d8703233bebf34ae49f.,
 storeName=c, priority=-319, startTime=1637225447127 
java.lang.IllegalArgumentException: Invalid tag length at position=4659867, 
tagLength=0,         
at 
org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueTagBytes(KeyValueUtil.java:685)
        at 
org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueBytes(KeyValueUtil.java:643)
        at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:345)
        at 
org.apache.hadoop.hbase.SizeCachedKeyValue.(SizeCachedKeyValue.java:43)
        at 
org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.getCell(HFileReaderImpl.java:981)
        at 
org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:233)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:418)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:322)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:288)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:487)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor$1.createScanner(Compactor.java:248)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:318)
        at 
org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65)
        at 
org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126)
        at org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1468)
        at 
org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2266)
        at 
org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:624)
        at 
org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:666)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748) {code}
>From further observation, I found the following characteristics:
 # Cell size more than 2M
 # We can reproduce the bug only after in memory compact
 # Cell bytes end with \x00\x02\x00\x00

 

In fact, the root reason is method (MemStoreLABImpl.forceCopyOfBigCellInto) 
which only invoked when cell bigger than data chunk size construct cell with 
wrong length.  So there are 4 bytes (chunk head size) append end of the cell 
bytes.

  was:
In our company 2.X cluster. I found some region compaction keeps failling 
because some cell can't construct succefully. In fact , we even can't read 
these cell.

>From follow stack , we can found the bug cause KeyValue can't constructed.

Simple Log and Stack: 
{code:java}
// code placeholder
2021-11-18 16:50:47,708 ERROR [regionserver/:60020-longCompactions-4] 
regionserver.CompactSplit: Compaction failed 
region=xx_table,3610ff49595a0fc4a824f2a575f37a31,1570874723992.dac703ceb35e8d8703233bebf34ae49f.,
 storeName=c, priority=-319, startTime=1637225447127 
java.lang.IllegalArgumentException: Invalid tag length at position=4659867, 
tagLength=0,         
at 
org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueTagBytes(KeyValueUtil.java:685)
        at 
org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueBytes(KeyValueUtil.java:643)
        at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:345)
        at 
org.apache.hadoop.hbase.SizeCachedKeyValue.(SizeCachedKeyValue.java:43)
        at 
org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.getCell(HFileReaderImpl.java:981)
        at 
org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:233)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:418)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:322)
        at 
org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:288)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:487)
        at 
org.apache.hadoop.hbase.regionserver.compactions.Compactor$1.createScanner(Compactor.java:248)
   

[jira] [Work started] (HBASE-26467) Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size bigger than data chunk size

2021-11-18 Thread zhuobin zheng (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on HBASE-26467 started by zhuobin zheng.
-
> Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size 
> bigger than data chunk size 
> --
>
> Key: HBASE-26467
> URL: https://issues.apache.org/jira/browse/HBASE-26467
> Project: HBase
>  Issue Type: Bug
>Reporter: zhuobin zheng
>Assignee: zhuobin zheng
>Priority: Critical
>
> In our company 2.X cluster. I found some region compaction keeps failling 
> because some cell can't construct succefully. In fact , we even can't read 
> these cell.
> From follow stack , we can found the bug cause KeyValue can't constructed.
> Simple Log and Stack: 
> {code:java}
> // code placeholder
> 2021-11-18 16:50:47,708 ERROR [regionserver/:60020-longCompactions-4] 
> regionserver.CompactSplit: Compaction failed 
> region=xx_table,3610ff49595a0fc4a824f2a575f37a31,1570874723992.dac703ceb35e8d8703233bebf34ae49f.,
>  storeName=c, priority=-319, startTime=1637225447127 
> java.lang.IllegalArgumentException: Invalid tag length at position=4659867, 
> tagLength=0,         
> at 
> org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueTagBytes(KeyValueUtil.java:685)
>         at 
> org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueBytes(KeyValueUtil.java:643)
>         at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:345)
>         at 
> org.apache.hadoop.hbase.SizeCachedKeyValue.(SizeCachedKeyValue.java:43)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.getCell(HFileReaderImpl.java:981)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:233)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:418)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:322)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:288)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:487)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor$1.createScanner(Compactor.java:248)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:318)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65)
>         at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126)
>         at 
> org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1468)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2266)
>         at 
> org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:624)
>         at 
> org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:666)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748) {code}
> From further observation, I found the following characteristics:
>  # Cell size more than 2M
>  # We can reproduce the bug only after in memory compact
>  # Cell bytes end with \x00\x02\x00\x00
>  
> In fact, the root reason is method (MemStoreLABImpl.forceCopyOfBigCellInto) 
> which only invoked when cell bigger than data chunk size construct cell with 
> wrong length.  So there are 4 bytes (chunk head size) append end of the cell 
> bytes.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3855: HBASE-26422 Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3855:
URL: https://github.com/apache/hbase/pull/3855#issuecomment-973175911


   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   6m 49s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ HBASE-25302 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 37s |  HBASE-25302 passed  |
   | +1 :green_heart: |  compile  |   1m  6s |  HBASE-25302 passed  |
   | +1 :green_heart: |  shadedjars  |   9m 10s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 41s |  HBASE-25302 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 20s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m  5s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m  5s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   9m 11s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | -0 :warning: |  javadoc  |   0m 39s |  hbase-server generated 1 new + 21 
unchanged - 0 fixed = 22 total (was 21)  |
   ||| _ Other Tests _ |
   | -1 :x: |  unit  | 220m 58s |  hbase-server in the patch failed.  |
   |  |   | 260m 33s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3855 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 202c5626ac57 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 
16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-25302 / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | javadoc | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-hbase-server.txt
 |
   | unit | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/testReport/
 |
   | Max. process+thread count | 3342 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26467) Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size bigger than data chunk size

2021-11-18 Thread zhuobin zheng (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

zhuobin zheng updated HBASE-26467:
--
Status: Patch Available  (was: In Progress)

https://github.com/apache/hbase/pull/3858

> Wrong Cell Generated by MemStoreLABImpl.forceCopyOfBigCellInto when Cell size 
> bigger than data chunk size 
> --
>
> Key: HBASE-26467
> URL: https://issues.apache.org/jira/browse/HBASE-26467
> Project: HBase
>  Issue Type: Bug
>Reporter: zhuobin zheng
>Assignee: zhuobin zheng
>Priority: Critical
>
> In our company 2.X cluster. I found some region compaction keeps failling 
> because some cell can't construct succefully. In fact , we even can't read 
> these cell.
> From follow stack , we can found the bug cause KeyValue can't constructed.
> Simple Log and Stack: 
> {code:java}
> // code placeholder
> 2021-11-18 16:50:47,708 ERROR [regionserver/:60020-longCompactions-4] 
> regionserver.CompactSplit: Compaction failed 
> region=xx_table,3610ff49595a0fc4a824f2a575f37a31,1570874723992.dac703ceb35e8d8703233bebf34ae49f.,
>  storeName=c, priority=-319, startTime=1637225447127 
> java.lang.IllegalArgumentException: Invalid tag length at position=4659867, 
> tagLength=0,         
> at 
> org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueTagBytes(KeyValueUtil.java:685)
>         at 
> org.apache.hadoop.hbase.KeyValueUtil.checkKeyValueBytes(KeyValueUtil.java:643)
>         at org.apache.hadoop.hbase.KeyValue.(KeyValue.java:345)
>         at 
> org.apache.hadoop.hbase.SizeCachedKeyValue.(SizeCachedKeyValue.java:43)
>         at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderImpl$HFileScannerImpl.getCell(HFileReaderImpl.java:981)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreFileScanner.seek(StoreFileScanner.java:233)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.seekScanners(StoreScanner.java:418)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:322)
>         at 
> org.apache.hadoop.hbase.regionserver.StoreScanner.(StoreScanner.java:288)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.createScanner(Compactor.java:487)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor$1.createScanner(Compactor.java:248)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.Compactor.compact(Compactor.java:318)
>         at 
> org.apache.hadoop.hbase.regionserver.compactions.DefaultCompactor.compact(DefaultCompactor.java:65)
>         at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreEngine$DefaultCompactionContext.compact(DefaultStoreEngine.java:126)
>         at 
> org.apache.hadoop.hbase.regionserver.HStore.compact(HStore.java:1468)
>         at 
> org.apache.hadoop.hbase.regionserver.HRegion.compact(HRegion.java:2266)
>         at 
> org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.doCompaction(CompactSplit.java:624)
>         at 
> org.apache.hadoop.hbase.regionserver.CompactSplit$CompactionRunner.run(CompactSplit.java:666)
>         at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:748) {code}
> From further observation, I found the following characteristics:
>  # Cell size more than 2M
>  # We can reproduce the bug only after in memory compact
>  # Cell bytes end with \x00\x02\x00\x00
>  
> In fact, the root reason is method (MemStoreLABImpl.forceCopyOfBigCellInto) 
> which only invoked when cell bigger than data chunk size construct cell with 
> wrong length.  So there are 4 bytes (chunk head size) append end of the cell 
> bytes.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973201775


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 28s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m  9s |  master passed  |
   | +1 :green_heart: |  compile  |   3m 12s |  master passed  |
   | +1 :green_heart: |  checkstyle  |   1m  4s |  master passed  |
   | +1 :green_heart: |  spotbugs  |   2m  4s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 50s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 12s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 12s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m  4s |  hbase-server: The patch 
generated 1 new + 18 unchanged - 0 fixed = 19 total (was 18)  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +1 :green_heart: |  hadoopcheck  |  19m 32s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 14s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 16s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  49m 20s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3858 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 43a2955ac976 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 
23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | checkstyle | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
 |
   | Max. process+thread count | 96 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3852: HBASE-26458 Update Snapshot TTL doc

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3852:
URL: https://github.com/apache/hbase/pull/3852#issuecomment-973211636


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 58s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ master Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 29s |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 29s |  master passed  |
   | +1 :green_heart: |  compile  |   9m 54s |  master passed  |
   | +1 :green_heart: |  checkstyle  |   2m 12s |  master passed  |
   | +0 :ok: |  refguide  |   3m 47s |  branch has no errors when building the 
reference guide. See footer for rendered docs, which you should manually 
inspect.  |
   | +1 :green_heart: |  spotbugs  |  15m 28s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 16s |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 35s |  the patch passed  |
   | +1 :green_heart: |  compile  |  10m 21s |  the patch passed  |
   | +1 :green_heart: |  javac  |  10m 21s |  the patch passed  |
   | +1 :green_heart: |  checkstyle  |   2m 12s |  the patch passed  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +0 :ok: |  refguide  |   4m  5s |  patch has no errors when building the 
reference guide. See footer for rendered docs, which you should manually 
inspect.  |
   | +1 :green_heart: |  hadoopcheck  |  20m 49s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |  14m 41s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 56s |  The patch does not generate 
ASF License warnings.  |
   |  |   | 104m 40s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3852 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile refguide |
   | uname | Linux 9d17c07c44f8 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 
23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | refguide | 
https://nightlies.apache.org/hbase/HBase/HBase-PreCommit-GitHub-PR/PR-3852/2/yetus-general-check/output/branch-site/book.html
 |
   | refguide | 
https://nightlies.apache.org/hbase/HBase/HBase-PreCommit-GitHub-PR/PR-3852/2/yetus-general-check/output/patch-site/book.html
 |
   | Max. process+thread count | 141 (vs. ulimit of 3) |
   | modules | C: hbase-common hbase-client hbase-server . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3855: HBASE-26422 Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3855:
URL: https://github.com/apache/hbase/pull/3855#issuecomment-973226076


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m 37s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ HBASE-25302 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 45s |  HBASE-25302 passed  |
   | +1 :green_heart: |  compile  |   3m 34s |  HBASE-25302 passed  |
   | +1 :green_heart: |  checkstyle  |   1m 11s |  HBASE-25302 passed  |
   | +1 :green_heart: |  spotbugs  |   2m 18s |  HBASE-25302 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 20s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 35s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 35s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m 12s |  hbase-server: The patch 
generated 1 new + 23 unchanged - 1 fixed = 24 total (was 24)  |
   | -0 :warning: |  whitespace  |   0m  0s |  The patch has 3 line(s) that end 
in whitespace. Use git apply --whitespace=fix <>. Refer 
https://git-scm.com/docs/git-apply  |
   | +1 :green_heart: |  hadoopcheck  |  23m 30s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 57s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 15s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  59m 40s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3855 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 242f09a2f4d0 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-25302 / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | checkstyle | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
 |
   | whitespace | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/artifact/yetus-general-check/output/whitespace-eol.txt
 |
   | Max. process+thread count | 86 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] bbeaudreault commented on a change in pull request #3803: HBASE-26304: Reflect out of band locality improvements in metrics and balancer

2021-11-18 Thread GitBox


bbeaudreault commented on a change in pull request #3803:
URL: https://github.com/apache/hbase/pull/3803#discussion_r752631908



##
File path: 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/InputStreamBlockDistribution.java
##
@@ -0,0 +1,143 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hbase.regionserver;
+
+import com.google.errorprone.annotations.RestrictedApi;
+import java.io.IOException;
+import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FSDataInputStream;
+import org.apache.hadoop.hbase.HDFSBlocksDistribution;
+import org.apache.hadoop.hbase.io.FileLink;
+import org.apache.hadoop.hbase.util.EnvironmentEdgeManager;
+import org.apache.hadoop.hbase.util.FSUtils;
+import org.apache.hadoop.hdfs.client.HdfsDataInputStream;
+import org.apache.yetus.audience.InterfaceAudience;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Computes the HDFSBlockDistribution for a file based on the underlying 
located blocks
+ * for an HdfsDataInputStream reading that file. This computation may involve 
a call to
+ * the namenode, so the value is cached based on
+ * {@link #HBASE_LOCALITY_INPUTSTREAM_DERIVE_CACHE_PERIOD}.
+ */
+@InterfaceAudience.Private
+public class InputStreamBlockDistribution {
+  private static final Logger LOG = 
LoggerFactory.getLogger(InputStreamBlockDistribution.class);
+
+  private static final String HBASE_LOCALITY_INPUTSTREAM_DERIVE_ENABLED =
+"hbase.locality.inputstream.derive.enabled";
+  private static final boolean 
DEFAULT_HBASE_LOCALITY_INPUTSTREAM_DERIVE_ENABLED = false;
+
+  private static final String HBASE_LOCALITY_INPUTSTREAM_DERIVE_CACHE_PERIOD =
+"hbase.locality.inputstream.derive.cache.period";
+  private static final int 
DEFAULT_HBASE_LOCALITY_INPUTSTREAM_DERIVE_CACHE_PERIOD = 60_000;
+
+  private final FSDataInputStream stream;
+  private final StoreFileInfo fileInfo;
+  private final int cachePeriodMs;
+
+  private HDFSBlocksDistribution hdfsBlocksDistribution;
+  private long lastCachedAt;
+  private boolean streamUnsupported;
+
+  public InputStreamBlockDistribution(FSDataInputStream stream, StoreFileInfo 
fileInfo) {
+this.stream = stream;

Review comment:
   Thanks for reviewing, Duo! 
   
   The stream is originally constructed here in 
[StoreFileInfo.createReaderContext]( 
https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreFileInfo.java#L293-L329).
   
   This method has two usages:  
   - 
[HStoreFile.open](https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStoreFile.java#L357),
 when opening a StoreFile and creating the `initialReader` which is used for 
all PREAD scans.
   - 
[HStoreFile.createStreamScanner](https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HStoreFile.java#L499),
 which is used for STREAM scans
   
   I'm interested in the first one, because it lives for the lifetime of a 
StoreFile. As far as I can tell, the initialReader (and thus this input stream) 
is never closed until the StoreFile itself closes. To your question, I don't 
think it makes sense to continue computing locality at that point. I don't see 
a case for the InputStream to be re-opened except through re-opening the 
StoreFile which would actually create a new FSDataInputStream and subsequently 
a new InputStreamBlockDistribution.
   
   The second one is relatively short lived, just for the lifetime of the scan. 
And nothing would be trying to fetch the locality from such a scan. So it 
doesn't make sense to worry too much about that one.
   
   ---
   
   Part of your question seems to be probing at whether this is too far removed 
from where the object is created. I could have considered putting all of the 
logic from this class into HStoreFile so it's clear that it's directly tied to 
that object's initialReader. However, HStoreFile is already a long class and 
IMO it's cleaner to put this nicely encapsulated logic in a separate class. 
This also makes it easier to test.
   
   I could also consider embedding this constructor call clo

[GitHub] [hbase] Apache-HBase commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973301818


   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   4m  6s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 46s |  master passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   8m 17s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 44s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 28s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 14s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m 16s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 42s |  the patch passed  |
   ||| _ Other Tests _ |
   | -1 :x: |  unit  | 140m 29s |  hbase-server in the patch failed.  |
   |  |   | 176m 36s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3858 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux f9cd4294eb00 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 
11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   | unit | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt
 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/testReport/
 |
   | Max. process+thread count | 3996 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Created] (HBASE-26468) Region Server doesn't exit cleanly incase it crashes.

2021-11-18 Thread Rushabh Shah (Jira)
Rushabh Shah created HBASE-26468:


 Summary: Region Server doesn't exit cleanly incase it crashes.
 Key: HBASE-26468
 URL: https://issues.apache.org/jira/browse/HBASE-26468
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 1.6.0
Reporter: Rushabh Shah


Observed this in our production cluster running 1.6 version.
RS crashed due to some reason but the process was still running. On debugging 
more, found out there was 1 non-daemon thread running and that was not allowing 
RS to stop cleanly. Our clusters are managed by Ambari and have auto restart 
capability within them. But since the process was running and pid file was 
present, Ambari also couldn't do much. There will be some bug where we will 
miss to stop some daemon thread but there should be some maximum amount of time 
we should wait before exiting the thread.

Relevant code: 
[HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]


{code:java}
logProcessInfo(getConf());
HRegionServer hrs = 
HRegionServer.constructRegionServer(regionServerClass, conf);
hrs.start();
hrs.join();  -> This should be a timed join.
if (hrs.isAborted()) {
  throw new RuntimeException("HRegionServer Aborted");
}
  }
{code}




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26468) Region Server doesn't exit cleanly incase it crashes.

2021-11-18 Thread Rushabh Shah (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rushabh Shah updated HBASE-26468:
-
Description: 
Observed this in our production cluster running 1.6 version.
RS crashed due to some reason but the process was still running. On debugging 
more, found out there was 1 non-daemon thread running and that was not allowing 
RS to exit cleanly. Our clusters are managed by Ambari and have auto restart 
capability within them. But since the process was running and pid file was 
present, Ambari also couldn't do much. There will be some bug where we will 
miss to stop some daemon thread but there should be some maximum amount of time 
we should wait before exiting the thread.

Relevant code: 
[HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]
{code:java}
logProcessInfo(getConf());
HRegionServer hrs = 
HRegionServer.constructRegionServer(regionServerClass, conf);
hrs.start();
hrs.join();  -> This should be a timed join.
if (hrs.isAborted()) {
  throw new RuntimeException("HRegionServer Aborted");
}
  }
{code}

  was:
Observed this in our production cluster running 1.6 version.
RS crashed due to some reason but the process was still running. On debugging 
more, found out there was 1 non-daemon thread running and that was not allowing 
RS to stop cleanly. Our clusters are managed by Ambari and have auto restart 
capability within them. But since the process was running and pid file was 
present, Ambari also couldn't do much. There will be some bug where we will 
miss to stop some daemon thread but there should be some maximum amount of time 
we should wait before exiting the thread.

Relevant code: 
[HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]


{code:java}
logProcessInfo(getConf());
HRegionServer hrs = 
HRegionServer.constructRegionServer(regionServerClass, conf);
hrs.start();
hrs.join();  -> This should be a timed join.
if (hrs.isAborted()) {
  throw new RuntimeException("HRegionServer Aborted");
}
  }
{code}



> Region Server doesn't exit cleanly incase it crashes.
> -
>
> Key: HBASE-26468
> URL: https://issues.apache.org/jira/browse/HBASE-26468
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 1.6.0
>Reporter: Rushabh Shah
>Priority: Major
>
> Observed this in our production cluster running 1.6 version.
> RS crashed due to some reason but the process was still running. On debugging 
> more, found out there was 1 non-daemon thread running and that was not 
> allowing RS to exit cleanly. Our clusters are managed by Ambari and have auto 
> restart capability within them. But since the process was running and pid 
> file was present, Ambari also couldn't do much. There will be some bug where 
> we will miss to stop some daemon thread but there should be some maximum 
> amount of time we should wait before exiting the thread.
> Relevant code: 
> [HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]
> {code:java}
> logProcessInfo(getConf());
> HRegionServer hrs = 
> HRegionServer.constructRegionServer(regionServerClass, conf);
> hrs.start();
> hrs.join();  -> This should be a timed join.
> if (hrs.isAborted()) {
>   throw new RuntimeException("HRegionServer Aborted");
> }
>   }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26468) Region Server doesn't exit cleanly incase it crashes.

2021-11-18 Thread Rushabh Shah (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26468?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Rushabh Shah updated HBASE-26468:
-
Description: 
Observed this in our production cluster running 1.6 version.
RS crashed due to some reason but the process was still running. On debugging 
more, found out there was 1 non-daemon thread running and that was not allowing 
RS to exit cleanly. Our clusters are managed by Ambari and have auto restart 
capability within them. But since the process was running and pid file was 
present, Ambari also couldn't do much. There will be some bug where we will 
miss to stop some non daemon thread but there should be some maximum amount of 
time we should wait before exiting the thread.

Relevant code: 
[HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]
{code:java}
logProcessInfo(getConf());
HRegionServer hrs = 
HRegionServer.constructRegionServer(regionServerClass, conf);
hrs.start();
hrs.join();  -> This should be a timed join.
if (hrs.isAborted()) {
  throw new RuntimeException("HRegionServer Aborted");
}
  }
{code}

  was:
Observed this in our production cluster running 1.6 version.
RS crashed due to some reason but the process was still running. On debugging 
more, found out there was 1 non-daemon thread running and that was not allowing 
RS to exit cleanly. Our clusters are managed by Ambari and have auto restart 
capability within them. But since the process was running and pid file was 
present, Ambari also couldn't do much. There will be some bug where we will 
miss to stop some daemon thread but there should be some maximum amount of time 
we should wait before exiting the thread.

Relevant code: 
[HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]
{code:java}
logProcessInfo(getConf());
HRegionServer hrs = 
HRegionServer.constructRegionServer(regionServerClass, conf);
hrs.start();
hrs.join();  -> This should be a timed join.
if (hrs.isAborted()) {
  throw new RuntimeException("HRegionServer Aborted");
}
  }
{code}


> Region Server doesn't exit cleanly incase it crashes.
> -
>
> Key: HBASE-26468
> URL: https://issues.apache.org/jira/browse/HBASE-26468
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 1.6.0
>Reporter: Rushabh Shah
>Priority: Major
>
> Observed this in our production cluster running 1.6 version.
> RS crashed due to some reason but the process was still running. On debugging 
> more, found out there was 1 non-daemon thread running and that was not 
> allowing RS to exit cleanly. Our clusters are managed by Ambari and have auto 
> restart capability within them. But since the process was running and pid 
> file was present, Ambari also couldn't do much. There will be some bug where 
> we will miss to stop some non daemon thread but there should be some maximum 
> amount of time we should wait before exiting the thread.
> Relevant code: 
> [HRegionServerCommandLine.java|https://github.com/apache/hbase/blob/branch-2/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServerCommandLine.java]
> {code:java}
> logProcessInfo(getConf());
> HRegionServer hrs = 
> HRegionServer.constructRegionServer(regionServerClass, conf);
> hrs.start();
> hrs.join();  -> This should be a timed join.
> if (hrs.isAborted()) {
>   throw new RuntimeException("HRegionServer Aborted");
> }
>   }
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973322556


   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 31s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 14s |  master passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   9m 59s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 49s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 21s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 23s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 23s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |  11m 32s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 46s |  the patch passed  |
   ||| _ Other Tests _ |
   | -1 :x: |  unit  | 169m 39s |  hbase-server in the patch failed.  |
   |  |   | 208m 50s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3858 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux a50e3718afc2 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 
11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | unit | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt
 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/testReport/
 |
   | Max. process+thread count | 3327 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/1/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3852: HBASE-26458 Update Snapshot TTL doc

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3852:
URL: https://github.com/apache/hbase/pull/3852#issuecomment-973323831


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 29s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 16s |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 50s |  master passed  |
   | +1 :green_heart: |  compile  |   3m 13s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   8m 22s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   4m 19s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 26s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 12s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 12s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m 15s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   4m 25s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 207m 40s |  root in the patch passed.  |
   |  |   | 253m 39s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3852 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 4770328ba33d 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 
11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/testReport/
 |
   | Max. process+thread count | 7568 (vs. ulimit of 3) |
   | modules | C: hbase-common hbase-client hbase-server . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3855: HBASE-26422 Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3855:
URL: https://github.com/apache/hbase/pull/3855#issuecomment-973417187


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m 36s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ HBASE-25302 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 36s |  HBASE-25302 passed  |
   | +1 :green_heart: |  compile  |   1m 26s |  HBASE-25302 passed  |
   | +1 :green_heart: |  shadedjars  |   9m 27s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 51s |  HBASE-25302 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   5m 15s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 24s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 24s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   9m 10s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 43s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 211m 39s |  hbase-server in the patch passed.  
|
   |  |   | 249m  7s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3855 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 758973177dea 4.15.0-147-generic #151-Ubuntu SMP Fri Jun 18 
19:21:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-25302 / b2571df7ae |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/testReport/
 |
   | Max. process+thread count | 3460 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3855: HBASE-26422 Support priority select reference files in StripeCompactionPolicy

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3855:
URL: https://github.com/apache/hbase/pull/3855#issuecomment-973422824


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   1m  2s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ HBASE-25302 Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 27s |  HBASE-25302 passed  |
   | +1 :green_heart: |  compile  |   1m  3s |  HBASE-25302 passed  |
   | +1 :green_heart: |  shadedjars  |   9m  8s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 39s |  HBASE-25302 passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 15s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m  4s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m  4s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   9m  6s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | -0 :warning: |  javadoc  |   0m 38s |  hbase-server generated 1 new + 21 
unchanged - 0 fixed = 22 total (was 21)  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 216m 32s |  hbase-server in the patch passed.  
|
   |  |   | 251m 17s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3855 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 9191a9b41411 4.15.0-143-generic #147-Ubuntu SMP Wed Apr 14 
16:10:11 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | HBASE-25302 / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | javadoc | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/artifact/yetus-jdk8-hadoop3-check/output/diff-javadoc-javadoc-hbase-server.txt
 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/testReport/
 |
   | Max. process+thread count | 3518 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3855/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3857: HBASE-26458 Add UNSET_SNAPSHOT_PROP and fix TTL defaulting

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3857:
URL: https://github.com/apache/hbase/pull/3857#issuecomment-973500407


   :broken_heart: **-1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   5m 38s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   | -0 :warning: |  test4tests  |   0m  0s |  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.  |
   ||| _ branch-1 Compile Tests _ |
   | +0 :ok: |  mvndep  |   2m 34s |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   9m 30s |  branch-1 passed  |
   | +1 :green_heart: |  compile  |   2m 37s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  compile  |   2m 54s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +1 :green_heart: |  checkstyle  |   8m 56s |  branch-1 passed  |
   | +0 :ok: |  refguide  |   4m 55s |  branch has no errors when building the 
reference guide. See footer for rendered docs, which you should manually 
inspect.  |
   | +1 :green_heart: |  shadedjars  |   4m  2s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   4m 27s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  javadoc  |   5m  2s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +0 :ok: |  spotbugs  |   3m 28s |  Used deprecated FindBugs config; 
considering switching to SpotBugs.  |
   | +1 :green_heart: |  findbugs  |  18m 41s |  branch-1 passed  |
   ||| _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 20s |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   2m 40s |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 54s |  the patch passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  javac  |   2m 54s |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 43s |  the patch passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +1 :green_heart: |  javac  |   2m 43s |  the patch passed  |
   | +1 :green_heart: |  checkstyle  |   9m 13s |  the patch passed  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +0 :ok: |  refguide  |   4m 22s |  patch has no errors when building the 
reference guide. See footer for rendered docs, which you should manually 
inspect.  |
   | +1 :green_heart: |  shadedjars  |   4m  3s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  hadoopcheck  |   6m 29s |  Patch does not cause any 
errors with Hadoop 2.8.5 2.9.2.  |
   | +1 :green_heart: |  javadoc  |   4m  2s |  the patch passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  javadoc  |   4m 44s |  the patch passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +1 :green_heart: |  findbugs  |  17m 22s |  the patch passed  |
   ||| _ Other Tests _ |
   | -1 :x: |  unit  | 199m 16s |  root in the patch failed.  |
   | +1 :green_heart: |  asflicense  |   2m 12s |  The patch does not generate 
ASF License warnings.  |
   |  |   | 336m 19s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/1/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3857 |
   | Optional Tests | dupname asflicense javac javadoc unit spotbugs findbugs 
shadedjars hadoopcheck hbaseanti checkstyle compile refguide |
   | uname | Linux 0aaeee3177db 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 
23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | 
/home/jenkins/jenkins-agent/workspace/Base-PreCommit-GitHub-PR_PR-3857/out/precommit/personality/provided.sh
 |
   | git revision | branch-1 / 0d214ff53e |
   | Default Java | Azul Systems, Inc.-1.7.0_272-b10 |
   | Multi-JDK versions | /usr/lib/jvm/zulu-8-amd64:Azul Systems, 
Inc.-1.8.0_262-b19 /usr/lib/jvm/zulu-7-amd64:Azul Systems, Inc.-1.7.0_272-b10 |
   | refguide | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/1/artifact/out/branch-site/book.html
 |
   | refguide | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/1/artifact/out/patch-site/book.html
 |
   | unit | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/1/artifact/out/

[GitHub] [hbase] Apache-HBase commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973656633


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 27s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 13s |  master passed  |
   | +1 :green_heart: |  compile  |   3m 13s |  master passed  |
   | +1 :green_heart: |  checkstyle  |   1m  5s |  master passed  |
   | +1 :green_heart: |  spotbugs  |   2m  7s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 49s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m 10s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m 10s |  the patch passed  |
   | -0 :warning: |  checkstyle  |   1m  3s |  hbase-server: The patch 
generated 1 new + 18 unchanged - 0 fixed = 19 total (was 18)  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +1 :green_heart: |  hadoopcheck  |  19m 17s |  Patch does not cause any 
errors with Hadoop 3.1.2 3.2.2 3.3.1.  |
   | +1 :green_heart: |  spotbugs  |   2m 15s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  asflicense  |   0m 16s |  The patch does not generate 
ASF License warnings.  |
   |  |   |  49m  9s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/artifact/yetus-general-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3858 |
   | Optional Tests | dupname asflicense javac spotbugs hadoopcheck hbaseanti 
checkstyle compile |
   | uname | Linux 7f38fa9e3eba 4.15.0-156-generic #163-Ubuntu SMP Thu Aug 19 
23:31:58 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   | checkstyle | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/artifact/yetus-general-check/output/diff-checkstyle-hbase-server.txt
 |
   | Max. process+thread count | 95 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 spotbugs=4.2.2 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3852: HBASE-26458 Update Snapshot TTL doc

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3852:
URL: https://github.com/apache/hbase/pull/3852#issuecomment-973661579


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   6m 14s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 31s |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   4m 19s |  master passed  |
   | +1 :green_heart: |  compile  |   3m  0s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   9m  8s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   3m 33s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 13s |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   4m 15s |  the patch passed  |
   | +1 :green_heart: |  compile  |   3m  0s |  the patch passed  |
   | +1 :green_heart: |  javac  |   3m  0s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   9m  9s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   3m 38s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 425m 50s |  root in the patch passed.  |
   |  |   | 475m 42s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3852 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 8d50511c12e6 4.15.0-142-generic #146-Ubuntu SMP Tue Apr 13 
01:11:19 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/testReport/
 |
   | Max. process+thread count | 3927 (vs. ulimit of 3) |
   | modules | C: hbase-common hbase-client hbase-server . U: . |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3852/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Commented] (HBASE-26421) Use HFileLink file to replace entire file‘s reference when splitting

2021-11-18 Thread Hudson (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-26421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446265#comment-17446265
 ] 

Hudson commented on HBASE-26421:


Results for branch branch-2.4
[build #241 on 
builds.a.o|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2.4/241/]:
 (x) *{color:red}-1 overall{color}*

details (if available):

(/) {color:green}+1 general checks{color}
-- For more information [see general 
report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2.4/241/General_20Nightly_20Build_20Report/]




(/) {color:green}+1 jdk8 hadoop2 checks{color}
-- For more information [see jdk8 (hadoop2) 
report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2.4/241/JDK8_20Nightly_20Build_20Report_20_28Hadoop2_29/]


(/) {color:green}+1 jdk8 hadoop3 checks{color}
-- For more information [see jdk8 (hadoop3) 
report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2.4/241/JDK8_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 jdk11 hadoop3 checks{color}
-- For more information [see jdk11 
report|https://ci-hadoop.apache.org/job/HBase/job/HBase%20Nightly/job/branch-2.4/241/JDK11_20Nightly_20Build_20Report_20_28Hadoop3_29/]


(/) {color:green}+1 source release artifact{color}
-- See build output for details.


(/) {color:green}+1 client integration test{color}


> Use HFileLink file to replace entire file‘s reference when splitting
> 
>
> Key: HBASE-26421
> URL: https://issues.apache.org/jira/browse/HBASE-26421
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2
>
>
> ++When splitting store files, if a file should be owned by only one child 
> region, then there will be an entire file's reference in the child region. We 
> can use HFileLink files, just like those in snapshot tables, to replace the 
> reference files that refer to entire files.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Assigned] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei reassigned HBASE-26465:


Assignee: chenglei

> MemStoreLAB may be released early when its SegmentScanner is scanning
> -
>
> Key: HBASE-26465
> URL: https://issues.apache.org/jira/browse/HBASE-26465
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.4.8
>Reporter: chenglei
>Assignee: chenglei
>Priority: Critical
>
> HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
> {{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
> {{DefaultMemStore#snapshot}} which may be used by 
> {{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
> {{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
> {{DefaultMemStore#snapshot}}  may be released early when its 
> {{SegmentScanner}} is scanning.
> Considering follow thread sequences: 
> 1.The flush thread starts {{DefaultMemStore}} flushing after some cells have 
> be added to {{DefaultMemStore}}.
> 2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
>{{HStore#updateStorefiles}} after completed flushing memStore to hfile.
> 3.The scan thread starts and stopping after 
> {{DefaultMemStore.snapshot.getAllSegments}} in
>{{DefaultMemStore#getScanners}},here the scan thread gets the 
> {{DefaultMemStore#snapshot}} which is created by the flush thread.
> 4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
> {{DefaultMemStore#snapshot}},because the reference count of the corresponding 
>  {{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} 
> are recycled.
> 5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
> {{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the 
> reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
> corresponding {{MemStoreLABImpl}} are recycled by step 4, and these 
> {{Chunks}} may be overwritten by other write threads, which may cause serious 
> problem.
> I simulate above case in my PR, and my Fix in the PR is as following:
> 1.Moving  {{MemStore.clearSnapshot}} back under write lock of 
> {{HStore#lock}}, because {{DefaultMemStore#getScanners}} is protected under 
> the read lock of {{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
>{{DefaultMemStore#clearSnapshot}} could not execute concurrently.
> 2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
> count, so checking and increasing or decreasing is done in atomicity and if 
> there is illegal state in  reference count, it would throw exception rather 
> than corrupt data.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[GitHub] [hbase] Apache-HBase commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973714887


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   3m 55s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 54s |  master passed  |
   | +1 :green_heart: |  compile  |   1m 14s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   8m 17s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 43s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   4m 25s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m 13s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m 13s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m 12s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 40s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 138m 33s |  hbase-server in the patch passed.  
|
   |  |   | 174m 24s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3858 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 613c61d80117 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 
11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-11.0.10+9 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/testReport/
 |
   | Max. process+thread count | 4017 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] Apache-HBase commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973715616


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 26s |  Docker mode activated.  |
   | -0 :warning: |  yetus  |   0m  3s |  Unprocessed flag(s): 
--brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list 
--whitespace-tabs-ignore-list --quick-hadoopcheck  |
   ||| _ Prechecks _ |
   ||| _ master Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 47s |  master passed  |
   | +1 :green_heart: |  compile  |   0m 59s |  master passed  |
   | +1 :green_heart: |  shadedjars  |   8m 20s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 36s |  master passed  |
   ||| _ Patch Compile Tests _ |
   | +1 :green_heart: |  mvninstall  |   3m 51s |  the patch passed  |
   | +1 :green_heart: |  compile  |   1m  1s |  the patch passed  |
   | +1 :green_heart: |  javac  |   1m  1s |  the patch passed  |
   | +1 :green_heart: |  shadedjars  |   8m 15s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   0m 39s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 145m 47s |  hbase-server in the patch passed.  
|
   |  |   | 176m  1s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3858 |
   | Optional Tests | javac javadoc unit shadedjars compile |
   | uname | Linux 92365d72fb80 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 
11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | dev-support/hbase-personality.sh |
   | git revision | master / b2571df7ae |
   | Default Java | AdoptOpenJDK-1.8.0_282-b08 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/testReport/
 |
   | Max. process+thread count | 4763 (vs. ulimit of 3) |
   | modules | C: hbase-server U: hbase-server |
   | Console output | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3858/2/console
 |
   | versions | git=2.17.1 maven=3.6.3 |
   | Powered by | Apache Yetus 0.12.0 https://yetus.apache.org |
   
   
   This message was automatically generated.
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [hbase] zhengzhuobinzzb commented on pull request #3858: HBASE-26467 Fix bug for MemStoreLABImpl.forceCopyOfBigCellInto(Cell)

2021-11-18 Thread GitBox


zhengzhuobinzzb commented on pull request #3858:
URL: https://github.com/apache/hbase/pull/3858#issuecomment-973723923


   Hi, @Apache9 @apurtell @comnetwork @sunhelly 
   Please review in your free time, Thank you ~~


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in 
following line 1239 in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
{code:java}
1221private boolean updateStorefiles(List sfs, long snapshotId) 
throws IOException {
1223this.lock.writeLock().lock();
1224   try {
1225  this.storeEngine.getStoreFileManager().insertNewFiles(sfs);
1226} finally {
1227  // We need the lock, as long as we are updating the storeFiles
1228  // or changing the memstore. Let us release it before calling
1229  // notifyChangeReadersObservers. See HBASE-4485 for a possible
1230  // deadlock scenario that could have happened if continue to hold
1231  // the lock.
1232 this.lock.writeLock().unlock();
1233   }
1234// We do not need to call clearSnapshot method inside the write lock.
1235// The clearSnapshot itself is thread safe, which can be called at the 
same time with other
1236// memstore operations expect snapshot and clearSnapshot. And for these 
two methods, in HRegion
1237// we can guarantee that there is only one onging flush, so they will 
be no race.
1238if (snapshotId > 0) {
1239  this.memstore.clearSnapshot(snapshotId);
1240}
{code}

3.The scan thread starts and stopping after 
{{DefaultMemStore.snapshot.getAllSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding  
{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} are 
recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the 
reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may be overwritten by other write threads, which may cause serious problem.


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.

3.The scan thread starts and stopping after 
{{DefaultMemStore.snapshot.getAllSegments}} in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding  
{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} are 
recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the 
reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
m

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in 
following line 1238 in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
{code:java}
1221private boolean updateStorefiles(List sfs, long snapshotId) 
throws IOException {
1222this.lock.writeLock().lock();
1223   try {
1224  this.storeEngine.getStoreFileManager().insertNewFiles(sfs);
1225} finally {
1226  // We need the lock, as long as we are updating the storeFiles
1227  // or changing the memstore. Let us release it before calling
1228  // notifyChangeReadersObservers. See HBASE-4485 for a possible
1229  // deadlock scenario that could have happened if continue to hold
1230  // the lock.
1231 this.lock.writeLock().unlock();
1232   }
1233// We do not need to call clearSnapshot method inside the write lock.
1234// The clearSnapshot itself is thread safe, which can be called at the 
same time with other
1235// memstore operations expect snapshot and clearSnapshot. And for these 
two methods, in HRegion
1236// we can guarantee that there is only one onging flush, so they will 
be no race.
1237if (snapshotId > 0) {
1238  this.memstore.clearSnapshot(snapshotId);
1239}
..
{code}

3.The scan thread starts and stopping after 
{{DefaultMemStore.snapshot.getAllSegments}} in following line 141 in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.
{code:java}
138 public List getScanners(long readPt) throws IOException {
139List list = new ArrayList<>();
140addToScanners(getActive(), readPt, list);
141addToScanners(snapshot.getAllSegments(), readPt, list);
142return list;
143 }
{code}

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}},because the reference count of the corresponding  
{{MemStoreLABImpl}} is 0, the Chunks in corresponding {{MemStoreLABImpl}} are 
recycled.

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and increase the 
reference count of the corresponding {{MemStoreLABImpl}}, but {{Chunks}} in 
corresponding {{MemStoreLABImpl}} are recycled by step 4, and these {{Chunks}} 
may be overwritten by other write threads, which may cause serious problem.


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in 
following line 1239 in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
{code:java}
1221private boolean updateStorefiles(List sfs, long snapshotId) 
throws IOException {
1223this.lock.writeLock().lock();
1224   try {
1225  this.storeEngine.getStoreFileManager().insertNewFiles(sfs);
1226} finally {
1227  // We need the lock, as long as we are updating the storeFiles
1228  // or changing the memstore. Let us release it before calling
1229  // notifyChangeReadersObservers. See HBASE-4485 for a possible
1230 

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in 
following line 1238 in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
{code:java}
1221private boolean updateStorefiles(List sfs, long snapshotId) 
throws IOException {
1222this.lock.writeLock().lock();
1223   try {
1224  this.storeEngine.getStoreFileManager().insertNewFiles(sfs);
1225} finally {
1226  // We need the lock, as long as we are updating the storeFiles
1227  // or changing the memstore. Let us release it before calling
1228  // notifyChangeReadersObservers. See HBASE-4485 for a possible
1229  // deadlock scenario that could have happened if continue to hold
1230  // the lock.
1231 this.lock.writeLock().unlock();
1232   }
1233// We do not need to call clearSnapshot method inside the write lock.
1234// The clearSnapshot itself is thread safe, which can be called at the 
same time with other
1235// memstore operations expect snapshot and clearSnapshot. And for these 
two methods, in HRegion
1236// we can guarantee that there is only one onging flush, so they will 
be no race.
1237if (snapshotId > 0) {
1238  this.memstore.clearSnapshot(snapshotId);
1239}
..
{code}

3.The scan thread starts and stopping after 
{{DefaultMemStore.snapshot.getAllSegments}} in following line 141 in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.
{code:java}
138 public List getScanners(long readPt) throws IOException {
139List list = new ArrayList<>();
140addToScanners(getActive(), readPt, list);
141addToScanners(snapshot.getAllSegments(), readPt, list);
142return list;
143 }
{code}

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}} in following line 253,because the reference count 
of the corresponding  {{MemStoreLABImpl}} is decreased to 0, the Chunks in 
corresponding {{MemStoreLABImpl}} are recycled.
{code:java}
240  public void clearSnapshot(long id) throws UnexpectedStateException {
..
248Segment oldSnapshot = this.snapshot;
249if (!this.snapshot.isEmpty()) {
250  this.snapshot = 
SegmentFactory.instance().createImmutableSegment(this.comparator);
251}
252this.snapshotId = NO_SNAPSHOT_ID;
253oldSnapshot.close();
254  }
{code}

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and invokes 
{{MemStoreLABImpl.incScannerCount}} in line 281 to increase the reference count 
, but here {{MemStoreLABImpl.incScannerCount}} does not check that the 
reference count is already 0 and  {{Chunks}}  are recycled by step 4, so these 
{{Chunks}} may be overwritten by other write threads, which may cause serious 
problem.
{code:java}
280   public void incScannerCount() {
281   this.openScannerCount.incrementAndGet();
282 }
{code}


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{Default

[jira] [Updated] (HBASE-26465) MemStoreLAB may be released early when its SegmentScanner is scanning

2021-11-18 Thread chenglei (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

chenglei updated HBASE-26465:
-
Description: 
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}}.

2.The flush thread stopping before {{DefaultMemStore#clearSnapshot}} in 
following line 1238 in
   {{HStore#updateStorefiles}} after completed flushing memStore to hfile.
{code:java}
1221private boolean updateStorefiles(List sfs, long snapshotId) 
throws IOException {
1222this.lock.writeLock().lock();
1223   try {
1224  this.storeEngine.getStoreFileManager().insertNewFiles(sfs);
1225} finally {
1226  // We need the lock, as long as we are updating the storeFiles
1227  // or changing the memstore. Let us release it before calling
1228  // notifyChangeReadersObservers. See HBASE-4485 for a possible
1229  // deadlock scenario that could have happened if continue to hold
1230  // the lock.
1231 this.lock.writeLock().unlock();
1232   }
1233// We do not need to call clearSnapshot method inside the write lock.
1234// The clearSnapshot itself is thread safe, which can be called at the 
same time with other
1235// memstore operations expect snapshot and clearSnapshot. And for these 
two methods, in HRegion
1236// we can guarantee that there is only one onging flush, so they will 
be no race.
1237if (snapshotId > 0) {
1238  this.memstore.clearSnapshot(snapshotId);
1239}
..
{code}

3.The scan thread starts and stopping after 
{{DefaultMemStore.snapshot.getAllSegments}} in following line 141 in
   {{DefaultMemStore#getScanners}},here the scan thread gets the 
{{DefaultMemStore#snapshot}} which is created by the flush thread.
{code:java}
138 public List getScanners(long readPt) throws IOException {
139List list = new ArrayList<>();
140addToScanners(getActive(), readPt, list);
141addToScanners(snapshot.getAllSegments(), readPt, list);
142return list;
143 }
{code}

4.The flush thread continues {{DefaultMemStore#clearSnapshot}} and close 
{{DefaultMemStore#snapshot}} in following line 253,because the reference count 
of the corresponding  {{MemStoreLABImpl}} is decreased to 0, the Chunks in 
corresponding {{MemStoreLABImpl}} are recycled.
{code:java}
240  public void clearSnapshot(long id) throws UnexpectedStateException {
..
248Segment oldSnapshot = this.snapshot;
249if (!this.snapshot.isEmpty()) {
250  this.snapshot = 
SegmentFactory.instance().createImmutableSegment(this.comparator);
251}
252this.snapshotId = NO_SNAPSHOT_ID;
253oldSnapshot.close();
254  }
{code}

5.The scan thread continues {{DefaultMemStore#getScanners}}, and create a 
{{SegmentScanner}} for this {{DefaultMemStore#snapshot}}, and invokes 
{{MemStoreLABImpl.incScannerCount}} in line 281 to increase the reference count 
, but here {{MemStoreLABImpl.incScannerCount}} does not check that the 
reference count is already 0 and  {{Chunks}}  are already recycled by step 4, 
so these {{Chunks}} may be overwritten by other write threads when the 
{{SegmentScanner}} is scanning, which may cause serious problem.
{code:java}
280   public void incScannerCount() {
281   this.openScannerCount.incrementAndGet();
282 }
{code}


I simulate above case in my PR, and my Fix in the PR is as following:
1.Moving  {{MemStore.clearSnapshot}} back under write lock of {{HStore#lock}}, 
because {{DefaultMemStore#getScanners}} is protected under the read lock of 
{{HStore#lock}}, so {{DefaultMemStore#getScanners}} and
   {{DefaultMemStore#clearSnapshot}} could not execute concurrently.
2. Introducing {{RefCnt}} into {{MemStoreLABImpl}}  to replace old reference 
count, so checking and increasing or decreasing is done in atomicity and if 
there is illegal state in  reference count, it would throw exception rather 
than corrupt data.

  was:
HBASE-26144 moved {{MemStore.clearSnapshot}} out of write lock of 
{{HStore#lock}}, but because {{MemStore.clearSnapshot}}  closed 
{{DefaultMemStore#snapshot}} which may be used by 
{{DefaultMemStore#getScanners}}, when {{DefaultMemStore#getScanners}} and 
{{MemStore}} flushing execute conurrently, {{MemStoreLAB}} used by 
{{DefaultMemStore#snapshot}}  may be released early when its {{SegmentScanner}} 
is scanning.

Considering follow thread sequences: 
1.The flush thread starts {{DefaultMemStore}} flushing after some cells have be 
added to {{DefaultMemStore}

[GitHub] [hbase] Apache-HBase commented on pull request #3857: HBASE-26458 Add UNSET_SNAPSHOT_PROP and fix TTL defaulting

2021-11-18 Thread GitBox


Apache-HBase commented on pull request #3857:
URL: https://github.com/apache/hbase/pull/3857#issuecomment-973763285


   :confetti_ball: **+1 overall**
   
   
   
   
   
   
   | Vote | Subsystem | Runtime | Comment |
   |::|--:|:|:|
   | +0 :ok: |  reexec  |   0m 37s |  Docker mode activated.  |
   ||| _ Prechecks _ |
   | +1 :green_heart: |  dupname  |   0m  0s |  No case conflicting files 
found.  |
   | +1 :green_heart: |  hbaseanti  |   0m  0s |  Patch does not have any 
anti-patterns.  |
   | +1 :green_heart: |  @author  |   0m  0s |  The patch does not contain any 
@author tags.  |
   | -0 :warning: |  test4tests  |   0m  0s |  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.  |
   ||| _ branch-1 Compile Tests _ |
   | +0 :ok: |  mvndep  |   2m 32s |  Maven dependency ordering for branch  |
   | +1 :green_heart: |  mvninstall  |   8m 37s |  branch-1 passed  |
   | +1 :green_heart: |  compile  |   2m 18s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  compile  |   2m  4s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +1 :green_heart: |  checkstyle  |   7m 58s |  branch-1 passed  |
   | +0 :ok: |  refguide  |   4m 11s |  branch has no errors when building the 
reference guide. See footer for rendered docs, which you should manually 
inspect.  |
   | +1 :green_heart: |  shadedjars  |   3m 24s |  branch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  javadoc  |   3m 53s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  javadoc  |   4m 29s |  branch-1 passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +0 :ok: |  spotbugs  |   2m 59s |  Used deprecated FindBugs config; 
considering switching to SpotBugs.  |
   | +1 :green_heart: |  findbugs  |  16m 37s |  branch-1 passed  |
   ||| _ Patch Compile Tests _ |
   | +0 :ok: |  mvndep  |   0m 18s |  Maven dependency ordering for patch  |
   | +1 :green_heart: |  mvninstall  |   2m 18s |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m 10s |  the patch passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  javac  |   2m 10s |  the patch passed  |
   | +1 :green_heart: |  compile  |   2m  4s |  the patch passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +1 :green_heart: |  javac  |   2m  4s |  the patch passed  |
   | +1 :green_heart: |  checkstyle  |   7m 51s |  the patch passed  |
   | +1 :green_heart: |  whitespace  |   0m  0s |  The patch has no whitespace 
issues.  |
   | +0 :ok: |  refguide  |   3m  9s |  patch has no errors when building the 
reference guide. See footer for rendered docs, which you should manually 
inspect.  |
   | +1 :green_heart: |  shadedjars  |   3m 16s |  patch has no errors when 
building our shaded downstream artifacts.  |
   | +1 :green_heart: |  hadoopcheck  |   5m 25s |  Patch does not cause any 
errors with Hadoop 2.8.5 2.9.2.  |
   | +1 :green_heart: |  javadoc  |   3m 57s |  the patch passed with JDK Azul 
Systems, Inc.-1.8.0_262-b19  |
   | +1 :green_heart: |  javadoc  |   4m 33s |  the patch passed with JDK Azul 
Systems, Inc.-1.7.0_272-b10  |
   | +1 :green_heart: |  findbugs  |  17m  8s |  the patch passed  |
   ||| _ Other Tests _ |
   | +1 :green_heart: |  unit  | 193m  2s |  root in the patch passed.  |
   | +1 :green_heart: |  asflicense  |   2m  8s |  The patch does not generate 
ASF License warnings.  |
   |  |   | 309m  3s |   |
   
   
   | Subsystem | Report/Notes |
   |--:|:-|
   | Docker | ClientAPI=1.41 ServerAPI=1.41 base: 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/2/artifact/out/Dockerfile
 |
   | GITHUB PR | https://github.com/apache/hbase/pull/3857 |
   | Optional Tests | dupname asflicense javac javadoc unit spotbugs findbugs 
shadedjars hadoopcheck hbaseanti checkstyle compile refguide |
   | uname | Linux a402bcadd989 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 
23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux |
   | Build tool | maven |
   | Personality | 
/home/jenkins/jenkins-agent/workspace/Base-PreCommit-GitHub-PR_PR-3857/out/precommit/personality/provided.sh
 |
   | git revision | branch-1 / 0d214ff53e |
   | Default Java | Azul Systems, Inc.-1.7.0_272-b10 |
   | Multi-JDK versions | /usr/lib/jvm/zulu-8-amd64:Azul Systems, 
Inc.-1.8.0_262-b19 /usr/lib/jvm/zulu-7-amd64:Azul Systems, Inc.-1.7.0_272-b10 |
   | refguide | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/2/artifact/out/branch-site/book.html
 |
   | refguide | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-3857/2/artifact/out/patch-site/book.html
 |
   |  Test Results | 
https://ci-hadoop.apache.org/job/HBase/job/HBase-PreCommit-GitHub-PR/job/PR-

[jira] [Commented] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446287#comment-17446287
 ] 

Xiaolin Ha commented on HBASE-25905:


The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
    ...
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
    ...
4. Regionserver abort(server.isAborted() is true), shutdown the wal factory, 
enter the AsyncFSWAL#waitForSafePoint, waiting on ConditionObject 
readyForRollingCond, and current state is waiting for roll, triggers a consumer,
just return without signal the readyForRollingCond, because current 
fileLengthAtLastSync = writer.getLength() and unackedAppends is not empty,
      if (waitingRoll(currentEpochAndState)) {
        if (writer.getLength() > fileLengthAtLastSync) {
          // issue a sync
          sync(writer);
        } else {
          if (unackedAppends.isEmpty()) {
            readyForRolling = true;
            readyForRollingCond.signalAll();
          }
        }
        return;
      }
5. the thread calling sync(writer) in step 3 calls AsyncFSWAL#syncCompleted, 
when calling trySetReadyForRolling, find that unackedAppends is not empty, so 
just return without signal the readyForRollingCond,
private boolean trySetReadyForRolling() {
    // Check without holding lock first. Usually we will just return here.
    // waitingRoll is volatile and unacedEntries is only accessed inside event 
loop so it is safe to
    // check them outside the consumeLock.
    if (!waitingRoll(epochAndState) || !unackedAppends.isEmpty()) {
      return false;
    }
...

6. Since the regionserver is aborted and last consumer has set 
AsyncFSWAL#waitingRoll be true, each consumer will just return like step 4;
7. Since the shutdown of WAL keeps the rollWriterLock, roll wal will not happen;
8. The regionserver thread stuck at AsyncFSWAL#waitForSafePoint.

> Shutdown of WAL stuck at waitForSafePoint
> -
>
> Key: HBASE-25905
> URL: https://issues.apache.org/jira/browse/HBASE-25905
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver, wal
>Affects Versions: 3.0.0-alpha-1, 2.0.0
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Critical
> Attachments: rs-jstack1, rs-jstack2, wal-stuck-error-logs.png
>
>
> We use the fan-out HDFS OutputStream and AsyncFSWAL on our clusters, but met 
> the problem than RS can not exit completely for several hours util manual 
> interventions.
> The two jstacks below show that the regionserver thread can waiting 
> unlimitedly in both 
> AsyncFSWAL#waitForSafePoint()
> {code:java}
> "regionserver/gh-data-hbase-finance08.mt/10.22.179.24:16020" #29 prio=5 
> os_prio=0 tid=0x7fb2feb5c000 nid=0xa92b waiting on condition 
> [0x7f9ccb992000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x7faea229a9d0> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitUninterruptibly(AbstractQueuedSynchronizer.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.waitForSafePoint(AsyncFSWAL.java:687)
> at 
> org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.doShutdown(AsyncFSWAL.java:743)
>

[jira] [Comment Edited] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446287#comment-17446287
 ] 

Xiaolin Ha edited comment on HBASE-25905 at 11/19/21, 5:23 AM:
---

The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}

3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
... {code}

4. Regionserver abort(server.isAborted() is true), shutdown the wal factory, 
enter the AsyncFSWAL#waitForSafePoint, waiting on ConditionObject 
readyForRollingCond, and current state is waiting for roll, triggers a consumer,
just return without signal the readyForRollingCond, because current 
fileLengthAtLastSync = writer.getLength() and unackedAppends is not empty,
     
{code:java}
if (waitingRoll(currentEpochAndState)) {
        if (writer.getLength() > fileLengthAtLastSync) {
          // issue a sync
          sync(writer);
        } else {
          if (unackedAppends.isEmpty()) {
            readyForRolling = true;
            readyForRollingCond.signalAll();
          }
        }
        return;
      }
... {code}

5. the thread calling sync(writer) in step 3 calls AsyncFSWAL#syncCompleted, 
when calling trySetReadyForRolling, find that unackedAppends is not empty, so 
just return without signal the readyForRollingCond,
{code:java}
private boolean trySetReadyForRolling() {
    // Check without holding lock first. Usually we will just return here.
    // waitingRoll is volatile and unacedEntries is only accessed inside event 
loop so it is safe to
    // check them outside the consumeLock.
    if (!waitingRoll(epochAndState) || !unackedAppends.isEmpty()) {
      return false;
    }
... {code}
6. Since the regionserver is aborted and last consumer has set 
AsyncFSWAL#waitingRoll be true, each consumer will just return like step 4;
7. Since the shutdown of WAL keeps the rollWriterLock, roll wal will not happen;
8. The regionserver thread stuck at AsyncFSWAL#waitForSafePoint.


was (Author: xiaolin ha):
The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
    ...
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.ge

[jira] [Comment Edited] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446287#comment-17446287
 ] 

Xiaolin Ha edited comment on HBASE-25905 at 11/19/21, 5:26 AM:
---

The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
... {code}
4. the thread calling sync(writer) in step 3 calls AsyncFSWAL#syncCompleted, 
when calling trySetReadyForRolling, find that unackedAppends is not empty, so 
just return without signal the readyForRollingCond,
{code:java}
private boolean trySetReadyForRolling() {
    // Check without holding lock first. Usually we will just return here.
    // waitingRoll is volatile and unacedEntries is only accessed inside event 
loop so it is safe to
    // check them outside the consumeLock.
    if (!waitingRoll(epochAndState) || !unackedAppends.isEmpty()) {
      return false;
    }
... {code}
 

5. Regionserver abort(server.isAborted() is true), shutdown the wal factory, 
enter the AsyncFSWAL#waitForSafePoint, waiting on ConditionObject 
readyForRollingCond, and current state is waiting for roll, triggers a consumer,
just return without signal the readyForRollingCond, because current 
fileLengthAtLastSync = writer.getLength() and unackedAppends is not empty,
     
{code:java}
if (waitingRoll(currentEpochAndState)) {
        if (writer.getLength() > fileLengthAtLastSync) {
          // issue a sync
          sync(writer);
        } else {
          if (unackedAppends.isEmpty()) {
            readyForRolling = true;
            readyForRollingCond.signalAll();
          }
        }
        return;
      }
... {code}
6. Since the regionserver is aborted and last consumer has set 
AsyncFSWAL#waitingRoll be true, each consumer will just return like step 4;
7. Since the shutdown of WAL keeps the rollWriterLock, roll wal will not happen;
8. The regionserver thread stuck at AsyncFSWAL#waitForSafePoint.


was (Author: xiaolin ha):
The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}

3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileL

[jira] [Comment Edited] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446287#comment-17446287
 ] 

Xiaolin Ha edited comment on HBASE-25905 at 11/19/21, 5:27 AM:
---

The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
... {code}
4. the thread calling sync(writer) in step 3 calls AsyncFSWAL#syncCompleted, 
when calling trySetReadyForRolling  just return,
{code:java}
private boolean trySetReadyForRolling() {
    // Check without holding lock first. Usually we will just return here.
    // waitingRoll is volatile and unacedEntries is only accessed inside event 
loop so it is safe to
    // check them outside the consumeLock.
    if (!waitingRoll(epochAndState) || !unackedAppends.isEmpty()) {
      return false;
    }
... {code}
 

5. Regionserver abort(server.isAborted() is true), shutdown the wal factory, 
enter the AsyncFSWAL#waitForSafePoint, waiting on ConditionObject 
readyForRollingCond, and current state is waiting for roll, triggers a consumer,
just return without signal the readyForRollingCond, because current 
fileLengthAtLastSync = writer.getLength() and unackedAppends is not empty,
     
{code:java}
if (waitingRoll(currentEpochAndState)) {
        if (writer.getLength() > fileLengthAtLastSync) {
          // issue a sync
          sync(writer);
        } else {
          if (unackedAppends.isEmpty()) {
            readyForRolling = true;
            readyForRollingCond.signalAll();
          }
        }
        return;
      }
... {code}
6. Since the regionserver is aborted and last consumer has set 
AsyncFSWAL#waitingRoll be true, each consumer will just return like step 4;
7. Since the shutdown of WAL keeps the rollWriterLock, roll wal will not happen;
8. The regionserver thread stuck at AsyncFSWAL#waitForSafePoint.


was (Author: xiaolin ha):
The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
... {code}
4. the thread calling sync(writer)

[jira] [Comment Edited] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446287#comment-17446287
 ] 

Xiaolin Ha edited comment on HBASE-25905 at 11/19/21, 5:28 AM:
---

The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
... {code}
4. the thread calling sync(writer) in step 3 calls AsyncFSWAL#syncCompleted, 
when calling trySetReadyForRolling  just return,
{code:java}
private boolean trySetReadyForRolling() {
    // Check without holding lock first. Usually we will just return here.
    // waitingRoll is volatile and unacedEntries is only accessed inside event 
loop so it is safe to
    // check them outside the consumeLock.
    if (!waitingRoll(epochAndState) || !unackedAppends.isEmpty()) {
      return false;
    }
... {code}
 

5. Regionserver abort(server.isAborted() is true), shutdown the wal factory, 
enter the AsyncFSWAL#waitForSafePoint, waiting on ConditionObject 
readyForRollingCond, and current state is waiting for roll, triggers a consumer,
just return without signal the readyForRollingCond, because current 
fileLengthAtLastSync = writer.getLength() and unackedAppends is not empty,
     
{code:java}
if (waitingRoll(currentEpochAndState)) {
        if (writer.getLength() > fileLengthAtLastSync) {
          // issue a sync
          sync(writer);
        } else {
          if (unackedAppends.isEmpty()) {
            readyForRolling = true;
            readyForRollingCond.signalAll();
          }
        }
        return;
      }
... {code}
6. Since the regionserver is aborted and last consumer has set 
AsyncFSWAL#waitingRoll be true, each consumer will just return like step 5;
7. Since the shutdown of WAL keeps the rollWriterLock, roll wal will not happen;
8. The regionserver thread stuck at AsyncFSWAL#waitForSafePoint.


was (Author: xiaolin ha):
The problem can be caused by the scenario as follows,

1. The consumer of WAL enters AsyncFSWAL#syncFailed, it will set writer broken 
and request roll writer, and also add all the unackedAppends back to the 
toWriteAppends;

2. Writer rolls and new WAL created, new consumer executed, when calling 
AsyncFSWAL#appendAndSync, add partial toWriteAppends to the writer, limited the 
writer length to the WAL_BATCH_SIZE. So after the consume, there are still some 
toWriteAppends and unackedAppends in the queue. 
{code:java}
for (Iterator iter = toWriteAppends.iterator(); iter.hasNext();) {
      FSWALEntry entry = iter.next();
      boolean appended;
      try {
        appended = appendEntry(writer, entry);
      } catch (IOException e) {
        throw new AssertionError("should not happen", e);
      }
      newHighestProcessedAppendTxid = entry.getTxid();
      iter.remove();
      if (appended) {
        // This is possible, when we fail to sync, we will add the 
unackedAppends back to
        // toWriteAppends, so here we may get an entry which is already in the 
unackedAppends.
        if (unackedAppends.isEmpty() || unackedAppends.peekLast().getTxid() < 
entry.getTxid()) {
          unackedAppends.addLast(entry);
        }
        if (writer.getLength() - fileLengthAtLastSync >= batchSize) {
          break;
        }
      }
    }
...{code}
3. sync(writer) is called, then 'fileLengthAtLastSync = writer.getLength()', 
{code:java}
private void sync(AsyncWriter writer) {
    fileLengthAtLastSync = writer.getLength();
... {code}
4. the thread calling sync(writer)

[GitHub] [hbase] sunhelly commented on pull request #3830: HBASE-26434 Compact L0 files for cold regions using StripeCompactionPolicy

2021-11-18 Thread GitBox


sunhelly commented on pull request #3830:
URL: https://github.com/apache/hbase/pull/3830#issuecomment-973769168


   @Apache9 can you help review this PR at your convenience? Thanks.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@hbase.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[jira] [Updated] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-25905:
---
Description: 
We use the fan-out HDFS OutputStream and AsyncFSWAL on our clusters, but met 
the problem than RS can not exit completely for several hours util manual 
interventions.

The two jstacks below show that the regionserver thread can waiting unlimitedly 
in both 

AsyncFSWAL#waitForSafePoint()
{code:java}
"regionserver/gh-data-hbase-finance08.mt/10.22.179.24:16020" #29 prio=5 
os_prio=0 tid=0x7fb2feb5c000 nid=0xa92b waiting on condition 
[0x7f9ccb992000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x7faea229a9d0> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitUninterruptibly(AbstractQueuedSynchronizer.java:1976)
at 
org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.waitForSafePoint(AsyncFSWAL.java:687)
at 
org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.doShutdown(AsyncFSWAL.java:743)
at 
org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.shutdown(AbstractFSWAL.java:900)
at 
org.apache.hadoop.hbase.wal.AbstractFSWALProvider.shutdown(AbstractFSWALProvider.java:182)
at 
org.apache.hadoop.hbase.wal.RegionGroupingProvider.shutdown(RegionGroupingProvider.java:232)
at org.apache.hadoop.hbase.wal.WALFactory.shutdown(WALFactory.java:271)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.shutdownWAL(HRegionServer.java:1405)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:1147)
at java.lang.Thread.run(Thread.java:745)
{code}
and the log roller stuck at waiting for lock
{code:java}
"regionserver/gh-data-hbase-finance08.mt/10.22.179.24:16020.logRoller" #322 
daemon prio=5 os_prio=0 tid=0x7fb2e11a4000 nid=0xa953 waiting on condition 
[0x7f9cbd9f1000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x7faea1217048> (a 
java.util.concurrent.locks.ReentrantLock$FairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at 
java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:224)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
at 
org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.rollWriter(AbstractFSWAL.java:822)
at 
org.apache.hadoop.hbase.wal.AbstractWALRoller$RollController.rollWal(AbstractWALRoller.java:269)
at 
org.apache.hadoop.hbase.wal.AbstractWALRoller.run(AbstractWALRoller.java:186){code}
 

  was:
We use the fan-out HDFS OutputStream and AsyncFSWAL on our clusters, but met 
the problem than RS can not exit completely for several hours util manual 
interventions.

The two jstacks below show that the regionserver thread can waiting unlimitedly 
in both 

AsyncFSWAL#waitForSafePoint()
{code:java}
"regionserver/gh-data-hbase-finance08.mt/10.22.179.24:16020" #29 prio=5 
os_prio=0 tid=0x7fb2feb5c000 nid=0xa92b waiting on condition 
[0x7f9ccb992000]
   java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for  <0x7faea229a9d0> (a 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitUninterruptibly(AbstractQueuedSynchronizer.java:1976)
at 
org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.waitForSafePoint(AsyncFSWAL.java:687)
at 
org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.doShutdown(AsyncFSWAL.java:743)
at 
org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.shutdown(AbstractFSWAL.java:900)
at 
org.apache.hadoop.hbase.wal.AbstractFSWALProvider.shutdown(AbstractFSWALProvider.java:182)
at 
org.apache.hadoop.hbase.wal.RegionGroupingProvider.shutdown(RegionGroupingProvider.java:232)
at org.apache.hadoop.hbase.wal.WALFactory.shutdown(WALFactory.java:271)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.shutdownWAL(HRegionServer.java:1405)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:1147)
at java.lang.Th

[jira] [Commented] (HBASE-25905) Shutdown of WAL stuck at waitForSafePoint

2021-11-18 Thread Xiaolin Ha (Jira)


[ 
https://issues.apache.org/jira/browse/HBASE-25905?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17446293#comment-17446293
 ] 

Xiaolin Ha commented on HBASE-25905:


[~comnetwork] [~zhangduo] I think the key problem here is that the entries in 
the writer content is not equal to the unackedAppends, only partial of 
toWriteAppends will be appended to the writer and flushed in one consume.

> Shutdown of WAL stuck at waitForSafePoint
> -
>
> Key: HBASE-25905
> URL: https://issues.apache.org/jira/browse/HBASE-25905
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver, wal
>Affects Versions: 3.0.0-alpha-1, 2.0.0
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Critical
> Attachments: rs-jstack1, rs-jstack2, wal-stuck-error-logs.png
>
>
> We use the fan-out HDFS OutputStream and AsyncFSWAL on our clusters, but met 
> the problem than RS can not exit completely for several hours util manual 
> interventions.
> The two jstacks below show that the regionserver thread can waiting 
> unlimitedly in both 
> AsyncFSWAL#waitForSafePoint()
> {code:java}
> "regionserver/gh-data-hbase-finance08.mt/10.22.179.24:16020" #29 prio=5 
> os_prio=0 tid=0x7fb2feb5c000 nid=0xa92b waiting on condition 
> [0x7f9ccb992000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x7faea229a9d0> (a 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitUninterruptibly(AbstractQueuedSynchronizer.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.waitForSafePoint(AsyncFSWAL.java:687)
> at 
> org.apache.hadoop.hbase.regionserver.wal.AsyncFSWAL.doShutdown(AsyncFSWAL.java:743)
> at 
> org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.shutdown(AbstractFSWAL.java:900)
> at 
> org.apache.hadoop.hbase.wal.AbstractFSWALProvider.shutdown(AbstractFSWALProvider.java:182)
> at 
> org.apache.hadoop.hbase.wal.RegionGroupingProvider.shutdown(RegionGroupingProvider.java:232)
> at 
> org.apache.hadoop.hbase.wal.WALFactory.shutdown(WALFactory.java:271)
> at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.shutdownWAL(HRegionServer.java:1405)
> at 
> org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:1147)
> at java.lang.Thread.run(Thread.java:745)
> {code}
> and the log roller stuck at waiting for lock
> {code:java}
> "regionserver/gh-data-hbase-finance08.mt/10.22.179.24:16020.logRoller" #322 
> daemon prio=5 os_prio=0 tid=0x7fb2e11a4000 nid=0xa953 waiting on 
> condition [0x7f9cbd9f1000]
>java.lang.Thread.State: WAITING (parking)
> at sun.misc.Unsafe.park(Native Method)
> - parking to wait for  <0x7faea1217048> (a 
> java.util.concurrent.locks.ReentrantLock$FairSync)
> at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
> at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
> at 
> java.util.concurrent.locks.ReentrantLock$FairSync.lock(ReentrantLock.java:224)
> at 
> java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
> at 
> org.apache.hadoop.hbase.regionserver.wal.AbstractFSWAL.rollWriter(AbstractFSWAL.java:822)
> at 
> org.apache.hadoop.hbase.wal.AbstractWALRoller$RollController.rollWal(AbstractWALRoller.java:269)
> at 
> org.apache.hadoop.hbase.wal.AbstractWALRoller.run(AbstractWALRoller.java:186){code}
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Created] (HBASE-26469) HBase shell has changed exit behavior

2021-11-18 Thread Sean Busbey (Jira)
Sean Busbey created HBASE-26469:
---

 Summary: HBase shell has changed exit behavior
 Key: HBASE-26469
 URL: https://issues.apache.org/jira/browse/HBASE-26469
 Project: HBase
  Issue Type: Bug
  Components: shell
Affects Versions: 2.4.8, 2.5.0, 3.0.0-alpha-2
Reporter: Sean Busbey


The HBase shell has changed behavior in a way that breaks being able to exit 
properly.

Two example scripts to act as stand ins for hbase shell scripts to "do 
something simple then exit":
{code}
tmp % echo "list\nexit" > clean_exit.rb
tmp % echo "list\nexit 1" > error_exit.rb
{code}

Giving these two scripts is possible:

* passed as a cli argument
* via redirected stdin

Additionally the shell invocation can be:

* in the default compatibility mode
* with the "non interactive" flag that gives an exit code that reflects runtime 
errors

I'll post logs of the details as attachments but here are some tables of the 
exit codes.

The {{clean_exit.rb}} invocations ought to exit with success, exit code 0.

|| ||  1.4.14 || 1.7.1 || 2.0.6 || 2.1.9 || 2.2.7 || 2.3.7 || 2.4.8 || 
master ||
| cli, default |0 |0   |0   |0   |0   |0   |1   |   
 1*   |
| cli, -n | 0 |0   |0   |0   |0   |0   |1   |  
hang   |
| stdin, default |  0 |0   |0   |0   |0   |0   |0   |   
 0|
| stdin, -n |   1 |1   |1   |1   |1   |1   |1*  |   
 1*   |

The {{error_exit.rb}} invocation should return a non-zero exit code, unless 
we're specifically trying to match a normal hbase shell session.

|| || 1.4.14 || 1.7.1 || 2.0.6 || 2.1.9 || 2.2.7 || 2.3.7 || 2.4.8 || 
master ||
| cli, default |   1 |1   |1   |1   |1   |1   |1*  |
1*   |
| cli, -n |1 |1   |1   |1   |1   |1   |1*  |  
hang   |
| stdin, default | 0 |0   |0   |0   |0   |0   |0   |
0|
| stdin, -n |  1 |1   |1   |1   |1   |1   |1*  |
1*   |

In cases marked with * the error details are different.

The biggest concern are the new-to-2.4 non-zero exit code when we should have a 
success and the hanging.

The former looks like this:

{code}
ERROR NoMethodError: private method `exit' called for nil:NilClass
{code}

The change in error details for the error exit script also shows this same 
detail.


This behavior appears to be a side effect of HBASE-11686. As far as I can tell, 
the IRB handling of 'exit' calls fail because we implement our own handling of 
sessoins rather than rely on the intended session interface. We never set a 
current session, and IRB's exit implementation presumes there will be one.

Running in debug shows this in a stacktrace:
{code}
Took 0.4563 seconds
ERROR NoMethodError: private method `exit' called for nil:NilClass
NoMethodError: private method `exit' called for nil:NilClass
 irb_exit at 
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/extend-command.rb:30
 evaluate at stdin:2
 eval at org/jruby/RubyKernel.java:1048
 evaluate at 
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/workspace.rb:85
  eval_io at uri:classloader:/shell.rb:327
 each_top_level_statement at 
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/ruby-lex.rb:246
 loop at org/jruby/RubyKernel.java:1442
 each_top_level_statement at 
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/ruby-lex.rb:232
catch at org/jruby/RubyKernel.java:1189
 each_top_level_statement at 
uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/ruby-lex.rb:231
  eval_io at uri:classloader:/shell.rb:326
  classpath:/jar-bootstrap.rb at classpath:/jar-bootstrap.rb:194
exception_handler at uri:classloader:/shell.rb:339
at classpath:/jar-bootstrap.rb:194
{code}

And in our version of IRB (0.9.6) [line 30 for 
extend-commands|https://github.com/ruby/irb/blob/v0.9.6/lib/irb/extend-command.rb#L30]
 corresponds to this code:
{code}
# Quits the current irb context
#
# +ret+ is the optional signal or message to send to Context#exit
#
# Same as IRB.CurrentContext.exit.
def irb_exit(ret = 0)
  irb_context.exit(ret)
end
{code}




--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26469) HBase shell has changed exit behavior

2021-11-18 Thread Sean Busbey (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26469?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sean Busbey updated HBASE-26469:

Attachment: hbase-2.3.7-exit-behavior.log
hbase-2.2.7-exit-behavior.log
hbase-2.1.9-exit-behavior.log
hbase-2.0.6-exit-behavior.log
hbase-1.4.14-exit-behavior.log
hbase-1.7.1-exit-behavior.log
hbase-3.0.0-alpha-2-exit-behavior.log
hbase-2.4.8-exit-behavior.log

> HBase shell has changed exit behavior
> -
>
> Key: HBASE-26469
> URL: https://issues.apache.org/jira/browse/HBASE-26469
> Project: HBase
>  Issue Type: Bug
>  Components: shell
>Affects Versions: 2.5.0, 3.0.0-alpha-2, 2.4.8
>Reporter: Sean Busbey
>Priority: Critical
> Attachments: hbase-1.4.14-exit-behavior.log, 
> hbase-1.7.1-exit-behavior.log, hbase-2.0.6-exit-behavior.log, 
> hbase-2.1.9-exit-behavior.log, hbase-2.2.7-exit-behavior.log, 
> hbase-2.3.7-exit-behavior.log, hbase-2.4.8-exit-behavior.log, 
> hbase-3.0.0-alpha-2-exit-behavior.log
>
>
> The HBase shell has changed behavior in a way that breaks being able to exit 
> properly.
> Two example scripts to act as stand ins for hbase shell scripts to "do 
> something simple then exit":
> {code}
> tmp % echo "list\nexit" > clean_exit.rb
> tmp % echo "list\nexit 1" > error_exit.rb
> {code}
> Giving these two scripts is possible:
> * passed as a cli argument
> * via redirected stdin
> Additionally the shell invocation can be:
> * in the default compatibility mode
> * with the "non interactive" flag that gives an exit code that reflects 
> runtime errors
> I'll post logs of the details as attachments but here are some tables of the 
> exit codes.
> The {{clean_exit.rb}} invocations ought to exit with success, exit code 0.
> || ||  1.4.14 || 1.7.1 || 2.0.6 || 2.1.9 || 2.2.7 || 2.3.7 || 2.4.8 
> || master ||
> | cli, default |0 |0   |0   |0   |0   |0   |1   | 
>1*   |
> | cli, -n | 0 |0   |0   |0   |0   |0   |1   | 
>  hang   |
> | stdin, default |  0 |0   |0   |0   |0   |0   |0   | 
>0|
> | stdin, -n |   1 |1   |1   |1   |1   |1   |1*  | 
>1*   |
> The {{error_exit.rb}} invocation should return a non-zero exit code, unless 
> we're specifically trying to match a normal hbase shell session.
> || || 1.4.14 || 1.7.1 || 2.0.6 || 2.1.9 || 2.2.7 || 2.3.7 || 2.4.8 || 
> master ||
> | cli, default |   1 |1   |1   |1   |1   |1   |1*  |  
>   1*   |
> | cli, -n |1 |1   |1   |1   |1   |1   |1*  |  
> hang   |
> | stdin, default | 0 |0   |0   |0   |0   |0   |0   |  
>   0|
> | stdin, -n |  1 |1   |1   |1   |1   |1   |1*  |  
>   1*   |
> In cases marked with * the error details are different.
> The biggest concern are the new-to-2.4 non-zero exit code when we should have 
> a success and the hanging.
> The former looks like this:
> {code}
> ERROR NoMethodError: private method `exit' called for nil:NilClass
> {code}
> The change in error details for the error exit script also shows this same 
> detail.
> This behavior appears to be a side effect of HBASE-11686. As far as I can 
> tell, the IRB handling of 'exit' calls fail because we implement our own 
> handling of sessoins rather than rely on the intended session interface. We 
> never set a current session, and IRB's exit implementation presumes there 
> will be one.
> Running in debug shows this in a stacktrace:
> {code}
> Took 0.4563 seconds
> ERROR NoMethodError: private method `exit' called for nil:NilClass
> NoMethodError: private method `exit' called for nil:NilClass
>  irb_exit at 
> uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/extend-command.rb:30
>  evaluate at stdin:2
>  eval at org/jruby/RubyKernel.java:1048
>  evaluate at 
> uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/workspace.rb:85
>   eval_io at uri:classloader:/shell.rb:327
>  each_top_level_statement at 
> uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/ruby-lex.rb:246
>  loop at org/jruby/RubyKernel.java:1442
>  each_top_level_statement at 
> uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/ruby-lex.rb:232
> catch at org/jruby/RubyKernel.java:1189
>  each_top_level_statement at 
> uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/irb/ruby-lex.rb:231
>   eval_io at uri:classloader:/shell.rb:326
>   classpath:/jar-bootstrap.rb at classpath:/jar-bootstrap.rb:194
> excep

[jira] [Updated] (HBASE-26421) Use HFileLink file to replace entire file‘s reference when splitting

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26421?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-26421:
---
Parent: (was: HBASE-25302)
Issue Type: Improvement  (was: Sub-task)

> Use HFileLink file to replace entire file‘s reference when splitting
> 
>
> Key: HBASE-26421
> URL: https://issues.apache.org/jira/browse/HBASE-26421
> Project: HBase
>  Issue Type: Improvement
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Major
> Fix For: 2.5.0, 3.0.0-alpha-2
>
>
> ++When splitting store files, if a file should be owned by only one child 
> region, then there will be an entire file's reference in the child region. We 
> can use HFileLink files, just like those in snapshot tables, to replace the 
> reference files that refer to entire files.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-25322) Redundant Reference file in bottom region of split

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-25322:
---
Priority: Minor  (was: Blocker)

> Redundant Reference file in bottom region of split
> --
>
> Key: HBASE-25322
> URL: https://issues.apache.org/jira/browse/HBASE-25322
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-2
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Minor
> Fix For: 3.0.0-alpha-2, 2.4.9
>
>
> When we split a region ranges from (,), the bottom region should contain keys 
> of(,split key), and the top region should contain keys of [split key, ).
> Currently, if we do the following operations:
>  # put rowkeys 100,101,102,103,104,105 to a table, and flush the memstore to 
> make a hfile with rowkeys 100,101,102,103,104,105;
>  # put rowkeys 200,201,202,203,204,205 to the table, and flush the memstore 
> to make a hfile with rowkeys 200,201,202,203,204,205;
>  # split the table region, using split key 200;
>  # then the bottom region will has two Reference files, while the top region 
> only has one.
> But we expect the bottom region has only one Reference file as the the top 
> region.
> That's because when generating Reference files in child region,  the bottom 
> region used the `PrivateCellUtil.createLastOnRow(splitRow)` cell to compare 
> to first keys in the hfiles, while the top region used 
> `PrivateCellUtil.createFirstOnRow(splitRow)` cell to compare to last keys in 
> the hfiles.
> `LastOnRow(splitRow)` means the maximum row generated by the split row, while 
> `FirstOnRow(splitRow)` means the minimus row generated by the split row. The 
> split row should be in the top region. And we should use 
> `FirstOnRow(splitRow)` compare to hfile first and last keys in both bottom 
> and top region. 
> Though the redundant Reference file will not be read by the bottom region, 
> the compaction of the redundant Reference file will result in empty file if 
> only this redundant Reference file participates in a compaction.
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-25322) Redundant Reference file in bottom region of split

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-25322:
---
Parent: (was: HBASE-25302)
Issue Type: Bug  (was: Sub-task)

> Redundant Reference file in bottom region of split
> --
>
> Key: HBASE-25322
> URL: https://issues.apache.org/jira/browse/HBASE-25322
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-2
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Blocker
> Fix For: 3.0.0-alpha-2, 2.4.9
>
>
> When we split a region ranges from (,), the bottom region should contain keys 
> of(,split key), and the top region should contain keys of [split key, ).
> Currently, if we do the following operations:
>  # put rowkeys 100,101,102,103,104,105 to a table, and flush the memstore to 
> make a hfile with rowkeys 100,101,102,103,104,105;
>  # put rowkeys 200,201,202,203,204,205 to the table, and flush the memstore 
> to make a hfile with rowkeys 200,201,202,203,204,205;
>  # split the table region, using split key 200;
>  # then the bottom region will has two Reference files, while the top region 
> only has one.
> But we expect the bottom region has only one Reference file as the the top 
> region.
> That's because when generating Reference files in child region,  the bottom 
> region used the `PrivateCellUtil.createLastOnRow(splitRow)` cell to compare 
> to first keys in the hfiles, while the top region used 
> `PrivateCellUtil.createFirstOnRow(splitRow)` cell to compare to last keys in 
> the hfiles.
> `LastOnRow(splitRow)` means the maximum row generated by the split row, while 
> `FirstOnRow(splitRow)` means the minimus row generated by the split row. The 
> split row should be in the top region. And we should use 
> `FirstOnRow(splitRow)` compare to hfile first and last keys in both bottom 
> and top region. 
> Though the redundant Reference file will not be read by the bottom region, 
> the compaction of the redundant Reference file will result in empty file if 
> only this redundant Reference file participates in a compaction.
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-25322) Redundant Reference file in bottom region of split

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-25322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-25322:
---
Affects Version/s: 2.0.0
   3.0.0-alpha-1
   (was: 3.0.0-alpha-2)

> Redundant Reference file in bottom region of split
> --
>
> Key: HBASE-25322
> URL: https://issues.apache.org/jira/browse/HBASE-25322
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0-alpha-1, 2.0.0
>Reporter: Xiaolin Ha
>Assignee: Xiaolin Ha
>Priority: Minor
> Fix For: 3.0.0-alpha-2, 2.4.9
>
>
> When we split a region ranges from (,), the bottom region should contain keys 
> of(,split key), and the top region should contain keys of [split key, ).
> Currently, if we do the following operations:
>  # put rowkeys 100,101,102,103,104,105 to a table, and flush the memstore to 
> make a hfile with rowkeys 100,101,102,103,104,105;
>  # put rowkeys 200,201,202,203,204,205 to the table, and flush the memstore 
> to make a hfile with rowkeys 200,201,202,203,204,205;
>  # split the table region, using split key 200;
>  # then the bottom region will has two Reference files, while the top region 
> only has one.
> But we expect the bottom region has only one Reference file as the the top 
> region.
> That's because when generating Reference files in child region,  the bottom 
> region used the `PrivateCellUtil.createLastOnRow(splitRow)` cell to compare 
> to first keys in the hfiles, while the top region used 
> `PrivateCellUtil.createFirstOnRow(splitRow)` cell to compare to last keys in 
> the hfiles.
> `LastOnRow(splitRow)` means the maximum row generated by the split row, while 
> `FirstOnRow(splitRow)` means the minimus row generated by the split row. The 
> split row should be in the top region. And we should use 
> `FirstOnRow(splitRow)` compare to hfile first and last keys in both bottom 
> and top region. 
> Though the redundant Reference file will not be read by the bottom region, 
> the compaction of the redundant Reference file will result in empty file if 
> only this redundant Reference file participates in a compaction.
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)


[jira] [Updated] (HBASE-26425) Try to rebuild the stripes in child regions to improve compaction efficiency

2021-11-18 Thread Xiaolin Ha (Jira)


 [ 
https://issues.apache.org/jira/browse/HBASE-26425?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Xiaolin Ha updated HBASE-26425:
---
Parent: (was: HBASE-25302)
Issue Type: Improvement  (was: Sub-task)

> Try to rebuild the stripes in child regions to improve compaction efficiency
> 
>
> Key: HBASE-26425
> URL: https://issues.apache.org/jira/browse/HBASE-26425
> Project: HBase
>  Issue Type: Improvement
>Reporter: Xiaolin Ha
>Priority: Major
>
> This is an issue to improve the old rebuild stripes logic when loading files.
> And this issue is not necessary for the umbrella.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)