[jira] [Commented] (HBASE-18431) Mitigate compatibility concerns between branch-1.3 and branch-1.4

2017-07-28 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-18431:


Yes Andy. For 1.x we have to continue with what we did.  What I mean is if u 
see 2.0 Admin APIs for snapshot, already we changed the PB gen POJOs params to 
our own
See eg:   snapshot(SnapshotDescription snapshot).
This was done some time back

> Mitigate compatibility concerns between branch-1.3 and branch-1.4
> -
>
> Key: HBASE-18431
> URL: https://issues.apache.org/jira/browse/HBASE-18431
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Blocker
> Fix For: 1.4.0, 1.5.0
>
> Attachments: HBASE-18431-branch-1.4.patch
>
>
> There are compatibility concerns with branch-1.4. 
> {noformat}
> Library Name  HBase
> Version #11.3.1
> Version #21.4.0-SNAPSHOT
> Subject   Binary Compatibility
> Compatibility - 89.9%
> Added Methods - 305
> Removed Methods - 105
> Problems with Data Types
>   High - 23
>   Medium - 9
>   Low - 21
> {noformat}
> {noformat}
> Library Name  HBase
> Version #11.3.1
> Version #21.4.0-SNAPSHOT
> Subject   Source Compatibility
> Compatibility- 86.5%
> Added Methods - 305
> Removed Methods - 105
> Problems with Data Types
>   High - 88
>   Medium - 0
>   Low - 0
> Other Changes in Data Types- 25
> {noformat}
> This report includes HBASE-15816 which hasn't been committed yet. Otherwise 
> it's current.
> I'm not generally concerned with added methods. 
> The following methods have been added to Public/Evolving interface Table. 
> Pointing them out in case it merits review.
> \\
> * Abstract method Table.getReadRpcTimeout ( ) has been added to this 
> interface.   No effect.
> * Abstract method Table.getWriteRpcTimeout ( ) has been added to this 
> interface.  No effect.
> * Abstract method Table.setReadRpcTimeout ( int ) has been added to this 
> interface.   No effect.
> * Abstract method Table.setWriteRpcTimeout ( int ) has been added to this 
> interface.
> The Public/Evolving interface Admin has some signature changes equating to 
> removed methods. I don't think this is allowed in a minor release.
> \\
> * Abstract method Admin.isSnapshotFinished ( HBaseProtos.SnapshotDescription 
> ) has been removed from Admin.
> *  Abstract method Admin.snapshot ( String, TableName, 
> HBaseProtos.SnapshotDescription.Type ) has been removed from Admin.
> * Abstract method Admin.snapshot ( HBaseProtos.SnapshotDescription ) has been 
> removed from Admin.
> *  Abstract method Admin.takeSnapshotAsync ( HBaseProtos.SnapshotDescription 
> ) has been removed from Admin.
> The LimitedPrivate(CONFIG) interface AsyncRpcClient has been removed. This 
> change is debatable but I think we can allow it.
> \\
> * AsyncRpcClient has been removed
> The Public/Evolving class FastLongHistogram has been removed. I don't believe 
> this change is allowed in a minor release.
> \\
> * FastLongHistogram has been removed
> Method signatures in LimitedPrivate(COPROC) interfaces MasterObserver and 
> RegionObserver have changed, equating to removed methods. The first set of 
> changes is due to move of SnapshotDescription from HBaseProtos to 
> SnapshotProtos:
> \\
> * Abstract method MasterObserver.postCloneSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.postDeleteSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.postListSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.postRestoreSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.postSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.preCloneSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.preDeleteSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.preListSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.preRestoreSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method 

[jira] [Assigned] (HBASE-18142) Deletion of a cell deletes the previous versions too

2017-07-28 Thread Chia-Ping Tsai (JIRA)

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

Chia-Ping Tsai reassigned HBASE-18142:
--

Assignee: Chia-Ping Tsai

> Deletion of a cell deletes the previous versions too
> 
>
> Key: HBASE-18142
> URL: https://issues.apache.org/jira/browse/HBASE-18142
> Project: HBase
>  Issue Type: Bug
>  Components: API
>Reporter: Karthick
>Assignee: Chia-Ping Tsai
>  Labels: beginner
>
> When I tried to delete a cell using it's timestamp in the Hbase Shell, the 
> previous versions of the same cell also got deleted. But when I tried the 
> same using the Java API, then the previous versions are not deleted and I can 
> retrive the previous values.
> https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Delete.java
> see this file to fix the issue. This method (public Delete addColumns(final 
> byte [] family, final byte [] qualifier, final long timestamp)) only deletes 
> the current version of the cell. The previous versions are not deleted.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18476) HTable#put should call RS#mutate rather than RS#multi

2017-07-28 Thread Chia-Ping Tsai (JIRA)
Chia-Ping Tsai created HBASE-18476:
--

 Summary: HTable#put should call RS#mutate rather than RS#multi
 Key: HBASE-18476
 URL: https://issues.apache.org/jira/browse/HBASE-18476
 Project: HBase
  Issue Type: Bug
Reporter: Chia-Ping Tsai
Assignee: Chia-Ping Tsai
 Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-2


The HBASE-18374 separates the metric for a single put and batched puts so the 
HTable#put shouldn't use the RS#mulit. It messes up the metrics.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18374) RegionServer Metrics improvements

2017-07-28 Thread Chia-Ping Tsai (JIRA)

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

Chia-Ping Tsai updated HBASE-18374:
---
Fix Version/s: 2.0.0-alpha-2
   1.5.0
   1.4.0

> RegionServer Metrics improvements
> -
>
> Key: HBASE-18374
> URL: https://issues.apache.org/jira/browse/HBASE-18374
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 3.0.0
>Reporter: Abhishek Singh Chouhan
>Assignee: Abhishek Singh Chouhan
> Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-2
>
> Attachments: HBASE-18374.branch-1.001.patch, 
> HBASE-18374.branch-1.001.patch, HBASE-18374.branch-1.002.patch, 
> HBASE-18374.master.001.patch, HBASE-18374.master.002.patch, 
> HBASE-18374.master.003.patch, HBASE-18374.master.004.patch, 
> HBASE-18374.master.005.patch
>
>
> At the RS level we have latency metrics for mutate/puts and deletes that are 
> updated per batch (ie. at the end of entire batchop if it contains put/delete 
> update the respective metric) in contrast with append/increment/get metrics 
> that are updated per op. This is a bit ambiguous since the delete and put 
> metrics are updated for multi row mutations that happen to contain a 
> put/delete. We should rename the metric(eg. delete_batch)/add better 
> description. Also we should add metrics for single delete client operations 
> that come through RSRpcServer.mutate path. We should also add metrics for 
> checkAndPut and checkAndDelete.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18374) RegionServer Metrics improvements

2017-07-28 Thread Chia-Ping Tsai (JIRA)

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

Chia-Ping Tsai commented on HBASE-18374:


+1

> RegionServer Metrics improvements
> -
>
> Key: HBASE-18374
> URL: https://issues.apache.org/jira/browse/HBASE-18374
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 3.0.0
>Reporter: Abhishek Singh Chouhan
>Assignee: Abhishek Singh Chouhan
> Fix For: 3.0.0
>
> Attachments: HBASE-18374.branch-1.001.patch, 
> HBASE-18374.branch-1.001.patch, HBASE-18374.branch-1.002.patch, 
> HBASE-18374.master.001.patch, HBASE-18374.master.002.patch, 
> HBASE-18374.master.003.patch, HBASE-18374.master.004.patch, 
> HBASE-18374.master.005.patch
>
>
> At the RS level we have latency metrics for mutate/puts and deletes that are 
> updated per batch (ie. at the end of entire batchop if it contains put/delete 
> update the respective metric) in contrast with append/increment/get metrics 
> that are updated per op. This is a bit ambiguous since the delete and put 
> metrics are updated for multi row mutations that happen to contain a 
> put/delete. We should rename the metric(eg. delete_batch)/add better 
> description. Also we should add metrics for single delete client operations 
> that come through RSRpcServer.mutate path. We should also add metrics for 
> checkAndPut and checkAndDelete.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18448) Added support for refreshing HFiles through API and shell

2017-07-28 Thread Ajay Jadhav (JIRA)

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

Ajay Jadhav commented on HBASE-18448:
-

[~ram_krish]: 
1. In case we don't find the region in the first run due to on going split, 
we'll get the regions in next iteration. Yes, I do see the pain that customers 
have to face but we are looking at solutions to overcome this manual effort and 
warm up the replica automatically.
The reason why we have kept this API invocation manual is due to performance 
impact and the frequency of use. The use case that we were trying to solve 
didn't involve heavy use of this API due to which we have kept it manual for 
now. But yes, in case of write/ update heavy workloads, this solution is not at 
all scalable.
 
2. I looked at the read replica support that HBase already had but in that 
case, the primary has an idea about the replicas. So, it can send updates 
across. In this case, the replica itself is a separate cluster and primary 
cluster doesn't even know about the existence of replicas.

[~anoop.hbase] I haven't looked at the CP endpoints yet but this sounds like a 
good idea. I'll take a look at CP and update the patch.
My only concern here is that we are already exposing this as an API.

> Added support for refreshing HFiles through API and shell
> -
>
> Key: HBASE-18448
> URL: https://issues.apache.org/jira/browse/HBASE-18448
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0, 1.3.1
>Reporter: Ajay Jadhav
>Assignee: Ajay Jadhav
>Priority: Minor
> Fix For: 1.4.0
>
> Attachments: HBASE-18448.branch-1.001.patch, 
> HBASE-18448.branch-1.002.patch
>
>
> In the case where multiple HBase clusters are sharing a common rootDir, even 
> after flushing the data from
> one cluster doesn't mean that other clusters (replicas) will automatically 
> pick the new HFile. Through this patch,
> we are exposing the refresh HFiles API which when issued from a replica will 
> update the in-memory file handle list
> with the newly added file.
> This allows replicas to be consistent with the data written through the 
> primary cluster. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18409) Migrate Client Metrics from codahale to hbase-metrics

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18409:
---

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
18s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green}  0m  
0s{color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:green}+1{color} | {color:green} test4tests {color} | {color:green}  0m 
 0s{color} | {color:green} The patch appears to include 6 new or modified test 
files. {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
15s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  3m 
19s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
16s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
36s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
48s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  5m 
40s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m 
15s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
20s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 
45s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
16s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m 
16s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
35s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} xml {color} | {color:green}  0m  
3s{color} | {color:green} The patch has no ill-formed XML file. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
30m  7s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  5m 
52s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m 
18s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
26s{color} | {color:green} hbase-hadoop-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
36s{color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  2m 
53s{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}133m 
59s{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
53s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}195m 20s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.03.0-ce Server=17.03.0-ce Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18409 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879446/0002-HBASE-18409-MetricsConnection-client-metrics-migrati.patch
 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  xml  |
| uname | Linux d9ac73b8d402 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 
14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 

[jira] [Commented] (HBASE-18465) [AMv2] remove old split region code that is no longer needed

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18465:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
20s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green}  0m  
0s{color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:green}+1{color} | {color:green} test4tests {color} | {color:green}  0m 
 0s{color} | {color:green} The patch appears to include 3 new or modified test 
files. {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
16s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  3m 
16s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
38s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 11m 
55s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
33s{color} | {color:green} master passed {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red}  1m 
59s{color} | {color:red} hbase-protocol-shaded in master has 27 extant Findbugs 
warnings. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
56s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
17s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 
36s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
25s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} cc {color} | {color:green}  1m 
25s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m 
25s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 11m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
35s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
30m 30s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:green}+1{color} | {color:green} hbaseprotoc {color} | {color:green}  
1m  6s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  6m 
27s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
53s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
29s{color} | {color:green} hbase-protocol-shaded in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  2m 
38s{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}108m 
39s{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
45s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}192m 22s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18465 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879442/HBASE-18465-master-v1.patch
 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  cc  hbaseprotoc  |
| uname | Linux 280f3285d1f8 3.13.0-119-generic #166-Ubuntu SMP Wed May 3 
12:18:55 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 

[jira] [Commented] (HBASE-18346) TestRSKilledWhenInitializing failing on branch-1 (branch-1.4)

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-18346:


The RegisterAndDieRegionServer doesn't always go down.

> TestRSKilledWhenInitializing failing on branch-1 (branch-1.4)
> -
>
> Key: HBASE-18346
> URL: https://issues.apache.org/jira/browse/HBASE-18346
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
> Fix For: 1.4.0, 1.5.0
>
>
> Running org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 12.343 sec 
> <<< FAILURE! - in 
> org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitiali
> zing
> testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing)
>   Time elapsed: 12.
> 329 sec  <<< FAILURE!
> java.lang.AssertionError: null
> at org.junit.Assert.fail(Assert.java:86)
> at org.junit.Assert.assertTrue(Assert.java:41)
> at org.junit.Assert.assertTrue(Assert.java:52)
> at 
> org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing.testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(TestRSKi
> lledWhenInitializing.java:123)
> Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 192.427 sec 
> <<< FAILURE! - in org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitial
> izing
> testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing)
>   Time elapsed: 179
> .859 sec  <<< ERROR!
> org.junit.runners.model.TestTimedOutException: test timed out after 180 
> seconds
> at java.lang.Thread.sleep(Native Method)
> at org.apache.hadoop.hbase.util.Threads.sleep(Threads.java:146)
> at 
> org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing.testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(TestRSKi
> lledWhenInitializing.java:113)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18475) MasterProcedureScheduler incorrectly passes null Procedure to table locking

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18475:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
14s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green}  0m  
0s{color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red}  0m  
0s{color} | {color:red} The patch doesn't appear to include any new or modified 
tests. Please justify why no new tests are needed for this patch. Also please 
list what manual steps were performed to verify this patch. {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  7m 
 2s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
41s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
51s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
21s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  2m 
52s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
35s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  0m 
48s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
42s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  0m 
42s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
48s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
18s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
31m  2s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  3m  
2s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
30s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}116m 
55s{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
22s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}167m 23s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.13.1 Server=1.13.1 Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18475 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879429/HBASE-18475.0.patch |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 34a3cecfdb04 4.4.0-43-generic #63-Ubuntu SMP Wed Oct 12 
13:48:03 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 2d06a06 |
| Default Java | 1.8.0_131 |
| findbugs | v3.1.0-RC3 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7835/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7835/console |
| Powered by | Apache Yetus 0.4.0   http://yetus.apache.org |


This message was automatically generated.



> MasterProcedureScheduler incorrectly passes null Procedure to table locking
> ---
>
> Key: HBASE-18475
> URL: https://issues.apache.org/jira/browse/HBASE-18475
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2
>  

[jira] [Commented] (HBASE-18346) TestRSKilledWhenInitializing failing on branch-1 (branch-1.4)

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-18346:


Tail of the log is full of this

{noformat}
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at org.apache.hadoop.hbase.util.Threads.sleep(Threads.java:146)
at 
org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing.testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode
(TestRSKilledWhenInitializing.java:115)
{noformat}


> TestRSKilledWhenInitializing failing on branch-1 (branch-1.4)
> -
>
> Key: HBASE-18346
> URL: https://issues.apache.org/jira/browse/HBASE-18346
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
> Fix For: 1.4.0, 1.5.0
>
>
> Running org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 12.343 sec 
> <<< FAILURE! - in 
> org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitiali
> zing
> testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing)
>   Time elapsed: 12.
> 329 sec  <<< FAILURE!
> java.lang.AssertionError: null
> at org.junit.Assert.fail(Assert.java:86)
> at org.junit.Assert.assertTrue(Assert.java:41)
> at org.junit.Assert.assertTrue(Assert.java:52)
> at 
> org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing.testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(TestRSKi
> lledWhenInitializing.java:123)
> Tests run: 2, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 192.427 sec 
> <<< FAILURE! - in org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitial
> izing
> testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing)
>   Time elapsed: 179
> .859 sec  <<< ERROR!
> org.junit.runners.model.TestTimedOutException: test timed out after 180 
> seconds
> at java.lang.Thread.sleep(Native Method)
> at org.apache.hadoop.hbase.util.Threads.sleep(Threads.java:146)
> at 
> org.apache.hadoop.hbase.regionserver.TestRSKilledWhenInitializing.testRSTerminationAfterRegisteringToMasterBeforeCreatingEphemeralNode(TestRSKi
> lledWhenInitializing.java:113)



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18475) MasterProcedureScheduler incorrectly passes null Procedure to table locking

2017-07-28 Thread Umesh Agashe (JIRA)

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

Umesh Agashe commented on HBASE-18475:
--

+1 lgtm

> MasterProcedureScheduler incorrectly passes null Procedure to table locking
> ---
>
> Key: HBASE-18475
> URL: https://issues.apache.org/jira/browse/HBASE-18475
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2
>Reporter: Sean Busbey
>Assignee: Sean Busbey
> Fix For: 3.0.0, 2.0.0-alpha-2
>
> Attachments: HBASE-18475.0.patch
>
>
> Occasionally I get a series of these in tests during shutdown
> {code}
> 2017-07-27 16:24:26,774 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=506
> 2017-07-27 16:24:26,777 INFO  [main] client.HBaseAdmin$TableFuture(3591): 
> Operation: CREATE, Table Name: default:foo failed with foo
> 2017-07-27 16:24:26,782 INFO  
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.HMaster$4(1755): Client=jenkins//172.26.21.67 create 'foo', {NAME => 
> 'family_1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', 
> KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', 
> DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', 
> REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', 
> PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 
> => 'false', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
> 2017-07-27 16:24:26,884 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> procedure2.ProcedureExecutor(792): Stored pid=507, 
> state=RUNNABLE:CREATE_TABLE_PRE_OPERATION; CreateTableProcedure table=foo
> 2017-07-27 16:24:26,887 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=507
> 2017-07-27 16:24:26,890 INFO  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor(1261): Rolled back pid=507, state=ROLLEDBACK, 
> exception=org.apache.hadoop.hbase.TableExistsException via 
> master-create-table:org.apache.hadoop.hbase.TableExistsException: foo; 
> CreateTableProcedure table=foo exec-time=106msec
> 2017-07-27 16:24:26,890 WARN  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1668): Worker terminating 
> UNNATURALLY null
> java.lang.NullPointerException
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.requireTableExclusiveLock(MasterProcedureScheduler.java:590)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.access$300(MasterProcedureScheduler.java:106)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler$TableQueue.requireExclusiveLock(MasterProcedureScheduler.java:582)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.doPoll(MasterProcedureScheduler.java:215)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.dequeue(MasterProcedureScheduler.java:203)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:145)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:119)
>   at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1641)
> 2017-07-27 16:24:26,890 DEBUG [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1670): Worker terminated.
> {code}
> Eventually all the workers are done.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18409) Migrate Client Metrics from codahale to hbase-metrics

2017-07-28 Thread Ronald Macmaster (JIRA)

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

Ronald Macmaster updated HBASE-18409:
-
Attachment: 0002-HBASE-18409-MetricsConnection-client-metrics-migrati.patch

Fixed static inner class and licensing issues.

> Migrate Client Metrics from codahale to hbase-metrics
> -
>
> Key: HBASE-18409
> URL: https://issues.apache.org/jira/browse/HBASE-18409
> Project: HBase
>  Issue Type: Improvement
>  Components: Client, java, metrics
>Affects Versions: 3.0.0
>Reporter: Ronald Macmaster
>  Labels: newbie
> Fix For: 3.0.0
>
> Attachments: 
> 0001-HBASE-18409-MetricsConnection-client-metrics-migration.patch, 
> 0002-HBASE-18409-MetricsConnection-client-metrics-migrati.patch
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Currently, the metrics for hbase-client are tailored for reporting via a 
> client-side JMX server.
> The MetricsConnection handles the metrics management and reporting via the 
> metrics platform from codahale. 
> This approach worked well for hbase-1.3.1 when the metrics platform was still 
> relatively young, but it could be improved by using the new 
> hbase-metrics-api. 
> Now that we have an actual hbase-metrics-api that master, regionserver, 
> zookeeper, and other daemons use, it would be good to also allow the client 
> to leverage the metrics-api. 
> Then, the client could also report its metrics via Hadoop's metrics2 if 
> desired or through another platform that utilizes the hbase-metrics-api. 
> If left alone, client metrics will continue to be only barely visible through 
> a client-side JMX server.
> The migration to the new metrics-api could be done by simply changing the 
> Metrics data types from codahale types to hbase-metrics types without 
> changing the metrics signatures of MetricsConnection unless completely 
> necessary. 
> The codahale MetricsRegistry would also have to be exchanged for a 
> hbase-metrics MetricsRegistry. 
> I found this to be a necessary change after attempting to implement my own 
> Reporter to use within the MetricsConnection class.
> I was attempting to create a HadoopMetrics2Reporter that extends the codahale 
> ScheduledReporter and reports the MetricsConnection metrics to Hadoop's 
> metrics2 system. 
> The already existing infrastructure in the hbase-metrics and 
> hbase-metrics-api projects could be easily leveraged for a cleaner solution.
> If completed successfully, users could instead access their client-side 
> metrics through the hbase-metrics-api. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18431) Mitigate compatibility concerns between branch-1.3 and branch-1.4

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-18431:


bq.  Ideally we should not expose PB generated classes as params or return 
types. 

Totally agree but where we've already done it we need to preserve compat and do 
proper deprecation to replace. 

> Mitigate compatibility concerns between branch-1.3 and branch-1.4
> -
>
> Key: HBASE-18431
> URL: https://issues.apache.org/jira/browse/HBASE-18431
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Blocker
> Fix For: 1.4.0, 1.5.0
>
> Attachments: HBASE-18431-branch-1.4.patch
>
>
> There are compatibility concerns with branch-1.4. 
> {noformat}
> Library Name  HBase
> Version #11.3.1
> Version #21.4.0-SNAPSHOT
> Subject   Binary Compatibility
> Compatibility - 89.9%
> Added Methods - 305
> Removed Methods - 105
> Problems with Data Types
>   High - 23
>   Medium - 9
>   Low - 21
> {noformat}
> {noformat}
> Library Name  HBase
> Version #11.3.1
> Version #21.4.0-SNAPSHOT
> Subject   Source Compatibility
> Compatibility- 86.5%
> Added Methods - 305
> Removed Methods - 105
> Problems with Data Types
>   High - 88
>   Medium - 0
>   Low - 0
> Other Changes in Data Types- 25
> {noformat}
> This report includes HBASE-15816 which hasn't been committed yet. Otherwise 
> it's current.
> I'm not generally concerned with added methods. 
> The following methods have been added to Public/Evolving interface Table. 
> Pointing them out in case it merits review.
> \\
> * Abstract method Table.getReadRpcTimeout ( ) has been added to this 
> interface.   No effect.
> * Abstract method Table.getWriteRpcTimeout ( ) has been added to this 
> interface.  No effect.
> * Abstract method Table.setReadRpcTimeout ( int ) has been added to this 
> interface.   No effect.
> * Abstract method Table.setWriteRpcTimeout ( int ) has been added to this 
> interface.
> The Public/Evolving interface Admin has some signature changes equating to 
> removed methods. I don't think this is allowed in a minor release.
> \\
> * Abstract method Admin.isSnapshotFinished ( HBaseProtos.SnapshotDescription 
> ) has been removed from Admin.
> *  Abstract method Admin.snapshot ( String, TableName, 
> HBaseProtos.SnapshotDescription.Type ) has been removed from Admin.
> * Abstract method Admin.snapshot ( HBaseProtos.SnapshotDescription ) has been 
> removed from Admin.
> *  Abstract method Admin.takeSnapshotAsync ( HBaseProtos.SnapshotDescription 
> ) has been removed from Admin.
> The LimitedPrivate(CONFIG) interface AsyncRpcClient has been removed. This 
> change is debatable but I think we can allow it.
> \\
> * AsyncRpcClient has been removed
> The Public/Evolving class FastLongHistogram has been removed. I don't believe 
> this change is allowed in a minor release.
> \\
> * FastLongHistogram has been removed
> Method signatures in LimitedPrivate(COPROC) interfaces MasterObserver and 
> RegionObserver have changed, equating to removed methods. The first set of 
> changes is due to move of SnapshotDescription from HBaseProtos to 
> SnapshotProtos:
> \\
> * Abstract method MasterObserver.postCloneSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.postDeleteSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.postListSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.postRestoreSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.postSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.preCloneSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.preDeleteSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.preListSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription ) has been removed from MasterObserver.
> * Abstract method MasterObserver.preRestoreSnapshot ( 
> ObserverContext, 
> HBaseProtos.SnapshotDescription, HTableDescriptor ) has been removed from 
> MasterObserver.
> * Abstract method MasterObserver.preSnapshot ( 
> ObserverContext, 
> 

[jira] [Updated] (HBASE-18465) [AMv2] remove old split region code that is no longer needed

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang updated HBASE-18465:
-
Status: Patch Available  (was: Open)

> [AMv2] remove old split region code that is no longer needed
> 
>
> Key: HBASE-18465
> URL: https://issues.apache.org/jira/browse/HBASE-18465
> Project: HBase
>  Issue Type: Task
>  Components: Admin, rpc
>Affects Versions: 2.0.0-alpha-1, 3.0.0
>Reporter: Yi Liang
>Assignee: Yi Liang
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18465-master-v1.patch
>
>
> After HBASE-18229, Admin.split go to MasterRpcServices directly, so need to 
> clean up the old logic going through RSRpcServices.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18465) [AMv2] remove old split region code that is no longer needed

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang updated HBASE-18465:
-
Attachment: HBASE-18465-master-v1.patch

> [AMv2] remove old split region code that is no longer needed
> 
>
> Key: HBASE-18465
> URL: https://issues.apache.org/jira/browse/HBASE-18465
> Project: HBase
>  Issue Type: Task
>  Components: Admin, rpc
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18465-master-v1.patch
>
>
> After HBASE-18229, Admin.split go to MasterRpcServices directly, so need to 
> clean up the old logic going through RSRpcServices.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Comment Edited] (HBASE-18441) ZookeeperWatcher#interruptedException should throw exception

2017-07-28 Thread stack (JIRA)

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

stack edited comment on HBASE-18441 at 7/28/17 9:53 PM:


bq. Just to confirm, that for bug fixes like this, we need to push into 
branch-1/branch-2 (besides master) by default, right? Thanks.

Yes please [~carp84]


was (Author: stack):
bq. Just to confirm, that for bug fixes like this, we need to push into 
branch-1/branch-2 (besides master) by default, right? Thanks.

Yes please [~easyliangjob]

> ZookeeperWatcher#interruptedException should throw exception
> 
>
> Key: HBASE-18441
> URL: https://issues.apache.org/jira/browse/HBASE-18441
> Project: HBase
>  Issue Type: Bug
>Reporter: Yu Li
>Assignee: Yu Li
> Fix For: 2.0.0, 3.0.0, 1.4.0
>
> Attachments: HBASE-18441.patch, HBASE-18441.trivial.patch
>
>
> Currently Zookeeper#interruptedException will swallow the 
> InterruptedException and only log, which might cause unexpected behavior, 
> such as when invoking {{ZKUtil#checkExists}} and the watcher thread somehow 
> interrupted, the method will return -1 which means the checked znode doesn't 
> exist, while actually the znode exists.
> We could also see a TODO tag in the javadoc, which indicates we need some 
> fix/improvement here:
> {code}
>   /**
>* Handles InterruptedExceptions in client calls.
>* 
>* This may be temporary but for now this gives one place to deal with 
> these.
>* 
>* TODO: Currently, this method does nothing.
>*   Is this ever expected to happen?  Do we abort or can we let it run?
>*   Maybe this should be logged as WARN?  It shouldn't happen?
>* 
>* @param ie
>*/
> {code}
> Here we propose to throw a {{KeeperException$SystemErrorException}} in 
> {{ZookeeperWatcher#interruptedException}}, and will add a UT case to cover 
> the interruption scenario.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18441) ZookeeperWatcher#interruptedException should throw exception

2017-07-28 Thread stack (JIRA)

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

stack commented on HBASE-18441:
---

bq. Just to confirm, that for bug fixes like this, we need to push into 
branch-1/branch-2 (besides master) by default, right? Thanks.

Yes please [~easyliangjob]

> ZookeeperWatcher#interruptedException should throw exception
> 
>
> Key: HBASE-18441
> URL: https://issues.apache.org/jira/browse/HBASE-18441
> Project: HBase
>  Issue Type: Bug
>Reporter: Yu Li
>Assignee: Yu Li
> Fix For: 2.0.0, 3.0.0, 1.4.0
>
> Attachments: HBASE-18441.patch, HBASE-18441.trivial.patch
>
>
> Currently Zookeeper#interruptedException will swallow the 
> InterruptedException and only log, which might cause unexpected behavior, 
> such as when invoking {{ZKUtil#checkExists}} and the watcher thread somehow 
> interrupted, the method will return -1 which means the checked znode doesn't 
> exist, while actually the znode exists.
> We could also see a TODO tag in the javadoc, which indicates we need some 
> fix/improvement here:
> {code}
>   /**
>* Handles InterruptedExceptions in client calls.
>* 
>* This may be temporary but for now this gives one place to deal with 
> these.
>* 
>* TODO: Currently, this method does nothing.
>*   Is this ever expected to happen?  Do we abort or can we let it run?
>*   Maybe this should be logged as WARN?  It shouldn't happen?
>* 
>* @param ie
>*/
> {code}
> Here we propose to throw a {{KeeperException$SystemErrorException}} in 
> {{ZookeeperWatcher#interruptedException}}, and will add a UT case to cover 
> the interruption scenario.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18409) Migrate Client Metrics from codahale to hbase-metrics

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18409:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
14s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green}  0m  
0s{color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:green}+1{color} | {color:green} test4tests {color} | {color:green}  0m 
 0s{color} | {color:green} The patch appears to include 6 new or modified test 
files. {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  2m 
13s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  5m 
30s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
30s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
43s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
56s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  4m 
36s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m  
9s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
18s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 
41s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m 
26s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m 
26s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
38s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} xml {color} | {color:green}  0m  
2s{color} | {color:green} The patch has no ill-formed XML file. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
32m 13s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red}  0m 
33s{color} | {color:red} hbase-hadoop2-compat generated 1 new + 0 unchanged - 0 
fixed = 1 total (was 0) {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  1m  
6s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
23s{color} | {color:green} hbase-hadoop-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
29s{color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  2m 
38s{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}117m 
33s{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:red}-1{color} | {color:red} asflicense {color} | {color:red}  0m 
59s{color} | {color:red} The patch generated 3 ASF License warnings. {color} |
| {color:black}{color} | {color:black} {color} | {color:black}182m 56s{color} | 
{color:black} {color} |
\\
\\
|| Reason || Tests ||
| FindBugs | module:hbase-hadoop2-compat |
|  |  Should org.apache.hadoop.hbase.client.MetricsClientSourceImpl$RegionStats 
be a _static_ inner class?  At MetricsClientSourceImpl.java:inner class?  At 
MetricsClientSourceImpl.java:[lines 189-198] |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.13.1 Server=1.13.1 Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18409 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879398/0001-HBASE-18409-MetricsConnection-client-metrics-migration.patch
 |
| Optional Tests |  asflicense  javac  

[jira] [Commented] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread stack (JIRA)

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

stack commented on HBASE-18474:
---

bq. As a potentially unintended consequence preBatchMutate hooks operate under 
write row locks in older versions (like 0.98) but only under read row locks in 
1.2+

Locking regime changed in 1.2 (HBASE-12751 and related issues for backport, 
HBASE-14465). The change to preBatchMutate so it takes read lock as of 1.2 was 
intentional.   HBASE-14465 is noted in list of changes and as a breaking 
change.  Release note says: "Locks on row are now reader/writer rather than 
exclusive."  Probably could have done w/ more detail...  FYI [~apurtell]

> HRegion#doMiniBatchMutation is acquiring read row locks
> ---
>
> Key: HBASE-18474
> URL: https://issues.apache.org/jira/browse/HBASE-18474
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>
> Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in 
> step 1. 
> {code}
> // If we haven't got any rows in our batch, we should block to
>
> // get the next one.  
>
> RowLock rowLock = null;
> try {
>   rowLock = getRowLockInternal(mutation.getRow(), true);
> } catch (TimeoutIOException e) {
>   // We will retry when other exceptions, but we should stop if we 
> timeout . 
>   throw e;
> } catch (IOException ioe) {
>   LOG.warn("Failed getting lock in batch put, row="
> + Bytes.toStringBinary(mutation.getRow()), ioe);
> }
> if (rowLock == null) {
>   // We failed to grab another lock   
>
>   break; // stop acquiring more rows for this batch   
>
> } else {
>   acquiredRowLocks.add(rowLock);
> }
> {code}
> Other code paths that apply mutations are acquiring write locks.
> In HRegion#append
> {code}
> try {
>   rowLock = getRowLockInternal(row, false);
>   assert rowLock != null;
> ...
> {code}
> In HRegion#doIn
> {code}
> try {
>   rowLock = getRowLockInternal(increment.getRow(), false);
> ...
> {code}
> In HRegion#checkAndMutate
> {code}
>   // Lock row - note that doBatchMutate will relock this row if called
>
>   RowLock rowLock = getRowLockInternal(get.getRow(), false);
>   // wait for all previous transactions to complete (with lock held)  
>
>   mvcc.await();
> {code}
> In HRegion#processRowsWithLocks
> {code}
>   // 2. Acquire the row lock(s)   
>
>   acquiredRowLocks = new ArrayList(rowsToLock.size());
>   for (byte[] row : rowsToLock) {
> // Attempt to lock all involved rows, throw if any lock times out 
>
> // use a writer lock for mixed reads and writes   
>
> acquiredRowLocks.add(getRowLockInternal(row, false));
>   }
> {code}
> and so on.
> What doMiniBatchMutation is doing looks wrong. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-18466:
---

We already have the do_not_retry information in the IOException class, and 
there is no need for the HBaseIOException class as in the patch. I fear that 
adding the DoNotRetryException will just add confusion over the java class 
DoNotRetryException, as well as IOException::do_not_retry(). Can you please do 
the patch without these new exceptions. If you need to throw a specific 
exception from the server side for the test, you can add a new exception in the 
test code. 

Other than that looks good. 

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-18474:


[~samarth.j...@gmail.com] 
 [~giacomotaylor] 

> HRegion#doMiniBatchMutation is acquiring read row locks
> ---
>
> Key: HBASE-18474
> URL: https://issues.apache.org/jira/browse/HBASE-18474
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>
> Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in 
> step 1. 
> {code}
> // If we haven't got any rows in our batch, we should block to
>
> // get the next one.  
>
> RowLock rowLock = null;
> try {
>   rowLock = getRowLockInternal(mutation.getRow(), true);
> } catch (TimeoutIOException e) {
>   // We will retry when other exceptions, but we should stop if we 
> timeout . 
>   throw e;
> } catch (IOException ioe) {
>   LOG.warn("Failed getting lock in batch put, row="
> + Bytes.toStringBinary(mutation.getRow()), ioe);
> }
> if (rowLock == null) {
>   // We failed to grab another lock   
>
>   break; // stop acquiring more rows for this batch   
>
> } else {
>   acquiredRowLocks.add(rowLock);
> }
> {code}
> Other code paths that apply mutations are acquiring write locks.
> In HRegion#append
> {code}
> try {
>   rowLock = getRowLockInternal(row, false);
>   assert rowLock != null;
> ...
> {code}
> In HRegion#doIn
> {code}
> try {
>   rowLock = getRowLockInternal(increment.getRow(), false);
> ...
> {code}
> In HRegion#checkAndMutate
> {code}
>   // Lock row - note that doBatchMutate will relock this row if called
>
>   RowLock rowLock = getRowLockInternal(get.getRow(), false);
>   // wait for all previous transactions to complete (with lock held)  
>
>   mvcc.await();
> {code}
> In HRegion#processRowsWithLocks
> {code}
>   // 2. Acquire the row lock(s)   
>
>   acquiredRowLocks = new ArrayList(rowsToLock.size());
>   for (byte[] row : rowsToLock) {
> // Attempt to lock all involved rows, throw if any lock times out 
>
> // use a writer lock for mixed reads and writes   
>
> acquiredRowLocks.add(getRowLockInternal(row, false));
>   }
> {code}
> and so on.
> What doMiniBatchMutation is doing looks wrong. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-18474:


Thanks.

As a potentially unintended consequence preBatchMutate hooks operate under 
write row locks in older versions (like 0.98) but only under read row locks in 
1.2+


> HRegion#doMiniBatchMutation is acquiring read row locks
> ---
>
> Key: HBASE-18474
> URL: https://issues.apache.org/jira/browse/HBASE-18474
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>
> Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in 
> step 1. 
> {code}
> // If we haven't got any rows in our batch, we should block to
>
> // get the next one.  
>
> RowLock rowLock = null;
> try {
>   rowLock = getRowLockInternal(mutation.getRow(), true);
> } catch (TimeoutIOException e) {
>   // We will retry when other exceptions, but we should stop if we 
> timeout . 
>   throw e;
> } catch (IOException ioe) {
>   LOG.warn("Failed getting lock in batch put, row="
> + Bytes.toStringBinary(mutation.getRow()), ioe);
> }
> if (rowLock == null) {
>   // We failed to grab another lock   
>
>   break; // stop acquiring more rows for this batch   
>
> } else {
>   acquiredRowLocks.add(rowLock);
> }
> {code}
> Other code paths that apply mutations are acquiring write locks.
> In HRegion#append
> {code}
> try {
>   rowLock = getRowLockInternal(row, false);
>   assert rowLock != null;
> ...
> {code}
> In HRegion#doIn
> {code}
> try {
>   rowLock = getRowLockInternal(increment.getRow(), false);
> ...
> {code}
> In HRegion#checkAndMutate
> {code}
>   // Lock row - note that doBatchMutate will relock this row if called
>
>   RowLock rowLock = getRowLockInternal(get.getRow(), false);
>   // wait for all previous transactions to complete (with lock held)  
>
>   mvcc.await();
> {code}
> In HRegion#processRowsWithLocks
> {code}
>   // 2. Acquire the row lock(s)   
>
>   acquiredRowLocks = new ArrayList(rowsToLock.size());
>   for (byte[] row : rowsToLock) {
> // Attempt to lock all involved rows, throw if any lock times out 
>
> // use a writer lock for mixed reads and writes   
>
> acquiredRowLocks.add(getRowLockInternal(row, false));
>   }
> {code}
> and so on.
> What doMiniBatchMutation is doing looks wrong. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18475) MasterProcedureScheduler incorrectly passes null Procedure to table locking

2017-07-28 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-18475:

Fix Version/s: 2.0.0-alpha-2
   3.0.0
   Status: Patch Available  (was: In Progress)

> MasterProcedureScheduler incorrectly passes null Procedure to table locking
> ---
>
> Key: HBASE-18475
> URL: https://issues.apache.org/jira/browse/HBASE-18475
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2
>Reporter: Sean Busbey
>Assignee: Sean Busbey
> Fix For: 3.0.0, 2.0.0-alpha-2
>
> Attachments: HBASE-18475.0.patch
>
>
> Occasionally I get a series of these in tests during shutdown
> {code}
> 2017-07-27 16:24:26,774 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=506
> 2017-07-27 16:24:26,777 INFO  [main] client.HBaseAdmin$TableFuture(3591): 
> Operation: CREATE, Table Name: default:foo failed with foo
> 2017-07-27 16:24:26,782 INFO  
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.HMaster$4(1755): Client=jenkins//172.26.21.67 create 'foo', {NAME => 
> 'family_1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', 
> KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', 
> DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', 
> REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', 
> PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 
> => 'false', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
> 2017-07-27 16:24:26,884 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> procedure2.ProcedureExecutor(792): Stored pid=507, 
> state=RUNNABLE:CREATE_TABLE_PRE_OPERATION; CreateTableProcedure table=foo
> 2017-07-27 16:24:26,887 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=507
> 2017-07-27 16:24:26,890 INFO  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor(1261): Rolled back pid=507, state=ROLLEDBACK, 
> exception=org.apache.hadoop.hbase.TableExistsException via 
> master-create-table:org.apache.hadoop.hbase.TableExistsException: foo; 
> CreateTableProcedure table=foo exec-time=106msec
> 2017-07-27 16:24:26,890 WARN  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1668): Worker terminating 
> UNNATURALLY null
> java.lang.NullPointerException
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.requireTableExclusiveLock(MasterProcedureScheduler.java:590)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.access$300(MasterProcedureScheduler.java:106)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler$TableQueue.requireExclusiveLock(MasterProcedureScheduler.java:582)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.doPoll(MasterProcedureScheduler.java:215)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.dequeue(MasterProcedureScheduler.java:203)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:145)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:119)
>   at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1641)
> 2017-07-27 16:24:26,890 DEBUG [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1670): Worker terminated.
> {code}
> Eventually all the workers are done.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18475) MasterProcedureScheduler incorrectly passes null Procedure to table locking

2017-07-28 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-18475:

Attachment: HBASE-18475.0.patch

> MasterProcedureScheduler incorrectly passes null Procedure to table locking
> ---
>
> Key: HBASE-18475
> URL: https://issues.apache.org/jira/browse/HBASE-18475
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2
>Reporter: Sean Busbey
>Assignee: Sean Busbey
> Attachments: HBASE-18475.0.patch
>
>
> Occasionally I get a series of these in tests during shutdown
> {code}
> 2017-07-27 16:24:26,774 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=506
> 2017-07-27 16:24:26,777 INFO  [main] client.HBaseAdmin$TableFuture(3591): 
> Operation: CREATE, Table Name: default:foo failed with foo
> 2017-07-27 16:24:26,782 INFO  
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.HMaster$4(1755): Client=jenkins//172.26.21.67 create 'foo', {NAME => 
> 'family_1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', 
> KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', 
> DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', 
> REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', 
> PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 
> => 'false', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
> 2017-07-27 16:24:26,884 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> procedure2.ProcedureExecutor(792): Stored pid=507, 
> state=RUNNABLE:CREATE_TABLE_PRE_OPERATION; CreateTableProcedure table=foo
> 2017-07-27 16:24:26,887 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=507
> 2017-07-27 16:24:26,890 INFO  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor(1261): Rolled back pid=507, state=ROLLEDBACK, 
> exception=org.apache.hadoop.hbase.TableExistsException via 
> master-create-table:org.apache.hadoop.hbase.TableExistsException: foo; 
> CreateTableProcedure table=foo exec-time=106msec
> 2017-07-27 16:24:26,890 WARN  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1668): Worker terminating 
> UNNATURALLY null
> java.lang.NullPointerException
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.requireTableExclusiveLock(MasterProcedureScheduler.java:590)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.access$300(MasterProcedureScheduler.java:106)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler$TableQueue.requireExclusiveLock(MasterProcedureScheduler.java:582)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.doPoll(MasterProcedureScheduler.java:215)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.dequeue(MasterProcedureScheduler.java:203)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:145)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:119)
>   at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1641)
> 2017-07-27 16:24:26,890 DEBUG [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1670): Worker terminated.
> {code}
> Eventually all the workers are done.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18475) MasterProcedureScheduler incorrectly passes null Procedure to table locking

2017-07-28 Thread Sean Busbey (JIRA)
Sean Busbey created HBASE-18475:
---

 Summary: MasterProcedureScheduler incorrectly passes null 
Procedure to table locking
 Key: HBASE-18475
 URL: https://issues.apache.org/jira/browse/HBASE-18475
 Project: HBase
  Issue Type: Bug
  Components: proc-v2
Reporter: Sean Busbey
Assignee: Sean Busbey


Occasionally I get a series of these in tests during shutdown

{code}
2017-07-27 16:24:26,774 DEBUG 
[RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
master.MasterRpcServices(1011): Checking to see if procedure is done procId=506
2017-07-27 16:24:26,777 INFO  [main] client.HBaseAdmin$TableFuture(3591): 
Operation: CREATE, Table Name: default:foo failed with foo
2017-07-27 16:24:26,782 INFO  
[RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
master.HMaster$4(1755): Client=jenkins//172.26.21.67 create 'foo', {NAME => 
'family_1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', 
KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', 
DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', 
REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 
'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', 
PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 => 
'false', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
2017-07-27 16:24:26,884 DEBUG 
[RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
procedure2.ProcedureExecutor(792): Stored pid=507, 
state=RUNNABLE:CREATE_TABLE_PRE_OPERATION; CreateTableProcedure table=foo
2017-07-27 16:24:26,887 DEBUG 
[RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
master.MasterRpcServices(1011): Checking to see if procedure is done procId=507
2017-07-27 16:24:26,890 INFO  [ProcExecWrkr-5] 
procedure2.ProcedureExecutor(1261): Rolled back pid=507, state=ROLLEDBACK, 
exception=org.apache.hadoop.hbase.TableExistsException via 
master-create-table:org.apache.hadoop.hbase.TableExistsException: foo; 
CreateTableProcedure table=foo exec-time=106msec
2017-07-27 16:24:26,890 WARN  [ProcExecWrkr-5] 
procedure2.ProcedureExecutor$WorkerThread(1668): Worker terminating UNNATURALLY 
null
java.lang.NullPointerException
at 
org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.requireTableExclusiveLock(MasterProcedureScheduler.java:590)
at 
org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.access$300(MasterProcedureScheduler.java:106)
at 
org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler$TableQueue.requireExclusiveLock(MasterProcedureScheduler.java:582)
at 
org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.doPoll(MasterProcedureScheduler.java:215)
at 
org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.dequeue(MasterProcedureScheduler.java:203)
at 
org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:145)
at 
org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:119)
at 
org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1641)
2017-07-27 16:24:26,890 DEBUG [ProcExecWrkr-5] 
procedure2.ProcedureExecutor$WorkerThread(1670): Worker terminated.
{code}

Eventually all the workers are done.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Work started] (HBASE-18475) MasterProcedureScheduler incorrectly passes null Procedure to table locking

2017-07-28 Thread Sean Busbey (JIRA)

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

Work on HBASE-18475 started by Sean Busbey.
---
> MasterProcedureScheduler incorrectly passes null Procedure to table locking
> ---
>
> Key: HBASE-18475
> URL: https://issues.apache.org/jira/browse/HBASE-18475
> Project: HBase
>  Issue Type: Bug
>  Components: proc-v2
>Reporter: Sean Busbey
>Assignee: Sean Busbey
>
> Occasionally I get a series of these in tests during shutdown
> {code}
> 2017-07-27 16:24:26,774 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=506
> 2017-07-27 16:24:26,777 INFO  [main] client.HBaseAdmin$TableFuture(3591): 
> Operation: CREATE, Table Name: default:foo failed with foo
> 2017-07-27 16:24:26,782 INFO  
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.HMaster$4(1755): Client=jenkins//172.26.21.67 create 'foo', {NAME => 
> 'family_1', VERSIONS => '1', EVICT_BLOCKS_ON_CLOSE => 'false', 
> KEEP_DELETED_CELLS => 'FALSE', CACHE_DATA_ON_WRITE => 'false', 
> DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', MIN_VERSIONS => '0', 
> REPLICATION_SCOPE => '0', BLOOMFILTER => 'ROW', CACHE_INDEX_ON_WRITE => 
> 'false', IN_MEMORY => 'false', CACHE_BLOOMS_ON_WRITE => 'false', 
> PREFETCH_BLOCKS_ON_OPEN => 'false', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 
> => 'false', BLOCKCACHE => 'true', BLOCKSIZE => '65536'}
> 2017-07-27 16:24:26,884 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> procedure2.ProcedureExecutor(792): Stored pid=507, 
> state=RUNNABLE:CREATE_TABLE_PRE_OPERATION; CreateTableProcedure table=foo
> 2017-07-27 16:24:26,887 DEBUG 
> [RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=37201] 
> master.MasterRpcServices(1011): Checking to see if procedure is done 
> procId=507
> 2017-07-27 16:24:26,890 INFO  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor(1261): Rolled back pid=507, state=ROLLEDBACK, 
> exception=org.apache.hadoop.hbase.TableExistsException via 
> master-create-table:org.apache.hadoop.hbase.TableExistsException: foo; 
> CreateTableProcedure table=foo exec-time=106msec
> 2017-07-27 16:24:26,890 WARN  [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1668): Worker terminating 
> UNNATURALLY null
> java.lang.NullPointerException
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.requireTableExclusiveLock(MasterProcedureScheduler.java:590)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.access$300(MasterProcedureScheduler.java:106)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler$TableQueue.requireExclusiveLock(MasterProcedureScheduler.java:582)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.doPoll(MasterProcedureScheduler.java:215)
>   at 
> org.apache.hadoop.hbase.master.procedure.MasterProcedureScheduler.dequeue(MasterProcedureScheduler.java:203)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:145)
>   at 
> org.apache.hadoop.hbase.procedure2.AbstractProcedureScheduler.poll(AbstractProcedureScheduler.java:119)
>   at 
> org.apache.hadoop.hbase.procedure2.ProcedureExecutor$WorkerThread.run(ProcedureExecutor.java:1641)
> 2017-07-27 16:24:26,890 DEBUG [ProcExecWrkr-5] 
> procedure2.ProcedureExecutor$WorkerThread(1670): Worker terminated.
> {code}
> Eventually all the workers are done.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18466:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  
0s{color} | {color:blue} Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m  5s{color} 
| {color:red} HBASE-18466 does not apply to master. Rebase required? Wrong 
Branch? See https://yetus.apache.org/documentation/0.4.0/precommit-patchnames 
for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Issue | HBASE-18466 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879425/HBASE-18466.001.patch 
|
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7834/console |
| Powered by | Apache Yetus 0.4.0   http://yetus.apache.org |


This message was automatically generated.



> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread stack (JIRA)

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

stack commented on HBASE-18474:
---

Our row locks are read/write since 1.2. Whenever a modification on a row, we 
take a read lock. Concurrent threads updating a row are allowed. mvcc ensures 
ongoing reads always get a consistent row 'view'. The exceptions are 
read/modify/write operations such as increment/append/checkAndPut. These need 
to 'read' and then update the value they just read. To ensure the row 'view' 
doesn't change between read and write (mvcc is column family scope only), r/m/w 
ops take a write lock. [~apurtell] FYI sir.

> HRegion#doMiniBatchMutation is acquiring read row locks
> ---
>
> Key: HBASE-18474
> URL: https://issues.apache.org/jira/browse/HBASE-18474
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>
> Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in 
> step 1. 
> {code}
> // If we haven't got any rows in our batch, we should block to
>
> // get the next one.  
>
> RowLock rowLock = null;
> try {
>   rowLock = getRowLockInternal(mutation.getRow(), true);
> } catch (TimeoutIOException e) {
>   // We will retry when other exceptions, but we should stop if we 
> timeout . 
>   throw e;
> } catch (IOException ioe) {
>   LOG.warn("Failed getting lock in batch put, row="
> + Bytes.toStringBinary(mutation.getRow()), ioe);
> }
> if (rowLock == null) {
>   // We failed to grab another lock   
>
>   break; // stop acquiring more rows for this batch   
>
> } else {
>   acquiredRowLocks.add(rowLock);
> }
> {code}
> Other code paths that apply mutations are acquiring write locks.
> In HRegion#append
> {code}
> try {
>   rowLock = getRowLockInternal(row, false);
>   assert rowLock != null;
> ...
> {code}
> In HRegion#doIn
> {code}
> try {
>   rowLock = getRowLockInternal(increment.getRow(), false);
> ...
> {code}
> In HRegion#checkAndMutate
> {code}
>   // Lock row - note that doBatchMutate will relock this row if called
>
>   RowLock rowLock = getRowLockInternal(get.getRow(), false);
>   // wait for all previous transactions to complete (with lock held)  
>
>   mvcc.await();
> {code}
> In HRegion#processRowsWithLocks
> {code}
>   // 2. Acquire the row lock(s)   
>
>   acquiredRowLocks = new ArrayList(rowsToLock.size());
>   for (byte[] row : rowsToLock) {
> // Attempt to lock all involved rows, throw if any lock times out 
>
> // use a writer lock for mixed reads and writes   
>
> acquiredRowLocks.add(getRowLockInternal(row, false));
>   }
> {code}
> and so on.
> What doMiniBatchMutation is doing looks wrong. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou updated HBASE-18466:
--
Status: Patch Available  (was: Open)

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou commented on HBASE-18466:
---

Posted v1:
# fixed promise broken issue when 
ResponseHeader::set_allocated_exception(pb::ExceptionResponse) is called 
without new style allocation of pb::ExceptionResponse.

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18466) [C++] Support handling exception in RpcTestServer

2017-07-28 Thread Xiaobing Zhou (JIRA)

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

Xiaobing Zhou updated HBASE-18466:
--
Attachment: HBASE-18466.001.patch

> [C++] Support handling exception in RpcTestServer
> -
>
> Key: HBASE-18466
> URL: https://issues.apache.org/jira/browse/HBASE-18466
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Xiaobing Zhou
>Assignee: Xiaobing Zhou
> Attachments: HBASE-18466.000.patch, HBASE-18466.001.patch
>
>
> In order simulate various error from servers,  exceptions should be handled 
> properly. The idea is to zip exception into hbase::Response in 
> RpcTestService, and Serialize response to folly::IOBuf and write it down the 
> pipeline.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-12387) committer guidelines should include patch signoff

2017-07-28 Thread Mike Drob (JIRA)

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

Mike Drob commented on HBASE-12387:
---

It looks like this got included almost verbatim already at some point (see 
example 60) in https://hbase.apache.org/book.html#committing.patches

> committer guidelines should include patch signoff
> -
>
> Key: HBASE-12387
> URL: https://issues.apache.org/jira/browse/HBASE-12387
> Project: HBase
>  Issue Type: Task
>  Components: documentation
>Reporter: Sean Busbey
>Assignee: Sean Busbey
>
> Right now our guide for committers apply patches has them use {{git am}} 
> without a signoff flag. This works okay, but it misses adding the 
> "signed-off-by" blurb in the commit message.
> Those messages make it easier to see at a glance with e.g. {{git log}} which 
> committer applied the patch.
> this section:
> {quote}
> The directive to use git format-patch rather than git diff, and not to use 
> --no-prefix, is a new one. See the second example for how to apply a patch 
> created with git diff, and educate the person who created the patch.
> {code}
> $ git checkout -b HBASE-
> $ git am ~/Downloads/HBASE--v2.patch
> $ git checkout master
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary or ask the submitter to do it
> $ git pull --rebase  # Better safe than sorry
> $ git push origin master
> $ git checkout branch-1
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary
> $ git pull --rebase  # Better safe than sorry
> $ git push origin branch-1
> $ git branch -D HBASE-
> {code}
> {quote}
> Should be
> {quote}
> The directive to use git format-patch rather than git diff, and not to use 
> --no-prefix, is a new one. See the second example for how to apply a patch 
> created with git diff, and educate the person who created the patch.
> Note that the {{--signoff}} flag to {{git am}} will insert a line in the 
> commit message that the patch was checked by your author string. This 
> addition to your inclusion as the commit's committer makes your participation 
> more prominent to users browsing {{git log}}.
> {code}
> $ git checkout -b HBASE-
> $ git am --signoff ~/Downloads/HBASE--v2.patch
> $ git checkout master
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary or ask the submitter to do it
> $ git pull --rebase  # Better safe than sorry
> $ git push origin master
> $ git checkout branch-1
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary
> $ git pull --rebase  # Better safe than sorry
> $ git push origin branch-1
> $ git branch -D HBASE-
> {code}
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-18474:
---
Description: 
Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in step 
1. 
{code}
// If we haven't got any rows in our batch, we should block to  
 
// get the next one.
 
RowLock rowLock = null;
try {
  rowLock = getRowLockInternal(mutation.getRow(), true);
} catch (TimeoutIOException e) {
  // We will retry when other exceptions, but we should stop if we 
timeout . 
  throw e;
} catch (IOException ioe) {
  LOG.warn("Failed getting lock in batch put, row="
+ Bytes.toStringBinary(mutation.getRow()), ioe);
}
if (rowLock == null) {
  // We failed to grab another lock 
 
  break; // stop acquiring more rows for this batch 
 
} else {
  acquiredRowLocks.add(rowLock);
}
{code}


Other code paths that apply mutations are acquiring write locks.

In HRegion#append
{code}
try {
  rowLock = getRowLockInternal(row, false);
  assert rowLock != null;
...
{code}

In HRegion#doIn
{code}
try {
  rowLock = getRowLockInternal(increment.getRow(), false);
...
{code}

In HRegion#checkAndMutate
{code}
  // Lock row - note that doBatchMutate will relock this row if called  
 
  RowLock rowLock = getRowLockInternal(get.getRow(), false);
  // wait for all previous transactions to complete (with lock held)
 
  mvcc.await();
{code}

In HRegion#processRowsWithLocks
{code}
  // 2. Acquire the row lock(s) 
 
  acquiredRowLocks = new ArrayList(rowsToLock.size());
  for (byte[] row : rowsToLock) {
// Attempt to lock all involved rows, throw if any lock times out   
 
// use a writer lock for mixed reads and writes 
 
acquiredRowLocks.add(getRowLockInternal(row, false));
  }
{code}

and so on.

What doMiniBatchMutation is doing looks wrong. 

  was:
Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in step 
1. 
{code}
// If we haven't got any rows in our batch, we should block to  
 
// get the next one.
 
RowLock rowLock = null;
try {
  rowLock = getRowLockInternal(mutation.getRow(), true);
} catch (TimeoutIOException e) {
  // We will retry when other exceptions, but we should stop if we 
timeout . 
  throw e;
} catch (IOException ioe) {
  LOG.warn("Failed getting lock in batch put, row="
+ Bytes.toStringBinary(mutation.getRow()), ioe);
}
if (rowLock == null) {
  // We failed to grab another lock 
 
  break; // stop acquiring more rows for this batch 
 
} else {
  acquiredRowLocks.add(rowLock);
}
{code}


Other code paths that apply mutations are acquiring write locks.

In HRegion#append
{code}
try {
  rowLock = getRowLockInternal(row, false);
  assert rowLock != null;
...
{code}

In HRegion#doIn
{code}
try {
  rowLock = getRowLockInternal(increment.getRow(), false);
...
{code}

In HRegion#checkAndMutate
{code}
  // Lock row - note that doBatchMutate will relock this row if called  
 
  RowLock rowLock = getRowLockInternal(get.getRow(), false);
  // wait for all previous transactions to complete (with lock held)
 
  mvcc.await();
{code}

What doMiniBatchMutation is doing looks wrong. 


> 

[jira] [Updated] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-18474:
---
Description: 
Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in step 
1. 
{code}
// If we haven't got any rows in our batch, we should block to  
 
// get the next one.
 
RowLock rowLock = null;
try {
  rowLock = getRowLockInternal(mutation.getRow(), true);
} catch (TimeoutIOException e) {
  // We will retry when other exceptions, but we should stop if we 
timeout . 
  throw e;
} catch (IOException ioe) {
  LOG.warn("Failed getting lock in batch put, row="
+ Bytes.toStringBinary(mutation.getRow()), ioe);
}
if (rowLock == null) {
  // We failed to grab another lock 
 
  break; // stop acquiring more rows for this batch 
 
} else {
  acquiredRowLocks.add(rowLock);
}
{code}


Other code paths that apply mutations are acquiring write locks.

In HRegion#append
{code}
try {
  rowLock = getRowLockInternal(row, false);
  assert rowLock != null;
...
{code}

In HRegion#doIn
{code}
try {
  rowLock = getRowLockInternal(increment.getRow(), false);
...
{code}

In HRegion#checkAndMutate
{code}
  // Lock row - note that doBatchMutate will relock this row if called  
 
  RowLock rowLock = getRowLockInternal(get.getRow(), false);
  // wait for all previous transactions to complete (with lock held)
 
  mvcc.await();
{code}

What doMiniBatchMutation is doing looks wrong. 

> HRegion#doMiniBatchMutation is acquiring read row locks
> ---
>
> Key: HBASE-18474
> URL: https://issues.apache.org/jira/browse/HBASE-18474
> Project: HBase
>  Issue Type: Bug
>Reporter: Andrew Purtell
>
> Looking at 1.3, HRegion#doMiniBatchMutation is acquiring read row locks in 
> step 1. 
> {code}
> // If we haven't got any rows in our batch, we should block to
>
> // get the next one.  
>
> RowLock rowLock = null;
> try {
>   rowLock = getRowLockInternal(mutation.getRow(), true);
> } catch (TimeoutIOException e) {
>   // We will retry when other exceptions, but we should stop if we 
> timeout . 
>   throw e;
> } catch (IOException ioe) {
>   LOG.warn("Failed getting lock in batch put, row="
> + Bytes.toStringBinary(mutation.getRow()), ioe);
> }
> if (rowLock == null) {
>   // We failed to grab another lock   
>
>   break; // stop acquiring more rows for this batch   
>
> } else {
>   acquiredRowLocks.add(rowLock);
> }
> {code}
> Other code paths that apply mutations are acquiring write locks.
> In HRegion#append
> {code}
> try {
>   rowLock = getRowLockInternal(row, false);
>   assert rowLock != null;
> ...
> {code}
> In HRegion#doIn
> {code}
> try {
>   rowLock = getRowLockInternal(increment.getRow(), false);
> ...
> {code}
> In HRegion#checkAndMutate
> {code}
>   // Lock row - note that doBatchMutate will relock this row if called
>
>   RowLock rowLock = getRowLockInternal(get.getRow(), false);
>   // wait for all previous transactions to complete (with lock held)  
>
>   mvcc.await();
> {code}
> What doMiniBatchMutation is doing looks wrong. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18474) HRegion#doMiniBatchMutation is acquiring read row locks

2017-07-28 Thread Andrew Purtell (JIRA)
Andrew Purtell created HBASE-18474:
--

 Summary: HRegion#doMiniBatchMutation is acquiring read row locks
 Key: HBASE-18474
 URL: https://issues.apache.org/jira/browse/HBASE-18474
 Project: HBase
  Issue Type: Bug
Reporter: Andrew Purtell






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-17908) Upgrade guava

2017-07-28 Thread stack (JIRA)

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

stack commented on HBASE-17908:
---

Thanks for reporting and taking a look [~easyliangjob]

> Upgrade guava
> -
>
> Key: HBASE-17908
> URL: https://issues.apache.org/jira/browse/HBASE-17908
> Project: HBase
>  Issue Type: Sub-task
>  Components: dependencies
>Reporter: Balazs Meszaros
>Assignee: stack
>Priority: Critical
> Fix For: 2.0.0
>
> Attachments: 0001-HBASE-17908-Upgrade-guava.022.patch, 
> HBASE-17908.master.001.patch, HBASE-17908.master.002.patch, 
> HBASE-17908.master.003.patch, HBASE-17908.master.004.patch, 
> HBASE-17908.master.005.patch, HBASE-17908.master.006.patch, 
> HBASE-17908.master.007.patch, HBASE-17908.master.008.patch, 
> HBASE-17908.master.009.patch, HBASE-17908.master.010.patch, 
> HBASE-17908.master.011.patch, HBASE-17908.master.012.patch, 
> HBASE-17908.master.013.patch, HBASE-17908.master.013.patch, 
> HBASE-17908.master.014.patch, HBASE-17908.master.015.patch, 
> HBASE-17908.master.015.patch, HBASE-17908.master.016.patch, 
> HBASE-17908.master.017.patch, HBASE-17908.master.018.patch, 
> HBASE-17908.master.019.patch, HBASE-17908.master.020.patch, 
> HBASE-17908.master.021.patch, HBASE-17908.master.021.patch, 
> HBASE-17908.master.022.patch, HBASE-17908.master.023.patch, 
> HBASE-17908.master.024.patch, HBASE-17908.master.025.patch, 
> HBASE-17908.master.026.patch, HBASE-17908.master.027.patch, 
> HBASE-17908.master.028.patch
>
>
> Currently we are using guava 12.0.1, but the latest version is 21.0. 
> Upgrading guava is always a hassle because it is not always backward 
> compatible with itself.
> Currently I think there are to approaches:
> 1. Upgrade guava to the newest version (21.0) and shade it.
> 2. Upgrade guava to a version which does not break or builds (15.0).
> If we can update it, some dependencies should be removed: 
> commons-collections, commons-codec, ...



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18025) CatalogJanitor should collect outdated RegionStates from the AM

2017-07-28 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez commented on HBASE-18025:
---

Yeah, it happens reliable. In TesCatalogJanitor the behavior cannot be 
captured, but I created another test for CatalogJanitor where I can monitor 
that the RegionStates are not cleared up after a split. I was a little 
skeptical about ServerManager#removeRegion but it think it makes sense to clean 
up storeFlushedSequenceIdsByRegion and flushedSequenceIdByRegion after a split 
or a merge.

> CatalogJanitor should collect outdated RegionStates from the AM
> ---
>
> Key: HBASE-18025
> URL: https://issues.apache.org/jira/browse/HBASE-18025
> Project: HBase
>  Issue Type: Bug
>Reporter: Esteban Gutierrez
>Assignee: Esteban Gutierrez
> Attachments: HBASE-18025.001.patch, HBASE-18025.002.patch, 
> HBASE-18025.003.patch
>
>
> I don't think this will matter on the long run for HBase 2, but at least in 
> branch-1 and the current master we keep in multiple places copies of the 
> region states in the master and this copies include information like the HRI. 
> A problem that we have observed is when region replicas are being used and 
> there is a split, the region replica from parent doesn't get collected from 
> the region states and when the balancer tries to assign the old parent region 
> replica, this will cause the RegionServer to create a new HRI with the 
> details of the parent causing an inconstancy (see HBASE-18024).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18024) HRegion#initializeRegionInternals should not re-create .hregioninfo file when the region directory no longer exists

2017-07-28 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez commented on HBASE-18024:
---

Got a fix for the test in TestWALMonotonicallyIncreasingSeqId which is fine. 
What is interesting is in TestStoreFileRefresherChore, which is what was 
uncovered while troubleshooting the issue that brought this JIRA. After my 
change HRegion.initialize() will not attempt to re-create the regioninfo file, 
but throwing an exception will cause the test to fail since the region replica 
cannot be instantiated. One option I've been thinking is to modify 
HRegion#initialize() to have an optional argument to initialize the region on 
the filesystem in order to skip writeRegionInfoOnFilesystem.

> HRegion#initializeRegionInternals should not re-create .hregioninfo file when 
> the region directory no longer exists
> ---
>
> Key: HBASE-18024
> URL: https://issues.apache.org/jira/browse/HBASE-18024
> Project: HBase
>  Issue Type: Bug
>  Components: Region Assignment, regionserver
>Affects Versions: 2.0.0, 1.4.0, 1.3.1, 1.2.5
>Reporter: Esteban Gutierrez
>Assignee: Esteban Gutierrez
> Attachments: HBASE-18024.001.patch
>
>
> When a RegionSever attempts to open a region, during initialization the RS 
> tries to open the {{/data///.hregioninfo}} 
> file, however if the {{.hregioninfofile}} doesn't exist, the RegionServer 
> will create a new one on {{HRegionFileSystem#checkRegionInfoOnFilesystem}}. A 
> side effect of that tools like hbck will incorrectly assume an inconsistency 
> due the presence of this new {{.hregioninfofile}}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18025) CatalogJanitor should collect outdated RegionStates from the AM

2017-07-28 Thread Josh Elser (JIRA)

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

Josh Elser commented on HBASE-18025:


Took a glance at v3 and the problem you described makes sense. I'm a bit scared 
to +1 because I know how tricky this state management is :)

bq. A problem that we have observed is when region replicas are being used and 
there is a split, the region replica from parent doesn't get collected from the 
region states and when the balancer tries to assign the old parent region 
replica, this will cause the RegionServer to create a new HRI with the details 
of the parent causing an inconstancy

Is this something that reliably happens and is possible to capture in a test?

> CatalogJanitor should collect outdated RegionStates from the AM
> ---
>
> Key: HBASE-18025
> URL: https://issues.apache.org/jira/browse/HBASE-18025
> Project: HBase
>  Issue Type: Bug
>Reporter: Esteban Gutierrez
>Assignee: Esteban Gutierrez
> Attachments: HBASE-18025.001.patch, HBASE-18025.002.patch, 
> HBASE-18025.003.patch
>
>
> I don't think this will matter on the long run for HBase 2, but at least in 
> branch-1 and the current master we keep in multiple places copies of the 
> region states in the master and this copies include information like the HRI. 
> A problem that we have observed is when region replicas are being used and 
> there is a split, the region replica from parent doesn't get collected from 
> the region states and when the balancer tries to assign the old parent region 
> replica, this will cause the RegionServer to create a new HRI with the 
> details of the parent causing an inconstancy (see HBASE-18024).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18024) HRegion#initializeRegionInternals should not re-create .hregioninfo file when the region directory no longer exists

2017-07-28 Thread Josh Elser (JIRA)

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

Josh Elser commented on HBASE-18024:


Any update on those test failures, [~esteban]? Anything I can do to help out?

> HRegion#initializeRegionInternals should not re-create .hregioninfo file when 
> the region directory no longer exists
> ---
>
> Key: HBASE-18024
> URL: https://issues.apache.org/jira/browse/HBASE-18024
> Project: HBase
>  Issue Type: Bug
>  Components: Region Assignment, regionserver
>Affects Versions: 2.0.0, 1.4.0, 1.3.1, 1.2.5
>Reporter: Esteban Gutierrez
>Assignee: Esteban Gutierrez
> Attachments: HBASE-18024.001.patch
>
>
> When a RegionSever attempts to open a region, during initialization the RS 
> tries to open the {{/data///.hregioninfo}} 
> file, however if the {{.hregioninfofile}} doesn't exist, the RegionServer 
> will create a new one on {{HRegionFileSystem#checkRegionInfoOnFilesystem}}. A 
> side effect of that tools like hbck will incorrectly assume an inconsistency 
> due the presence of this new {{.hregioninfofile}}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18304) Start enforcing upperbounds on dependencies

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18304:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
15s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red}  0m  
0s{color} | {color:red} The patch doesn't appear to include any new or modified 
tests. Please justify why no new tests are needed for this patch. Also please 
list what manual steps were performed to verify this patch. {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
16s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  3m 
23s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  6m  
4s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  2m 
58s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  3m 
40s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
56s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  6m 
28s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  5m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  5m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  3m 
18s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} xml {color} | {color:green}  0m  
8s{color} | {color:green} The patch has no ill-formed XML file. {color} |
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red}  0m 
21s{color} | {color:red} The patch causes 10 errors with Hadoop v2.6.1. {color} 
|
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red}  0m 
34s{color} | {color:red} The patch causes 10 errors with Hadoop v2.6.2. {color} 
|
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red}  0m 
47s{color} | {color:red} The patch causes 10 errors with Hadoop v2.6.3. {color} 
|
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red}  1m  
3s{color} | {color:red} The patch causes 10 errors with Hadoop v2.6.4. {color} |
| {color:red}-1{color} | {color:red} hadoopcheck {color} | {color:red}  1m 
16s{color} | {color:red} The patch causes 10 errors with Hadoop v2.6.5. {color} 
|
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  4m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  3m 
10s{color} | {color:green} hbase-procedure in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  2m 
47s{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 73m 27s{color} 
| {color:red} hbase-server in the patch failed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  5m  
4s{color} | {color:green} hbase-spark in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
36s{color} | {color:green} hbase-spark-it in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}139m 
51s{color} | {color:green} root in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  1m 
29s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}281m 46s{color} | 
{color:black} {color} |
\\
\\
|| Reason || Tests ||
| Timed out junit tests | 
org.apache.hadoop.hbase.client.TestScanWithoutFetchingData |
|   | org.apache.hadoop.hbase.mapreduce.TestWALPlayer |
|   | org.apache.hadoop.hbase.coprocessor.TestHTableWrapper |
|   | org.apache.hadoop.hbase.client.TestSnapshotCloneIndependence |
|   | org.apache.hadoop.hbase.mapreduce.TestTableInputFormat |

[jira] [Commented] (HBASE-17908) Upgrade guava

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang commented on HBASE-17908:
--

Never mind my above comments, something on my mvn repository messed up. It 
works fine now

> Upgrade guava
> -
>
> Key: HBASE-17908
> URL: https://issues.apache.org/jira/browse/HBASE-17908
> Project: HBase
>  Issue Type: Sub-task
>  Components: dependencies
>Reporter: Balazs Meszaros
>Assignee: stack
>Priority: Critical
> Fix For: 2.0.0
>
> Attachments: 0001-HBASE-17908-Upgrade-guava.022.patch, 
> HBASE-17908.master.001.patch, HBASE-17908.master.002.patch, 
> HBASE-17908.master.003.patch, HBASE-17908.master.004.patch, 
> HBASE-17908.master.005.patch, HBASE-17908.master.006.patch, 
> HBASE-17908.master.007.patch, HBASE-17908.master.008.patch, 
> HBASE-17908.master.009.patch, HBASE-17908.master.010.patch, 
> HBASE-17908.master.011.patch, HBASE-17908.master.012.patch, 
> HBASE-17908.master.013.patch, HBASE-17908.master.013.patch, 
> HBASE-17908.master.014.patch, HBASE-17908.master.015.patch, 
> HBASE-17908.master.015.patch, HBASE-17908.master.016.patch, 
> HBASE-17908.master.017.patch, HBASE-17908.master.018.patch, 
> HBASE-17908.master.019.patch, HBASE-17908.master.020.patch, 
> HBASE-17908.master.021.patch, HBASE-17908.master.021.patch, 
> HBASE-17908.master.022.patch, HBASE-17908.master.023.patch, 
> HBASE-17908.master.024.patch, HBASE-17908.master.025.patch, 
> HBASE-17908.master.026.patch, HBASE-17908.master.027.patch, 
> HBASE-17908.master.028.patch
>
>
> Currently we are using guava 12.0.1, but the latest version is 21.0. 
> Upgrading guava is always a hassle because it is not always backward 
> compatible with itself.
> Currently I think there are to approaches:
> 1. Upgrade guava to the newest version (21.0) and shade it.
> 2. Upgrade guava to a version which does not break or builds (15.0).
> If we can update it, some dependencies should be removed: 
> commons-collections, commons-codec, ...



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18473) VC.listLabels() erroneously closes any connection

2017-07-28 Thread Lars George (JIRA)
Lars George created HBASE-18473:
---

 Summary: VC.listLabels() erroneously closes any connection
 Key: HBASE-18473
 URL: https://issues.apache.org/jira/browse/HBASE-18473
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 1.1.11, 1.2.6, 1.3.1
Reporter: Lars George


In HBASE-13358 the {{VisibilityClient.listLabels()}} was amended to take in a 
connection from the caller, which totally makes sense. But the patch forgot to 
remove the unconditional call to {{connection.close()}} in the {{finally}} 
block:

{code}
finally {
  if (table != null) {
table.close();
  }
  if (connection != null) {
connection.close();
  }
}
{code}

Remove the second {{if}} completely.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18409) Migrate Client Metrics from codahale to hbase-metrics

2017-07-28 Thread Ronald Macmaster (JIRA)

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

Ronald Macmaster updated HBASE-18409:
-
Attachment: 
0001-HBASE-18409-MetricsConnection-client-metrics-migration.patch

> Migrate Client Metrics from codahale to hbase-metrics
> -
>
> Key: HBASE-18409
> URL: https://issues.apache.org/jira/browse/HBASE-18409
> Project: HBase
>  Issue Type: Improvement
>  Components: Client, java, metrics
>Affects Versions: 3.0.0
>Reporter: Ronald Macmaster
>  Labels: newbie
> Fix For: 3.0.0
>
> Attachments: 
> 0001-HBASE-18409-MetricsConnection-client-metrics-migration.patch
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Currently, the metrics for hbase-client are tailored for reporting via a 
> client-side JMX server.
> The MetricsConnection handles the metrics management and reporting via the 
> metrics platform from codahale. 
> This approach worked well for hbase-1.3.1 when the metrics platform was still 
> relatively young, but it could be improved by using the new 
> hbase-metrics-api. 
> Now that we have an actual hbase-metrics-api that master, regionserver, 
> zookeeper, and other daemons use, it would be good to also allow the client 
> to leverage the metrics-api. 
> Then, the client could also report its metrics via Hadoop's metrics2 if 
> desired or through another platform that utilizes the hbase-metrics-api. 
> If left alone, client metrics will continue to be only barely visible through 
> a client-side JMX server.
> The migration to the new metrics-api could be done by simply changing the 
> Metrics data types from codahale types to hbase-metrics types without 
> changing the metrics signatures of MetricsConnection unless completely 
> necessary. 
> The codahale MetricsRegistry would also have to be exchanged for a 
> hbase-metrics MetricsRegistry. 
> I found this to be a necessary change after attempting to implement my own 
> Reporter to use within the MetricsConnection class.
> I was attempting to create a HadoopMetrics2Reporter that extends the codahale 
> ScheduledReporter and reports the MetricsConnection metrics to Hadoop's 
> metrics2 system. 
> The already existing infrastructure in the hbase-metrics and 
> hbase-metrics-api projects could be easily leveraged for a cleaner solution.
> If completed successfully, users could instead access their client-side 
> metrics through the hbase-metrics-api. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18409) Migrate Client Metrics from codahale to hbase-metrics

2017-07-28 Thread Ronald Macmaster (JIRA)

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

Ronald Macmaster updated HBASE-18409:
-
Fix Version/s: 3.0.0
Affects Version/s: (was: 2.0.0-alpha-1)
   3.0.0
   Status: Patch Available  (was: Open)

The patch refactors the original MetricsConnection in the hbase-client module 
to report metrics via the Hadoop metrics2 system. 

Originally, metrics were reported privately through a codahale JMXReporter in 
the MetricsConnection class. The MetricsConnection class also recorded metrics 
using the codahale metrics classes rather than the hbase-metrics classes. These 
classes prove to be inflexible for the extendability and customization that 
hbase-client needs. 

Now, the MetricsConnection delegates updates to metrics to the metrics2 system. 
It does this through the addition of two new classes, MetricsClientSource and 
MetricsClientSourceImpl in the hbase-hadoop-compat and hbase-hadoop2-compat 
modules respectively. The new model closely resembles the architecture for 
collecting and reporting metrics from the Zookeeper client, master, and region 
server daemons. 

The patch unifies the concept of metrics reporting behind a single API.
Once the native infrastructure for metrics reporting via hbase-metrics is 
completed, metrics2 sources and sinks can be phased out accordingly. 

> Migrate Client Metrics from codahale to hbase-metrics
> -
>
> Key: HBASE-18409
> URL: https://issues.apache.org/jira/browse/HBASE-18409
> Project: HBase
>  Issue Type: Improvement
>  Components: Client, java, metrics
>Affects Versions: 3.0.0
>Reporter: Ronald Macmaster
>  Labels: newbie
> Fix For: 3.0.0
>
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> Currently, the metrics for hbase-client are tailored for reporting via a 
> client-side JMX server.
> The MetricsConnection handles the metrics management and reporting via the 
> metrics platform from codahale. 
> This approach worked well for hbase-1.3.1 when the metrics platform was still 
> relatively young, but it could be improved by using the new 
> hbase-metrics-api. 
> Now that we have an actual hbase-metrics-api that master, regionserver, 
> zookeeper, and other daemons use, it would be good to also allow the client 
> to leverage the metrics-api. 
> Then, the client could also report its metrics via Hadoop's metrics2 if 
> desired or through another platform that utilizes the hbase-metrics-api. 
> If left alone, client metrics will continue to be only barely visible through 
> a client-side JMX server.
> The migration to the new metrics-api could be done by simply changing the 
> Metrics data types from codahale types to hbase-metrics types without 
> changing the metrics signatures of MetricsConnection unless completely 
> necessary. 
> The codahale MetricsRegistry would also have to be exchanged for a 
> hbase-metrics MetricsRegistry. 
> I found this to be a necessary change after attempting to implement my own 
> Reporter to use within the MetricsConnection class.
> I was attempting to create a HadoopMetrics2Reporter that extends the codahale 
> ScheduledReporter and reports the MetricsConnection metrics to Hadoop's 
> metrics2 system. 
> The already existing infrastructure in the hbase-metrics and 
> hbase-metrics-api projects could be easily leveraged for a cleaner solution.
> If completed successfully, users could instead access their client-side 
> metrics through the hbase-metrics-api. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18469) Correct RegionServer metric of totalRequestCount

2017-07-28 Thread Josh Elser (JIRA)

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

Josh Elser commented on HBASE-18469:


[~zhangshibin], do you plan on inspecting this further yourself?

I don't think there's much one of us could do with the information you provided.

> Correct  RegionServer metric of  totalRequestCount
> --
>
> Key: HBASE-18469
> URL: https://issues.apache.org/jira/browse/HBASE-18469
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.2.0
>Reporter: Shibin Zhang
>Priority: Minor
>
> when i get the metric ,i found  this three metric may be have some error  as 
> follow :
> "totalRequestCount" : 17541,
> "readRequestCount" : 17483,
> "writeRequestCount" : 1633,



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang commented on HBASE-18472:
--

It seems something messed up in my local m2, it works fine now. Sorry for 
taking up you guys' time

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang updated HBASE-18472:
-
Resolution: Invalid
Status: Resolved  (was: Patch Available)

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-12387) committer guidelines should include patch signoff

2017-07-28 Thread Sean Busbey (JIRA)

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

Sean Busbey commented on HBASE-12387:
-

It didn't. since the ref guide includes a reference to a DISCUSS thread about 
the old attribution approach of "HBASE-121334 foo bar thing (contributor)", we 
should have one before we push on this.

Mind starting the thread [~mdrob]? If you don't think you have enough context, 
let me know and I'll do it.

> committer guidelines should include patch signoff
> -
>
> Key: HBASE-12387
> URL: https://issues.apache.org/jira/browse/HBASE-12387
> Project: HBase
>  Issue Type: Task
>  Components: documentation
>Reporter: Sean Busbey
>Assignee: Sean Busbey
>
> Right now our guide for committers apply patches has them use {{git am}} 
> without a signoff flag. This works okay, but it misses adding the 
> "signed-off-by" blurb in the commit message.
> Those messages make it easier to see at a glance with e.g. {{git log}} which 
> committer applied the patch.
> this section:
> {quote}
> The directive to use git format-patch rather than git diff, and not to use 
> --no-prefix, is a new one. See the second example for how to apply a patch 
> created with git diff, and educate the person who created the patch.
> {code}
> $ git checkout -b HBASE-
> $ git am ~/Downloads/HBASE--v2.patch
> $ git checkout master
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary or ask the submitter to do it
> $ git pull --rebase  # Better safe than sorry
> $ git push origin master
> $ git checkout branch-1
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary
> $ git pull --rebase  # Better safe than sorry
> $ git push origin branch-1
> $ git branch -D HBASE-
> {code}
> {quote}
> Should be
> {quote}
> The directive to use git format-patch rather than git diff, and not to use 
> --no-prefix, is a new one. See the second example for how to apply a patch 
> created with git diff, and educate the person who created the patch.
> Note that the {{--signoff}} flag to {{git am}} will insert a line in the 
> commit message that the patch was checked by your author string. This 
> addition to your inclusion as the commit's committer makes your participation 
> more prominent to users browsing {{git log}}.
> {code}
> $ git checkout -b HBASE-
> $ git am --signoff ~/Downloads/HBASE--v2.patch
> $ git checkout master
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary or ask the submitter to do it
> $ git pull --rebase  # Better safe than sorry
> $ git push origin master
> $ git checkout branch-1
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary
> $ git pull --rebase  # Better safe than sorry
> $ git push origin branch-1
> $ git branch -D HBASE-
> {code}
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18472:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
20s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:red}-1{color} | {color:red} test4tests {color} | {color:red}  0m  
0s{color} | {color:red} The patch doesn't appear to include any new or modified 
tests. Please justify why no new tests are needed for this patch. Also please 
list what manual steps were performed to verify this patch. {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  3m 
43s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
 8s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m  
7s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  0m 
 8s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
 7s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} xml {color} | {color:green}  0m  
1s{color} | {color:green} The patch has no ill-formed XML file. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
31m 15s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m  
7s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m  
8s{color} | {color:green} hbase-resource-bundle in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
 8s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 36m 25s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=17.03.0-ce Server=17.03.0-ce Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18472 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879373/HBASE-18472-master-v1.patch
 |
| Optional Tests |  asflicense  javac  javadoc  unit  xml  |
| uname | Linux 362f41f6c671 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 
14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 2d06a06 |
| Default Java | 1.8.0_131 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7832/testReport/ |
| modules | C: hbase-resource-bundle U: hbase-resource-bundle |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7832/console |
| Powered by | Apache Yetus 0.4.0   http://yetus.apache.org |


This message was automatically generated.



> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang commented on HBASE-18472:
--

OK, let me try on a clean workspace and m2 repository

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Sean Busbey (JIRA)

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

Sean Busbey commented on HBASE-18472:
-

This shouldn't be needed. guava 11 has a parent of guava-parent 11, which lists 
a license of "Apache Software License, Version 2.0". Guava was expressly 
removed as a part of HBASE-18202 since that license name got handled fine.

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Mike Drob (JIRA)

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

Mike Drob commented on HBASE-18472:
---

HBASE-16351 made the error reporting friendlier, it shouldn't have exposed any 
new errors.

Can you reproduce this with a clean workspace and m2 repository?

Guava 11.0.2 inherits it's license from guava-parent 
https://repo1.maven.org/maven2/com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
 which has 

{code}

The Apache Software License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0.txt
repo

{code}

and that looks 100% correct.

Can you post more snippet from the ERROR message you see inside of the 
generated LICENSE file?

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18374) RegionServer Metrics improvements

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18374:
---

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
17s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green}  0m  
0s{color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:green}+1{color} | {color:green} test4tests {color} | {color:green}  0m 
 0s{color} | {color:green} The patch appears to include 3 new or modified test 
files. {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
21s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  3m 
24s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m  
5s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
27s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
35s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  3m 
38s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
51s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 
16s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  1m 
11s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  1m  
2s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  1m  
2s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
28s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
35s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
30m 11s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  3m 
57s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
50s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
23s{color} | {color:green} hbase-hadoop-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}  0m 
26s{color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}111m 
44s{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
44s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}163m 10s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18374 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879350/HBASE-18374.master.005.patch
 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 2134b41544f1 3.13.0-119-generic #166-Ubuntu SMP Wed May 3 
12:18:55 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 2d06a06 |
| Default Java | 1.8.0_131 |
| findbugs | v3.1.0-RC3 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7830/testReport/ |
| modules | C: hbase-hadoop-compat hbase-hadoop2-compat hbase-server U: . |
| Console output | 

[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang commented on HBASE-18472:
--

I try it on master branch 

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 3.0.0, 2.0.0-alpha-1
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang updated HBASE-18472:
-
Fix Version/s: 3.0.0
   2.0.0
Affects Version/s: 3.0.0
   2.0.0-alpha-1
   Status: Patch Available  (was: Open)

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 2.0.0-alpha-1, 3.0.0
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Fix For: 2.0.0, 3.0.0
>
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang updated HBASE-18472:
-
Attachment: HBASE-18472-master-v1.patch

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
> Attachments: HBASE-18472-master-v1.patch
>
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)

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

Yi Liang commented on HBASE-18472:
--

the error on my machine was caused by HBASE-16351, it seems we do not add guava 
license into supplemental-models.xml in HBASE-17908.  

Hi [~mdrob],
   Have you seens this error when you mvn install,  I think this errors has 
been here for while, it is strange no one report it. Just want to make sure if 
it only happens on my machine. 

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Mike Drob (JIRA)

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

Mike Drob commented on HBASE-18472:
---

Hi [~easyliangjob] - is this on a specific branch? Possibly related to 
HBASE-17908 but I haven't seen this failure happen locally.

> Add guava license and update supplemental-models.xml
> 
>
> Key: HBASE-18472
> URL: https://issues.apache.org/jira/browse/HBASE-18472
> Project: HBase
>  Issue Type: Bug
>Reporter: Yi Liang
>Assignee: Yi Liang
>Priority: Blocker
>
> When I run mvn clean install -DskipTests on my local machine, lt always shows 
> error below 
> {quote}
> WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
> with message:
> License errors detected, for more detail find ERROR in 
> hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE
> Failed to execute goal 
> org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
> (check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
> failed. Look above for specific messages explaining why the rule failed.
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18472) Add guava license and update supplemental-models.xml

2017-07-28 Thread Yi Liang (JIRA)
Yi Liang created HBASE-18472:


 Summary: Add guava license and update supplemental-models.xml
 Key: HBASE-18472
 URL: https://issues.apache.org/jira/browse/HBASE-18472
 Project: HBase
  Issue Type: Bug
Reporter: Yi Liang
Assignee: Yi Liang
Priority: Blocker


When I run mvn clean install -DskipTests on my local machine, lt always shows 
error below 
{quote}
WARNING] Rule 0: org.apache.maven.plugins.enforcer.EvaluateBeanshell failed 
with message:
License errors detected, for more detail find ERROR in 
hbase-assembly/target/maven-shared-archive-resources/META-INF/LICENSE

Failed to execute goal 
org.apache.maven.plugins:maven-enforcer-plugin:1.4.1:enforce 
(check-aggregate-license) on project hbase-assembly: Some Enforcer rules have 
failed. Look above for specific messages explaining why the rule failed.
{quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-12387) committer guidelines should include patch signoff

2017-07-28 Thread Mike Drob (JIRA)

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

Mike Drob commented on HBASE-12387:
---

Did the proposed DISCUSS thread ever happen?

> committer guidelines should include patch signoff
> -
>
> Key: HBASE-12387
> URL: https://issues.apache.org/jira/browse/HBASE-12387
> Project: HBase
>  Issue Type: Task
>  Components: documentation
>Reporter: Sean Busbey
>Assignee: Sean Busbey
>
> Right now our guide for committers apply patches has them use {{git am}} 
> without a signoff flag. This works okay, but it misses adding the 
> "signed-off-by" blurb in the commit message.
> Those messages make it easier to see at a glance with e.g. {{git log}} which 
> committer applied the patch.
> this section:
> {quote}
> The directive to use git format-patch rather than git diff, and not to use 
> --no-prefix, is a new one. See the second example for how to apply a patch 
> created with git diff, and educate the person who created the patch.
> {code}
> $ git checkout -b HBASE-
> $ git am ~/Downloads/HBASE--v2.patch
> $ git checkout master
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary or ask the submitter to do it
> $ git pull --rebase  # Better safe than sorry
> $ git push origin master
> $ git checkout branch-1
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary
> $ git pull --rebase  # Better safe than sorry
> $ git push origin branch-1
> $ git branch -D HBASE-
> {code}
> {quote}
> Should be
> {quote}
> The directive to use git format-patch rather than git diff, and not to use 
> --no-prefix, is a new one. See the second example for how to apply a patch 
> created with git diff, and educate the person who created the patch.
> Note that the {{--signoff}} flag to {{git am}} will insert a line in the 
> commit message that the patch was checked by your author string. This 
> addition to your inclusion as the commit's committer makes your participation 
> more prominent to users browsing {{git log}}.
> {code}
> $ git checkout -b HBASE-
> $ git am --signoff ~/Downloads/HBASE--v2.patch
> $ git checkout master
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary or ask the submitter to do it
> $ git pull --rebase  # Better safe than sorry
> $ git push origin master
> $ git checkout branch-1
> $ git pull --rebase
> $ git cherry-pick 
> # Resolve conflicts if necessary
> $ git pull --rebase  # Better safe than sorry
> $ git push origin branch-1
> $ git branch -D HBASE-
> {code}
> {quote}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18142) Deletion of a cell deletes the previous versions too

2017-07-28 Thread Chia-Ping Tsai (JIRA)

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

Chia-Ping Tsai commented on HBASE-18142:


bq.  could this be the reason we are deleting all the versions of all the cells 
in that row?
Not exactly. The _deleterows_internal call _createdelete_internal for getting 
the Delete object. The _createdelete_internal create the Delete object through 
[Delete#addColumns|https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Delete.java#L258].
 The purpose of the Delete#addColumns is to *delete all versions of the 
specified column with a timestamp less than or equal to the specified 
timestamp*.

> Deletion of a cell deletes the previous versions too
> 
>
> Key: HBASE-18142
> URL: https://issues.apache.org/jira/browse/HBASE-18142
> Project: HBase
>  Issue Type: Bug
>  Components: API
>Reporter: Karthick
>  Labels: beginner
>
> When I tried to delete a cell using it's timestamp in the Hbase Shell, the 
> previous versions of the same cell also got deleted. But when I tried the 
> same using the Java API, then the previous versions are not deleted and I can 
> retrive the previous values.
> https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Delete.java
> see this file to fix the issue. This method (public Delete addColumns(final 
> byte [] family, final byte [] qualifier, final long timestamp)) only deletes 
> the current version of the cell. The previous versions are not deleted.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18304) Start enforcing upperbounds on dependencies

2017-07-28 Thread Mike Drob (JIRA)

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

Mike Drob commented on HBASE-18304:
---

Hi [~tamaas], when I said to exclude the protobuf dep I meant to exclude it 
from the configuration, not the actual dependency tree. I think we can use the 
mechanism in MENFORCER-273 to do this.

> Start enforcing upperbounds on dependencies
> ---
>
> Key: HBASE-18304
> URL: https://issues.apache.org/jira/browse/HBASE-18304
> Project: HBase
>  Issue Type: Task
>  Components: build, dependencies
>Affects Versions: 2.0.0
>Reporter: Sean Busbey
>Assignee: Tamas Penzes
>  Labels: beginner
> Fix For: 2.0.0
>
> Attachments: HBASE-18304.master.001.patch
>
>
> would be nice to get this going before our next major version.
> http://maven.apache.org/enforcer/enforcer-rules/requireUpperBoundDeps.html



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18471) Deleted qualifier re-appearing after multiple puts.

2017-07-28 Thread Thomas Martens (JIRA)

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

Thomas Martens updated HBASE-18471:
---
Affects Version/s: 1.3.1

> Deleted qualifier re-appearing after multiple puts.
> ---
>
> Key: HBASE-18471
> URL: https://issues.apache.org/jira/browse/HBASE-18471
> Project: HBase
>  Issue Type: Bug
>  Components: Deletes, hbase, scan
>Affects Versions: 1.3.0, 1.3.1
>Reporter: Thomas Martens
> Attachments: HBaseDmlTest.java
>
>
> The qualifier of a deleted row (with keep deleted cells true) re-appears 
> after re-inserting the same row multiple times (with different timestamp) 
> with an empty qualifier.
> Scenario:
> # Put row with family and qualifier (timestamp 1).
> # Delete entire row (timestamp 2).
> # Put same row again with family without qualifier (timestamp 3).
> A scan (latest version) returns the row with family without qualifier, 
> version 3 (which is correct).
> # Put the same row again with family without qualifier (timestamp 4).
> A scan (latest version) returns multiple rows:
> * the row with family without qualifier, version 4 (which is correct).
> * the row with family with qualifier, version 1 (which is wrong).
> There is a test scenario attached.
> output:
>  13:42:53,952 [main] client.HBaseAdmin - Started disable of test_dml
>  13:42:55,801 [main] client.HBaseAdmin - Disabled test_dml
>  13:42:57,256 [main] client.HBaseAdmin - Deleted test_dml
>  13:42:58,592 [main] client.HBaseAdmin - Created test_dml
> Put row: 'myRow' with family: 'myFamily' with qualifier: 'myQualifier' with 
> timestamp: '1'
> Scan printout =>
>   Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
> Value: 'myValue'
> Delete row: 'myRow'
> Scan printout =>
> Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with 
> timestamp: '3'
> Scan printout =>
>   Row: 'myRow', Timestamp: '3', Family: 'myFamily', Qualifier: '', Value: 
> 'myValue'
> Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with 
> timestamp: '4'
> Scan printout =>
>   Row: 'myRow', Timestamp: '4', Family: 'myFamily', Qualifier: '', Value: 
> 'myValue'
>   {color:red}Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 
> 'myQualifier', Value: 'myValue'{color}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18304) Start enforcing upperbounds on dependencies

2017-07-28 Thread Tamas Penzes (JIRA)

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

Tamas Penzes updated HBASE-18304:
-
Status: Patch Available  (was: In Progress)

> Start enforcing upperbounds on dependencies
> ---
>
> Key: HBASE-18304
> URL: https://issues.apache.org/jira/browse/HBASE-18304
> Project: HBase
>  Issue Type: Task
>  Components: build, dependencies
>Affects Versions: 2.0.0
>Reporter: Sean Busbey
>Assignee: Tamas Penzes
>  Labels: beginner
> Fix For: 2.0.0
>
> Attachments: HBASE-18304.master.001.patch
>
>
> would be nice to get this going before our next major version.
> http://maven.apache.org/enforcer/enforcer-rules/requireUpperBoundDeps.html



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18374) RegionServer Metrics improvements

2017-07-28 Thread Abhishek Singh Chouhan (JIRA)

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

Abhishek Singh Chouhan updated HBASE-18374:
---
Attachment: HBASE-18374.master.005.patch

Added putbatch metrics.

> RegionServer Metrics improvements
> -
>
> Key: HBASE-18374
> URL: https://issues.apache.org/jira/browse/HBASE-18374
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 3.0.0
>Reporter: Abhishek Singh Chouhan
>Assignee: Abhishek Singh Chouhan
> Fix For: 3.0.0
>
> Attachments: HBASE-18374.branch-1.001.patch, 
> HBASE-18374.branch-1.001.patch, HBASE-18374.branch-1.002.patch, 
> HBASE-18374.master.001.patch, HBASE-18374.master.002.patch, 
> HBASE-18374.master.003.patch, HBASE-18374.master.004.patch, 
> HBASE-18374.master.005.patch
>
>
> At the RS level we have latency metrics for mutate/puts and deletes that are 
> updated per batch (ie. at the end of entire batchop if it contains put/delete 
> update the respective metric) in contrast with append/increment/get metrics 
> that are updated per op. This is a bit ambiguous since the delete and put 
> metrics are updated for multi row mutations that happen to contain a 
> put/delete. We should rename the metric(eg. delete_batch)/add better 
> description. Also we should add metrics for single delete client operations 
> that come through RSRpcServer.mutate path. We should also add metrics for 
> checkAndPut and checkAndDelete.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18304) Start enforcing upperbounds on dependencies

2017-07-28 Thread Tamas Penzes (JIRA)

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

Tamas Penzes updated HBASE-18304:
-
Attachment: HBASE-18304.master.001.patch

> Start enforcing upperbounds on dependencies
> ---
>
> Key: HBASE-18304
> URL: https://issues.apache.org/jira/browse/HBASE-18304
> Project: HBase
>  Issue Type: Task
>  Components: build, dependencies
>Affects Versions: 2.0.0
>Reporter: Sean Busbey
>Assignee: Tamas Penzes
>  Labels: beginner
> Fix For: 2.0.0
>
> Attachments: HBASE-18304.master.001.patch
>
>
> would be nice to get this going before our next major version.
> http://maven.apache.org/enforcer/enforcer-rules/requireUpperBoundDeps.html



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-15134) Add visibility into Flush and Compaction queues

2017-07-28 Thread Hudson (JIRA)

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

Hudson commented on HBASE-15134:


FAILURE: Integrated in Jenkins build HBase-Trunk_matrix #3449 (See 
[https://builds.apache.org/job/HBase-Trunk_matrix/3449/])
HBASE-15134 Add visibility into Flush and Compaction queues (achouhan: rev 
2d06a06ba4bbd2f64e28be5973eb1d447114bedc)
* (edit) 
hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplit.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java
* (edit) 
hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperStub.java
* (edit) 
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
* (edit) 
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.java


> Add visibility into Flush and Compaction queues
> ---
>
> Key: HBASE-15134
> URL: https://issues.apache.org/jira/browse/HBASE-15134
> Project: HBase
>  Issue Type: New Feature
>  Components: Compaction, metrics, regionserver
>Reporter: Elliott Clark
>Assignee: Abhishek Singh Chouhan
> Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-2
>
> Attachments: HBASE-15134.branch-1.001.patch, 
> HBASE-15134.branch-1.001.patch, HBASE-15134.master.001.patch, 
> HBASE-15134.master.002.patch, HBASE-15134.master.003.patch, 
> HBASE-15134.patch, HBASE-15134.patch
>
>
> On busy spurts we can see regionservers start to see large queues for 
> compaction. It's really hard to tell if the server is queueing a lot of 
> compactions for the same region, lots of compactions for lots of regions, or 
> just falling behind.
> For flushes much the same. There can be flushes in queue that aren't being 
> run because of delayed flushes. There's no way to know from the metrics how 
> many flushes are for each region, how many are delayed. Etc.
> We should add either more metrics around this ( num per region, max per 
> region, min per region ) or add on a UI page that has the list of compactions 
> and flushes.
> Or both.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread Jean-Marc Spaggiari (JIRA)

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

Jean-Marc Spaggiari commented on HBASE-18451:
-

Thanks Anoop.

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> 

[jira] [Commented] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread Jean-Marc Spaggiari (JIRA)

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

Jean-Marc Spaggiari commented on HBASE-18451:
-

You got it! ;)

LGTM.

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> 

[jira] [Commented] (HBASE-18446) Mark StoreFileScanner as IA.Private

2017-07-28 Thread Duo Zhang (JIRA)

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

Duo Zhang commented on HBASE-18446:
---

Oh, seems no problem. The compaction will also use the replaced StoreFileReader 
so it can read the index and write them to the new StoreFile.

> Mark StoreFileScanner as IA.Private
> ---
>
> Key: HBASE-18446
> URL: https://issues.apache.org/jira/browse/HBASE-18446
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors
>Reporter: Duo Zhang
> Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>
>
> Do not see any reason why it is marked as IA.LimitedPrivate. It is not 
> referenced in any CPs.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18451:
---

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m 
17s{color} | {color:blue} Docker mode activated. {color} |
| {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green}  0m  
0s{color} | {color:green} Patch does not have any anti-patterns. {color} |
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  
0s{color} | {color:green} The patch does not contain any @author tags. {color} |
| {color:green}+1{color} | {color:green} test4tests {color} | {color:green}  0m 
 0s{color} | {color:green} The patch appears to include 2 new or modified test 
files. {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  4m 
39s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
50s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
57s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
20s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  3m 
11s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
28s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  0m 
44s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  0m 
37s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  0m 
37s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  0m 
47s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green}  0m 
15s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m 
 0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
31m  9s{color} | {color:green} Patch does not cause any errors with Hadoop 
2.6.1 2.6.2 2.6.3 2.6.4 2.6.5 2.7.1 2.7.2 2.7.3 or 3.0.0-alpha4. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  3m 
10s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  0m 
34s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green}119m 
11s{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 
17s{color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black}167m 51s{color} | 
{color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.11.2 Server=1.11.2 Image:yetus/hbase:bdc94b1 |
| JIRA Issue | HBASE-18451 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879325/HBASE-18451.master.patch
 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 963f4e251072 3.13.0-116-generic #163-Ubuntu SMP Fri Mar 31 
14:13:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh
 |
| git revision | master / 2d06a06 |
| Default Java | 1.8.0_131 |
| findbugs | v3.1.0-RC3 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7829/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7829/console |
| Powered by | Apache Yetus 0.4.0   http://yetus.apache.org |


This message was automatically generated.



> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>

[jira] [Commented] (HBASE-18446) Mark StoreFileScanner as IA.Private

2017-07-28 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-18446:


For the compaction purpose also, each of the region's compaction would have 
selected the corresponding Half file and its reader for doing the compaction 
work (Scan for compaction).  As of 2.0 design, we wont archive the compacted 
away files immediately after the compaction. The old scans will continue using 
them.  See CompactedHFilesDischarger.
The new compacted files will have proper data as per the split daughter regions 

> Mark StoreFileScanner as IA.Private
> ---
>
> Key: HBASE-18446
> URL: https://issues.apache.org/jira/browse/HBASE-18446
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors
>Reporter: Duo Zhang
> Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>
>
> Do not see any reason why it is marked as IA.LimitedPrivate. It is not 
> referenced in any CPs.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18446) Mark StoreFileScanner as IA.Private

2017-07-28 Thread Duo Zhang (JIRA)

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

Duo Zhang commented on HBASE-18446:
---

{quote}
but with local index we need to do full HFile scan and should be able to find 
the whether Cell belongs the child region based on actual data row key
{quote}

What happens if the file is compacted?

> Mark StoreFileScanner as IA.Private
> ---
>
> Key: HBASE-18446
> URL: https://issues.apache.org/jira/browse/HBASE-18446
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors
>Reporter: Duo Zhang
> Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>
>
> Do not see any reason why it is marked as IA.LimitedPrivate. It is not 
> referenced in any CPs.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-15134) Add visibility into Flush and Compaction queues

2017-07-28 Thread Hudson (JIRA)

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

Hudson commented on HBASE-15134:


FAILURE: Integrated in Jenkins build HBase-2.0 #248 (See 
[https://builds.apache.org/job/HBase-2.0/248/])
HBASE-15134 Add visibility into Flush and Compaction queues (achouhan: rev 
12b9a151e6338297b253ca2e005eda22b1f2da4e)
* (edit) 
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperStub.java
* (edit) 
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplit.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.java
* (edit) 
hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
* (edit) 
hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.java


> Add visibility into Flush and Compaction queues
> ---
>
> Key: HBASE-15134
> URL: https://issues.apache.org/jira/browse/HBASE-15134
> Project: HBase
>  Issue Type: New Feature
>  Components: Compaction, metrics, regionserver
>Reporter: Elliott Clark
>Assignee: Abhishek Singh Chouhan
> Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-2
>
> Attachments: HBASE-15134.branch-1.001.patch, 
> HBASE-15134.branch-1.001.patch, HBASE-15134.master.001.patch, 
> HBASE-15134.master.002.patch, HBASE-15134.master.003.patch, 
> HBASE-15134.patch, HBASE-15134.patch
>
>
> On busy spurts we can see regionservers start to see large queues for 
> compaction. It's really hard to tell if the server is queueing a lot of 
> compactions for the same region, lots of compactions for lots of regions, or 
> just falling behind.
> For flushes much the same. There can be flushes in queue that aren't being 
> run because of delayed flushes. There's no way to know from the metrics how 
> many flushes are for each region, how many are delayed. Etc.
> We should add either more metrics around this ( num per region, max per 
> region, min per region ) or add on a UI page that has the list of compactions 
> and flushes.
> Or both.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18471) Deleted qualifier re-appearing after multiple puts.

2017-07-28 Thread Thomas Martens (JIRA)

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

Thomas Martens updated HBASE-18471:
---
Description: 
The qualifier of a deleted row (with keep deleted cells true) re-appears after 
re-inserting the same row multiple times (with different timestamp) with an 
empty qualifier.

Scenario:
# Put row with family and qualifier (timestamp 1).
# Delete entire row (timestamp 2).
# Put same row again with family without qualifier (timestamp 3).
A scan (latest version) returns the row with family without qualifier, version 
3 (which is correct).
# Put the same row again with family without qualifier (timestamp 4).
A scan (latest version) returns multiple rows:
* the row with family without qualifier, version 4 (which is correct).
* the row with family with qualifier, version 1 (which is wrong).

There is a test scenario attached.
output:
 13:42:53,952 [main] client.HBaseAdmin - Started disable of test_dml
 13:42:55,801 [main] client.HBaseAdmin - Disabled test_dml
 13:42:57,256 [main] client.HBaseAdmin - Deleted test_dml
 13:42:58,592 [main] client.HBaseAdmin - Created test_dml
Put row: 'myRow' with family: 'myFamily' with qualifier: 'myQualifier' with 
timestamp: '1'
Scan printout =>
  Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
Value: 'myValue'
Delete row: 'myRow'
Scan printout =>
Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with timestamp: 
'3'
Scan printout =>
  Row: 'myRow', Timestamp: '3', Family: 'myFamily', Qualifier: '', Value: 
'myValue'
Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with timestamp: 
'4'
Scan printout =>
  Row: 'myRow', Timestamp: '4', Family: 'myFamily', Qualifier: '', Value: 
'myValue'
  {color:red}Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 
'myQualifier', Value: 'myValue'{color}


  was:
The qualifier of a deleted row (with keep deleted cells true) re-appears after 
re-inserting the same row multiple times (with different timestamp) with an 
empty qualifier.

Scenario:
# Put row with family and qualifier (timestamp 1).
# Delete entire row (timestamp 2).
# Put same row again with family without qualifier (timestamp 3).
A scan (latest version) returns the row with family without qualifier, version 
3 (which is correct).
# Put the same row again with family without qualifier (timestamp 4).
A scan (latest version) returns multiple rows:
* the row with family without qualifier, version 4 (which is correct).
* the row with family with qualifier, version 1 (which is wrong).

There is a test scenario attached.
output:
 13:42:53,952 [main] client.HBaseAdmin - Started disable of test_dml
 13:42:55,801 [main] client.HBaseAdmin - Disabled test_dml
 13:42:57,256 [main] client.HBaseAdmin - Deleted test_dml
 13:42:58,592 [main] client.HBaseAdmin - Created test_dml
Put row: 'myRow' with family: 'myFamily' with qualifier: 'myQualifier' with 
timestamp: '1'
Scan printout =>
  Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
Value: 'myValue'
Delete row: 'myRow'
Scan printout =>
Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with timestamp: 
'3'
Scan printout =>
  Row: 'myRow', Timestamp: '3', Family: 'myFamily', Qualifier: '', Value: 
'myValue'
Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with timestamp: 
'4'
Scan printout =>
  Row: 'myRow', Timestamp: '4', Family: 'myFamily', Qualifier: '', Value: 
'myValue'
  Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
Value: 'myValue'



> Deleted qualifier re-appearing after multiple puts.
> ---
>
> Key: HBASE-18471
> URL: https://issues.apache.org/jira/browse/HBASE-18471
> Project: HBase
>  Issue Type: Bug
>  Components: Deletes, hbase, scan
>Affects Versions: 1.3.0
>Reporter: Thomas Martens
> Attachments: HBaseDmlTest.java
>
>
> The qualifier of a deleted row (with keep deleted cells true) re-appears 
> after re-inserting the same row multiple times (with different timestamp) 
> with an empty qualifier.
> Scenario:
> # Put row with family and qualifier (timestamp 1).
> # Delete entire row (timestamp 2).
> # Put same row again with family without qualifier (timestamp 3).
> A scan (latest version) returns the row with family without qualifier, 
> version 3 (which is correct).
> # Put the same row again with family without qualifier (timestamp 4).
> A scan (latest version) returns multiple rows:
> * the row with family without qualifier, version 4 (which is correct).
> * the row with family with qualifier, version 1 (which is wrong).
> There is a test scenario attached.
> output:
>  13:42:53,952 [main] client.HBaseAdmin - Started disable of test_dml
>  13:42:55,801 [main] client.HBaseAdmin - Disabled test_dml
>  13:42:57,256 [main] 

[jira] [Updated] (HBASE-18471) Deleted qualifier re-appearing after multiple puts.

2017-07-28 Thread Thomas Martens (JIRA)

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

Thomas Martens updated HBASE-18471:
---
Description: 
The qualifier of a deleted row (with keep deleted cells true) re-appears after 
re-inserting the same row multiple times (with different timestamp) with an 
empty qualifier.

Scenario:
# Put row with family and qualifier (timestamp 1).
# Delete entire row (timestamp 2).
# Put same row again with family without qualifier (timestamp 3).
A scan (latest version) returns the row with family without qualifier, version 
3 (which is correct).
# Put the same row again with family without qualifier (timestamp 4).
A scan (latest version) returns multiple rows:
* the row with family without qualifier, version 4 (which is correct).
* the row with family with qualifier, version 1 (which is wrong).

There is a test scenario attached.
output:
 13:42:53,952 [main] client.HBaseAdmin - Started disable of test_dml
 13:42:55,801 [main] client.HBaseAdmin - Disabled test_dml
 13:42:57,256 [main] client.HBaseAdmin - Deleted test_dml
 13:42:58,592 [main] client.HBaseAdmin - Created test_dml
Put row: 'myRow' with family: 'myFamily' with qualifier: 'myQualifier' with 
timestamp: '1'
Scan printout =>
  Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
Value: 'myValue'
Delete row: 'myRow'
Scan printout =>
Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with timestamp: 
'3'
Scan printout =>
  Row: 'myRow', Timestamp: '3', Family: 'myFamily', Qualifier: '', Value: 
'myValue'
Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with timestamp: 
'4'
Scan printout =>
  Row: 'myRow', Timestamp: '4', Family: 'myFamily', Qualifier: '', Value: 
'myValue'
  Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
Value: 'myValue'


  was:
The qualifier of a deleted row (with keep deleted cells true) re-appears after 
re-inserting the same row multiple times (with different timestamp) with an 
empty qualifier.

Scenario:
# Put row with family and qualifier (timestamp 1).
# Delete entire row (timestamp 2).
# Put same row again with family without qualifier (timestamp 3).
A scan (latest version) returns the row with family without qualifier, version 
3 (which is correct).
# Put the same row again with family without qualifier (timestamp 4).
A scan (latest version) returns multiple rows:
* the row with family without qualifier, version 4 (which is correct).
* the row with family with qualifier, version 1 (which is wrong).



> Deleted qualifier re-appearing after multiple puts.
> ---
>
> Key: HBASE-18471
> URL: https://issues.apache.org/jira/browse/HBASE-18471
> Project: HBase
>  Issue Type: Bug
>  Components: Deletes, hbase, scan
>Affects Versions: 1.3.0
>Reporter: Thomas Martens
> Attachments: HBaseDmlTest.java
>
>
> The qualifier of a deleted row (with keep deleted cells true) re-appears 
> after re-inserting the same row multiple times (with different timestamp) 
> with an empty qualifier.
> Scenario:
> # Put row with family and qualifier (timestamp 1).
> # Delete entire row (timestamp 2).
> # Put same row again with family without qualifier (timestamp 3).
> A scan (latest version) returns the row with family without qualifier, 
> version 3 (which is correct).
> # Put the same row again with family without qualifier (timestamp 4).
> A scan (latest version) returns multiple rows:
> * the row with family without qualifier, version 4 (which is correct).
> * the row with family with qualifier, version 1 (which is wrong).
> There is a test scenario attached.
> output:
>  13:42:53,952 [main] client.HBaseAdmin - Started disable of test_dml
>  13:42:55,801 [main] client.HBaseAdmin - Disabled test_dml
>  13:42:57,256 [main] client.HBaseAdmin - Deleted test_dml
>  13:42:58,592 [main] client.HBaseAdmin - Created test_dml
> Put row: 'myRow' with family: 'myFamily' with qualifier: 'myQualifier' with 
> timestamp: '1'
> Scan printout =>
>   Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
> Value: 'myValue'
> Delete row: 'myRow'
> Scan printout =>
> Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with 
> timestamp: '3'
> Scan printout =>
>   Row: 'myRow', Timestamp: '3', Family: 'myFamily', Qualifier: '', Value: 
> 'myValue'
> Put row: 'myRow' with family: 'myFamily' with qualifier: 'null' with 
> timestamp: '4'
> Scan printout =>
>   Row: 'myRow', Timestamp: '4', Family: 'myFamily', Qualifier: '', Value: 
> 'myValue'
>   Row: 'myRow', Timestamp: '1', Family: 'myFamily', Qualifier: 'myQualifier', 
> Value: 'myValue'



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18446) Mark StoreFileScanner as IA.Private

2017-07-28 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-18446:


Ya then StoreFileReader is what should be exposed.  As Duo said not the impl 
class but an interface.
Then why expose StoreFileScanner and StoreFile?

> Mark StoreFileScanner as IA.Private
> ---
>
> Key: HBASE-18446
> URL: https://issues.apache.org/jira/browse/HBASE-18446
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors
>Reporter: Duo Zhang
> Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>
>
> Do not see any reason why it is marked as IA.LimitedPrivate. It is not 
> referenced in any CPs.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18471) Deleted qualifier re-appearing after multiple puts.

2017-07-28 Thread Thomas Martens (JIRA)

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

Thomas Martens updated HBASE-18471:
---
Attachment: HBaseDmlTest.java

> Deleted qualifier re-appearing after multiple puts.
> ---
>
> Key: HBASE-18471
> URL: https://issues.apache.org/jira/browse/HBASE-18471
> Project: HBase
>  Issue Type: Bug
>  Components: Deletes, hbase, scan
>Affects Versions: 1.3.0
>Reporter: Thomas Martens
> Attachments: HBaseDmlTest.java
>
>
> The qualifier of a deleted row (with keep deleted cells true) re-appears 
> after re-inserting the same row multiple times (with different timestamp) 
> with an empty qualifier.
> Scenario:
> # Put row with family and qualifier (timestamp 1).
> # Delete entire row (timestamp 2).
> # Put same row again with family without qualifier (timestamp 3).
> A scan (latest version) returns the row with family without qualifier, 
> version 3 (which is correct).
> # Put the same row again with family without qualifier (timestamp 4).
> A scan (latest version) returns multiple rows:
> * the row with family without qualifier, version 4 (which is correct).
> * the row with family with qualifier, version 1 (which is wrong).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18142) Deletion of a cell deletes the previous versions too

2017-07-28 Thread Sahil Aggarwal (JIRA)

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

Sahil Aggarwal commented on HBASE-18142:


Noob quest:

On looking at  _deleteall_internal in table.rb, if row name is a Hash then we 
call _deleterows_internal but here we don't honor the timestamp provided in row 
hash and use latest timestamp, could this be the reason we are deleting all the 
versions of all the cells in that row?

> Deletion of a cell deletes the previous versions too
> 
>
> Key: HBASE-18142
> URL: https://issues.apache.org/jira/browse/HBASE-18142
> Project: HBase
>  Issue Type: Bug
>  Components: API
>Reporter: Karthick
>  Labels: beginner
>
> When I tried to delete a cell using it's timestamp in the Hbase Shell, the 
> previous versions of the same cell also got deleted. But when I tried the 
> same using the Java API, then the previous versions are not deleted and I can 
> retrive the previous values.
> https://github.com/apache/hbase/blob/master/hbase-client/src/main/java/org/apache/hadoop/hbase/client/Delete.java
> see this file to fix the issue. This method (public Delete addColumns(final 
> byte [] family, final byte [] qualifier, final long timestamp)) only deletes 
> the current version of the cell. The previous versions are not deleted.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (HBASE-18471) Deleted qualifier re-appearing after multiple puts.

2017-07-28 Thread Thomas Martens (JIRA)
Thomas Martens created HBASE-18471:
--

 Summary: Deleted qualifier re-appearing after multiple puts.
 Key: HBASE-18471
 URL: https://issues.apache.org/jira/browse/HBASE-18471
 Project: HBase
  Issue Type: Bug
  Components: Deletes, hbase, scan
Affects Versions: 1.3.0
Reporter: Thomas Martens


The qualifier of a deleted row (with keep deleted cells true) re-appears after 
re-inserting the same row multiple times (with different timestamp) with an 
empty qualifier.

Scenario:
# Put row with family and qualifier (timestamp 1).
# Delete entire row (timestamp 2).
# Put same row again with family without qualifier (timestamp 3).
A scan (latest version) returns the row with family without qualifier, version 
3 (which is correct).
# Put the same row again with family without qualifier (timestamp 4).
A scan (latest version) returns multiple rows:
* the row with family without qualifier, version 4 (which is correct).
* the row with family with qualifier, version 1 (which is wrong).




--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18437) Revoke access permissions of a user from a table does not work as expected

2017-07-28 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-18437:


bq.if 
(Bytes.toString(perm.getUser()).equals(Bytes.toString(userPerm.getUser( {
The permsList is obtained for this user and why again user check? Sorry not 
getting.  Or u have to check the table details?
bq.perm.setActions(leftActions.toArray(new 
Permission.Action[leftActions.size()]));
Should we create new UserPermission instance than adding this setter? Seems 
like as per design the actions has to be final (Even though it is not marked so)

> Revoke access permissions of a user from a table does not work as expected
> --
>
> Key: HBASE-18437
> URL: https://issues.apache.org/jira/browse/HBASE-18437
> Project: HBase
>  Issue Type: Bug
>  Components: security
>Affects Versions: 1.1.12
>Reporter: Ashish Singhi
>Assignee: Ashish Singhi
> Attachments: HBASE-18437.patch
>
>
> A table for which a user was granted 'RW' permission. Now when we want to 
> revoke its 'W' permission only, code removes the user itself from that table 
> permissions.
> Below is the test code which reproduces the issue.
> {noformat}
> @Test(timeout = 18)
>   public void testRevokeOnlySomePerms() throws Throwable {
> TableName name = TableName.valueOf("testAgain");
> HTableDescriptor htd = new HTableDescriptor(name);
> HColumnDescriptor hcd = new HColumnDescriptor("cf");
> htd.addFamily(hcd);
> createTable(TEST_UTIL, htd);
> TEST_UTIL.waitUntilAllRegionsAssigned(name);
> try (Connection conn = ConnectionFactory.createConnection(conf)) {
>   AccessControlClient.grant(conn, name, USER_RO.getShortName(), null, 
> null, Action.READ, Action.WRITE);
>   ListMultimap tablePermissions = 
> AccessControlLists.getTablePermissions(conf, name);
>   // hbase user and USER_RO has permis
>   assertEquals(2, tablePermissions.size());
>   AccessControlClient.revoke(conn, name, USER_RO.getShortName(), null, 
> null, Action.WRITE);
>   tablePermissions = AccessControlLists.getTablePermissions(conf, name);
>   List userPerm = 
> tablePermissions.get(USER_RO.getShortName());
>   assertEquals(1, userPerm.size());
> } finally {
>   deleteTable(TEST_UTIL, name);
> }
>   }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-15134) Add visibility into Flush and Compaction queues

2017-07-28 Thread Hudson (JIRA)

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

Hudson commented on HBASE-15134:


FAILURE: Integrated in Jenkins build HBase-1.4 #826 (See 
[https://builds.apache.org/job/HBase-1.4/826/])
HBASE-15134 Add visibility into Flush and Compaction queues (achouhan: rev 
92780371080a341d0b6f98307a0ea176db327c5a)
* (edit) 
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSource.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperStub.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MemStoreFlusher.java
* (edit) 
hbase-hadoop-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapper.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/CompactSplitThread.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegion.java
* (edit) 
hbase-hadoop2-compat/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionSourceImpl.java
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionWrapperImpl.java
* (edit) 
hbase-hadoop2-compat/src/test/java/org/apache/hadoop/hbase/regionserver/TestMetricsRegionSourceImpl.java


> Add visibility into Flush and Compaction queues
> ---
>
> Key: HBASE-15134
> URL: https://issues.apache.org/jira/browse/HBASE-15134
> Project: HBase
>  Issue Type: New Feature
>  Components: Compaction, metrics, regionserver
>Reporter: Elliott Clark
>Assignee: Abhishek Singh Chouhan
> Fix For: 3.0.0, 1.4.0, 1.5.0, 2.0.0-alpha-2
>
> Attachments: HBASE-15134.branch-1.001.patch, 
> HBASE-15134.branch-1.001.patch, HBASE-15134.master.001.patch, 
> HBASE-15134.master.002.patch, HBASE-15134.master.003.patch, 
> HBASE-15134.patch, HBASE-15134.patch
>
>
> On busy spurts we can see regionservers start to see large queues for 
> compaction. It's really hard to tell if the server is queueing a lot of 
> compactions for the same region, lots of compactions for lots of regions, or 
> just falling behind.
> For flushes much the same. There can be flushes in queue that aren't being 
> run because of delayed flushes. There's no way to know from the metrics how 
> many flushes are for each region, how many are delayed. Etc.
> We should add either more metrics around this ( num per region, max per 
> region, min per region ) or add on a UI page that has the list of compactions 
> and flushes.
> Or both.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-17131) Avoid livelock caused by HRegion#processRowsWithLocks

2017-07-28 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17131:


SUCCESS: Integrated in Jenkins build HBase-1.3-JDK8 #224 (See 
[https://builds.apache.org/job/HBase-1.3-JDK8/224/])
HBASE-17131 Avoid livelock caused by HRegion#processRowsWithLocks (chia7712: 
rev f18f916f050cf4dc106543d3dc7c6d2f78077661)
* (edit) 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide3.java


> Avoid livelock caused by HRegion#processRowsWithLocks
> -
>
> Key: HBASE-17131
> URL: https://issues.apache.org/jira/browse/HBASE-17131
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0, 1.4.0, 1.3.1, 1.2.6
>Reporter: Chia-Ping Tsai
>Assignee: Chia-Ping Tsai
> Fix For: 2.0.0, 1.4.0, 1.3.2, 1.2.7
>
> Attachments: HBASE-17131.branch-1.2.v0.patch, 
> HBASE-17131.branch-1.3.v0.patch, HBASE-17131.branch-1.v0.patch, 
> HBASE-17131.v0.patch
>
>
> {code:title=HRegion.java|borderStyle=solid}
> try {
>   // STEP 2. Acquire the row lock(s)
>   acquiredRowLocks = new ArrayList(rowsToLock.size());
>   for (byte[] row : rowsToLock) {
> // Attempt to lock all involved rows, throw if any lock times out
> // use a writer lock for mixed reads and writes
> acquiredRowLocks.add(getRowLockInternal(row, false));
>   }
>   // STEP 3. Region lock
>   lock(this.updatesLock.readLock(), acquiredRowLocks.size() == 0 ? 1 : 
> acquiredRowLocks.size());
>   locked = true;
>   boolean success = false;
>   long now = EnvironmentEdgeManager.currentTime();
>   try {
> {code}
> We should lock all involved rows in the second try-finally. Otherwise, we 
> won’t release the previous locks if any subsequent lock times out.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Open  (was: Patch Available)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Patch Available  (was: Open)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Open  (was: Patch Available)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Attachment: HBASE-18451.master.patch

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Patch Available  (was: Open)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Attachment: (was: HBASE-18451.master.patch)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of 

[jira] [Created] (HBASE-18470) `RetriesExhaustedWithDetailsException#getDesc` describe is not right

2017-07-28 Thread Benedict Jin (JIRA)
Benedict Jin created HBASE-18470:


 Summary: `RetriesExhaustedWithDetailsException#getDesc` describe 
is not right
 Key: HBASE-18470
 URL: https://issues.apache.org/jira/browse/HBASE-18470
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 2.0.0-alpha-1
Reporter: Benedict Jin


The describe from `RetriesExhaustedWithDetailsException#getDesc` is `
org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 3 
actions: FailedServerException: 3 times, `, there is a not need ', ' in the 
tail.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Commented] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18451:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  
0s{color} | {color:blue} Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m  5s{color} 
| {color:red} HBASE-18451 does not apply to master. Rebase required? Wrong 
Branch? See https://yetus.apache.org/documentation/0.4.0/precommit-patchnames 
for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Issue | HBASE-18451 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879322/HBASE-18451.master.patch
 |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7828/console |
| Powered by | Apache Yetus 0.4.0   http://yetus.apache.org |


This message was automatically generated.



> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Open  (was: Patch Available)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Patch Available  (was: Open)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Open  (was: Patch Available)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Attachment: (was: ISSUE.patch)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Status: Patch Available  (was: Open)

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Updated] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread nihed mbarek (JIRA)

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

nihed mbarek updated HBASE-18451:
-
Attachment: HBASE-18451.master.patch

> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: HBASE-18451.master.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 92532ms
> 2017-07-24 18:45:14,201 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 238780ms
> 2017-07-24 18:45:24,195 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 35390ms
> 2017-07-24 18:45:33,362 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 

[jira] [Commented] (HBASE-18451) PeriodicMemstoreFlusher should inspect the queue before adding a delayed flush request

2017-07-28 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-18451:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue}  0m  
0s{color} | {color:blue} Docker mode activated. {color} |
| {color:red}-1{color} | {color:red} patch {color} | {color:red}  0m  5s{color} 
| {color:red} HBASE-18451 does not apply to master. Rebase required? Wrong 
Branch? See https://yetus.apache.org/documentation/0.4.0/precommit-patchnames 
for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Issue | HBASE-18451 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12879321/ISSUE.patch |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/7827/console |
| Powered by | Apache Yetus 0.4.0   http://yetus.apache.org |


This message was automatically generated.



> PeriodicMemstoreFlusher should inspect the queue before adding a delayed 
> flush request
> --
>
> Key: HBASE-18451
> URL: https://issues.apache.org/jira/browse/HBASE-18451
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 2.0.0-alpha-1
>Reporter: Jean-Marc Spaggiari
>Assignee: nihed mbarek
> Attachments: ISSUE.patch
>
>
> If you run a big job every 4 hours, impacting many tables (they have 150 
> regions per server), ad the end all the regions might have some data to be 
> flushed, and we want, after one hour, trigger a periodic flush. That's 
> totally fine.
> Now, to avoid a flush storm, when we detect a region to be flushed, we add a 
> "randomDelay" to the delayed flush, that way we spread them away.
> RANGE_OF_DELAY is 5 minutes. So we spread the flush over the next 5 minutes, 
> which is very good.
> However, because we don't check if there is already a request in the queue, 
> 10 seconds after, we create a new request, with a new randomDelay.
> If you generate a randomDelay every 10 seconds, at some point, you will end 
> up having a small one, and the flush will be triggered almost immediatly.
> As a result, instead of spreading all the flush within the next 5 minutes, 
> you end-up getting them all way more quickly. Like within the first minute. 
> Which not only feed the queue to to many flush requests, but also defeats the 
> purpose of the randomDelay.
> {code}
> @Override
> protected void chore() {
>   final StringBuffer whyFlush = new StringBuffer();
>   for (Region r : this.server.onlineRegions.values()) {
> if (r == null) continue;
> if (((HRegion)r).shouldFlush(whyFlush)) {
>   FlushRequester requester = server.getFlushRequester();
>   if (requester != null) {
> long randomDelay = RandomUtils.nextInt(RANGE_OF_DELAY) + 
> MIN_DELAY_TIME;
> LOG.info(getName() + " requesting flush of " +
>   r.getRegionInfo().getRegionNameAsString() + " because " +
>   whyFlush.toString() +
>   " after random delay " + randomDelay + "ms");
> //Throttle the flushes by putting a delay. If we don't throttle, 
> and there
> //is a balanced write-load on the regions in a table, we might 
> end up
> //overwhelming the filesystem with too many flushes at once.
> requester.requestDelayedFlush(r, randomDelay, false);
>   }
> }
>   }
> }
> {code}
> {code}
> 2017-07-24 18:44:33,338 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 270785ms
> 2017-07-24 18:44:43,328 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 200143ms
> 2017-07-24 18:44:53,954 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random delay 191082ms
> 2017-07-24 18:45:03,528 INFO 
> org.apache.hadoop.hbase.regionserver.HRegionServer: 
> hbasetest2.domainname.com,60020,1500916375517-MemstoreFlusherChore requesting 
> flush of testflush,,1500932649126.578c27d2eb7ef0ad437bf2ff38c053ae. because f 
> has an old edit so flush to free WALs after random 

  1   2   >