[jira] [Updated] (HBASE-16956) Refactor FavoredNodePlan to use regionNames as keys

2016-11-16 Thread Thiruvel Thirumoolan (JIRA)

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

Thiruvel Thirumoolan updated HBASE-16956:
-
Attachment: HBASE-16956.master.007.patch

> Refactor FavoredNodePlan to use regionNames as keys
> ---
>
> Key: HBASE-16956
> URL: https://issues.apache.org/jira/browse/HBASE-16956
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Thiruvel Thirumoolan
>Assignee: Thiruvel Thirumoolan
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16956.branch-1.001.patch, 
> HBASE-16956.master.001.patch, HBASE-16956.master.002.patch, 
> HBASE-16956.master.003.patch, HBASE-16956.master.004.patch, 
> HBASE-16956.master.005.patch, HBASE-16956.master.006.patch, 
> HBASE-16956.master.007.patch
>
>
> We would like to rely on the FNPlan cache whether a region is offline or not. 
> Sticking to regionNames as keys makes that possible.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16956) Refactor FavoredNodePlan to use regionNames as keys

2016-11-16 Thread Thiruvel Thirumoolan (JIRA)

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

Thiruvel Thirumoolan commented on HBASE-16956:
--

I have updated the patch - HBASE-16956.master.007.patch, sorry got it confused 
it with HBASE-16962.

> Refactor FavoredNodePlan to use regionNames as keys
> ---
>
> Key: HBASE-16956
> URL: https://issues.apache.org/jira/browse/HBASE-16956
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Thiruvel Thirumoolan
>Assignee: Thiruvel Thirumoolan
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16956.branch-1.001.patch, 
> HBASE-16956.master.001.patch, HBASE-16956.master.002.patch, 
> HBASE-16956.master.003.patch, HBASE-16956.master.004.patch, 
> HBASE-16956.master.005.patch, HBASE-16956.master.006.patch, 
> HBASE-16956.master.007.patch
>
>
> We would like to rely on the FNPlan cache whether a region is offline or not. 
> Sticking to regionNames as keys makes that possible.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17082) ForeignExceptionUtil isn’t packaged when building shaded protocol with -Pcompile-protobuf

2016-11-16 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17082:


FAILURE: Integrated in Jenkins build HBase-Trunk_matrix #1961 (See 
[https://builds.apache.org/job/HBase-Trunk_matrix/1961/])
 HBASE-17082 ForeignExceptionUtil isnt packaged when building shaded (stack: 
rev 08cb550ccd48d07f5d83c5788f6fd29ebf512e81)
* (edit) hbase-protocol-shaded/pom.xml
Revert "HBASE-17082 ForeignExceptionUtil isnt packaged when building (stack: 
rev 0f7a7f475134095eaa348af8fb78047970060ca0)
* (edit) hbase-protocol-shaded/pom.xml


> ForeignExceptionUtil isn’t packaged when building shaded protocol with 
> -Pcompile-protobuf
> -
>
> Key: HBASE-17082
> URL: https://issues.apache.org/jira/browse/HBASE-17082
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 2.0.0
>Reporter: ChiaPing Tsai
>Assignee: ChiaPing Tsai
> Fix For: 2.0.0
>
> Attachments: 17082_attempted_fix.txt, 17082_attempted_fix2.txt, 
> HBASE-17082.nothing.patch, HBASE-17082.nothing.patch, 
> HBASE-17082.nothing.patch, HBASE-17082.v0.patch, HBASE-17082.v1.patch, 
> patch-unit-hbase-client (after v1.patch).txt, patch-unit-hbase-server (after 
> v1.patch).txt
>
>
> The source folder will be replaced from src/main/java to 
> project.build.directory/protoc-generated-sources when building shaded 
> protocol with -Pcompile-protobuf, but we do not copy the 
> ForeignExceptionUtil. So the final jar lacks the ForeignExceptionUtil and it 
> causes the test error for hbase-client and hbase-server.
> {noformat}
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java:[169,36]
>  cannot find symbol
>   symbol:   class ForeignExceptionUtil
>   location: package org.apache.hadoop.hbase.util
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:[100,36]
>  cannot find symbol
>   symbol:   class ForeignExceptionUtil
>   location: package org.apache.hadoop.hbase.util
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java:[2144,17]
>  cannot find symbol
>   symbol:   variable ForeignExceptionUtil
>   location: class org.apache.hadoop.hbase.regionserver.HRegionServer
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:[938,32]
>  cannot find symbol
>   symbol:   variable ForeignExceptionUtil
>   location: class org.apache.hadoop.hbase.master.MasterRpcServices
> {noformat}
> This bug blocks the patches which are against the hbase-protocol-shaded 
> module. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-15786) Create DBB backed MSLAB pool

2016-11-16 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-15786:


bq.We need to work on moving mslab and chunk etc. out to a memory module? Move 
things like MemStoreLABImpl out of regionserver package?
You said in other issue that u will work on that..  If u r busy, I can check it 
. Let me know.. But not as part of this issue.. This is already big in size.

> Create DBB backed MSLAB pool
> 
>
> Key: HBASE-15786
> URL: https://issues.apache.org/jira/browse/HBASE-15786
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Reporter: ramkrishna.s.vasudevan
>Assignee: Anoop Sam John
> Fix For: 2.0.0
>
> Attachments: HBASE-15786.patch
>
>
> We can make use of MSLAB pool for this off heap memstore. 
> Right now one can specify the global memstore size (heap size) as a % of max 
> memory using a config. We will add another config with which one can specify 
> the global off heap memstore size. This will be exact size not as %. When off 
> heap memstore in use, we will give this entire area for the MSLAB pool and 
> that will create off heap chunks. So when cells are added to memstore, the 
> cell data gets copied into the off heap MSLAB chunk spaces. Note that when 
> the pool size is not really enough and we need additional chunk creation, we 
> wont use off heap area for that.  We dony want to create so many on demand 
> DBBs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17049) Find out why AsyncFSWAL issues much more syncs than FSHLog

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-17049:


One question though. The WALPE histogram should give a correct picture on the 
sync part, correct? Because they are calculated in the postSync API? 

> Find out why AsyncFSWAL issues much more syncs than FSHLog
> --
>
> Key: HBASE-17049
> URL: https://issues.apache.org/jira/browse/HBASE-17049
> Project: HBase
>  Issue Type: Sub-task
>  Components: wal
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
> Fix For: 2.0.0
>
>
> https://issues.apache.org/jira/browse/HBASE-16890?focusedCommentId=15647590&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15647590



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17085) AsyncFSWAL may issue unnecessary AsyncDFSOutput.sync

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-17085:


When I changed the wALPE config I could see that AsyncWAL with this patch 
applied performs atleast 2K ops/sec more than the default size.

> AsyncFSWAL may issue unnecessary AsyncDFSOutput.sync
> 
>
> Key: HBASE-17085
> URL: https://issues.apache.org/jira/browse/HBASE-17085
> Project: HBase
>  Issue Type: Sub-task
>  Components: wal
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Assignee: Duo Zhang
> Fix For: 2.0.0
>
> Attachments: HBASE-17085-v1.patch, HBASE-17085-v2.patch, 
> HBASE-17085-v2.patch, HBASE-17085.patch
>
>
> The problem is in appendAndSync method, we will issue an  AsyncDFSOutput.sync 
> if syncFutures is not empty. The SyncFutures in syncFutures can only be 
> removed after an AsyncDFSOutput.sync comes back, so before the 
> AsyncDFSOutput.sync actually returns, we will always issue an  
> AsyncDFSOutput.sync after an append even if there is no new sync request.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Charlie Qiangeng Xu (JIRA)
Charlie Qiangeng Xu created HBASE-17110:
---

 Summary: Add an "Overall Strategy" option(balanced both on table 
level and server level) to SimpleLoadBalancer
 Key: HBASE-17110
 URL: https://issues.apache.org/jira/browse/HBASE-17110
 Project: HBase
  Issue Type: New Feature
  Components: Balancer
Affects Versions: 1.2.4, 2.0.0
Reporter: Charlie Qiangeng Xu
Assignee: Charlie Qiangeng Xu


This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:

  hbase.master.loadbalance.bytableOverall
  true

We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
etc. Current SimpleLoadBalancer has two mode: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
240 regions on server A but 410 regions on server B.
Consider this case,  a cluster has 3 tables and 4 servers:
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (HBASE-17085) AsyncFSWAL may issue unnecessary AsyncDFSOutput.sync

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan edited comment on HBASE-17085 at 11/16/16 8:49 AM:
--

When I changed the batchsize config I could see that AsyncWAL with this patch 
applied performs atleast 2K ops/sec more than the default size.


was (Author: ram_krish):
When I changed the wALPE config I could see that AsyncWAL with this patch 
applied performs atleast 2K ops/sec more than the default size.

> AsyncFSWAL may issue unnecessary AsyncDFSOutput.sync
> 
>
> Key: HBASE-17085
> URL: https://issues.apache.org/jira/browse/HBASE-17085
> Project: HBase
>  Issue Type: Sub-task
>  Components: wal
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Assignee: Duo Zhang
> Fix For: 2.0.0
>
> Attachments: HBASE-17085-v1.patch, HBASE-17085-v2.patch, 
> HBASE-17085-v2.patch, HBASE-17085.patch
>
>
> The problem is in appendAndSync method, we will issue an  AsyncDFSOutput.sync 
> if syncFutures is not empty. The SyncFutures in syncFutures can only be 
> removed after an AsyncDFSOutput.sync comes back, so before the 
> AsyncDFSOutput.sync actually returns, we will always issue an  
> AsyncDFSOutput.sync after an append even if there is no new sync request.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Charlie Qiangeng Xu (JIRA)

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

Charlie Qiangeng Xu updated HBASE-17110:

Description: 
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:

  hbase.master.loadbalance.bytableOverall
  true

We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
etc. Current SimpleLoadBalancer has two mode: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real case stats)
Consider this case,  a cluster has 3 tables and 4 servers:
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 

  was:
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:

  hbase.master.loadbalance.bytableOverall
  true

We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
etc. Current SimpleLoadBalancer has two mode: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
240 regions on server A but 410 regions on server B.
Consider this case,  a cluster has 3 tables and 4 servers:
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 


> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
>

[jira] [Updated] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Charlie Qiangeng Xu (JIRA)

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

Charlie Qiangeng Xu updated HBASE-17110:

Description: 
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:

  hbase.master.loadbalance.bytableOverall
  true

We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
etc. Current SimpleLoadBalancer has two mode: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real world stats)
Consider this case,  a cluster has 3 tables and 4 servers:
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 

  was:
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:

  hbase.master.loadbalance.bytableOverall
  true

We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
etc. Current SimpleLoadBalancer has two mode: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real case stats)
Consider this case,  a cluster has 3 tables and 4 servers:
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 


> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies 

[jira] [Assigned] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan reassigned HBASE-17012:
--

Assignee: ramkrishna.s.vasudevan

> Handle Offheap cells in CompressedKvEncoder
> ---
>
> Key: HBASE-17012
> URL: https://issues.apache.org/jira/browse/HBASE-17012
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Affects Versions: 2.0.0
>Reporter: Anoop Sam John
>Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0
>
>
> When we deal with off heap cells we will end up copying Cell components on 
> heap
> {code}
> public void write(Cell cell) throws IOException {
> .
>   write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), 
> compression.rowDict);
>   write(cell.getFamilyArray(), cell.getFamilyOffset(), 
> cell.getFamilyLength(),
>   compression.familyDict);
>   write(cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength(),
>   compression.qualifierDict);
> ..
>   out.write(cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength());
> ...
> {code}
> We need to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Charlie Qiangeng Xu (JIRA)

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

Charlie Qiangeng Xu updated HBASE-17110:

Attachment: SimpleBalancerBytableOverall.V1

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
> etc. Current SimpleLoadBalancer has two mode: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is preferable one in most case. Yet, this choice sacrifice the cluster level 
> balance and would cause some servers to have significantly higher load, e.g. 
> 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16972) Log more details for Scan#next request when responseTooSlow

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-16972:
---

Thanks for the confirmation [~ndimiduk], just let me know if any action to 
take. :-)

> Log more details for Scan#next request when responseTooSlow
> ---
>
> Key: HBASE-16972
> URL: https://issues.apache.org/jira/browse/HBASE-16972
> Project: HBase
>  Issue Type: Improvement
>  Components: Operability
>Affects Versions: 1.2.3, 1.1.7
>Reporter: Yu Li
>Assignee: Yu Li
> Fix For: 2.0.0, 1.3.0, 1.4.0, 1.2.4, 1.1.8
>
> Attachments: HBASE-16972.patch, HBASE-16972.v2.patch, 
> HBASE-16972.v3.patch
>
>
> Currently for if responseTooSlow happens on the scan.next call, we will get 
> warn log like below:
> {noformat}
> 2016-10-31 11:43:23,430 WARN  
> [RpcServer.FifoWFPBQ.priority.handler=5,queue=1,port=60193] 
> ipc.RpcServer(2574):
> (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)",
> "starttimems":1477885403428,"responsesize":52,"method":"Scan","param":"scanner_id:
>  11 number_of_rows: 2147483647
> close_scanner: false next_call_seq: 0 client_handles_partials: true 
> client_handles_heartbeats: true
> track_scan_metrics: false renew: 
> false","processingtimems":2,"client":"127.0.0.1:60254","queuetimems":0,"class":"HMaster"}
> {noformat}
> From which we only have a {{scanner_id}} and impossible to know what exactly 
> this scan is about, like against which region of which table.
> After this JIRA, we will improve the message to something like below (notice 
> the last line):
> {noformat}
> 2016-10-31 11:43:23,430 WARN  
> [RpcServer.FifoWFPBQ.priority.handler=5,queue=1,port=60193] 
> ipc.RpcServer(2574):
> (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)",
> "starttimems":1477885403428,"responsesize":52,"method":"Scan","param":"scanner_id:
>  11 number_of_rows: 2147483647
> close_scanner: false next_call_seq: 0 client_handles_partials: true 
> client_handles_heartbeats: true
> track_scan_metrics: false renew: 
> false","processingtimems":2,"client":"127.0.0.1:60254","queuetimems":0,"class":"HMaster",
> "scandetails":"table: hbase:meta region: hbase:meta,,1.1588230740"}
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16973) Revisiting default value for hbase.client.scanner.caching

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-16973:
---

For 1.1, based on our observation from online, should be the former case...

> Revisiting default value for hbase.client.scanner.caching
> -
>
> Key: HBASE-16973
> URL: https://issues.apache.org/jira/browse/HBASE-16973
> Project: HBase
>  Issue Type: Task
>Reporter: Yu Li
>Assignee: Yu Li
> Attachments: Scan.next_p999.png
>
>
> We are observing below logs for a long-running scan:
> {noformat}
> 2016-10-30 08:51:41,692 WARN  
> [B.defaultRpcServer.handler=50,queue=12,port=16020] ipc.RpcServer:
> (responseTooSlow-LongProcessTime): {"processingtimems":24329,
> "call":"Scan(org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ScanRequest)",
> "client":"11.251.157.108:50415","scandetails":"table: ae_product_image 
> region: ae_product_image,494:
> ,1476872321454.33171a04a683c4404717c43ea4eb8978.","param":"scanner_id: 
> 5333521 number_of_rows: 2147483647
> close_scanner: false next_call_seq: 8 client_handles_partials: true 
> client_handles_heartbeats: true",
> "starttimems":1477788677363,"queuetimems":0,"class":"HRegionServer","responsesize":818,"method":"Scan"}
> {noformat}
> From which we found the "number_of_rows" is as big as {{Integer.MAX_VALUE}}
> And we also observed a long filter list on the customized scan. After 
> checking application code we confirmed that there's no {{Scan.setCaching}} or 
> {{hbase.client.scanner.caching}} setting on client side, so it turns out 
> using the default value the caching for Scan will be Integer.MAX_VALUE, which 
> is really a big surprise.
> After checking code and commit history, I found it's HBASE-11544 which 
> changes {{HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING}} from 100 to 
> Integer.MAX_VALUE, and from the release note there I could see below notation:
> {noformat}
> Scan caching default has been changed to Integer.Max_Value 
> This value works together with the new maxResultSize value from HBASE-12976 
> (defaults to 2MB) 
> Results returned from server on basis of size rather than number of rows 
> Provides better use of network since row size varies amongst tables
> {noformat}
> And I'm afraid this lacks of consideration of the case of scan with filters, 
> which may involve many rows but only return with a small result.
> What's more, we still have below comment/code in {{Scan.java}}
> {code}
>   /*
>* -1 means no caching
>*/
>   private int caching = -1;
> {code}
> But actually the implementation does not follow (instead of no caching, we 
> are caching {{Integer.MAX_VALUE}}...).
> So here I'd like to bring up two points:
> 1. Change back the default value of 
> HConstants.DEFAULT_HBASE_CLIENT_SCANNER_CACHING to some small value like 128
> 2. Reenforce the semantic of "no caching"



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17049) Find out why AsyncFSWAL issues much more syncs than FSHLog

2016-11-16 Thread Duo Zhang (JIRA)

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

Duo Zhang commented on HBASE-17049:
---

For FSHLog, the sync is done inside DFSOutputStream automatically if the buffer 
is full so we can not record it with our metrics.

> Find out why AsyncFSWAL issues much more syncs than FSHLog
> --
>
> Key: HBASE-17049
> URL: https://issues.apache.org/jira/browse/HBASE-17049
> Project: HBase
>  Issue Type: Sub-task
>  Components: wal
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
> Fix For: 2.0.0
>
>
> https://issues.apache.org/jira/browse/HBASE-16890?focusedCommentId=15647590&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15647590



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li updated HBASE-17110:
--
Description: 
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:
{noformat}

  hbase.master.loadbalance.bytableOverall
  true

{noformat}
We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
generation, etc. Current SimpleLoadBalancer has two modes: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
the preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real world stats)
Consider this case,  a cluster has 3 tables and 4 servers:
{noformat}
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
{noformat}
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
{noformat}
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
{noformat}
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 

  was:
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:

  hbase.master.loadbalance.bytableOverall
  true

We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use SimpleLoadBalancer due to its simplicity, quick balance plan generation, 
etc. Current SimpleLoadBalancer has two mode: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real world stats)
Consider this case,  a cluster has 3 tables and 4 servers:
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 


> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is qui

[jira] [Commented] (HBASE-17085) AsyncFSWAL may issue unnecessary AsyncDFSOutput.sync

2016-11-16 Thread Duo Zhang (JIRA)

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

Duo Zhang commented on HBASE-17085:
---

For me it does not make any difference... What's the batch size you use?

> AsyncFSWAL may issue unnecessary AsyncDFSOutput.sync
> 
>
> Key: HBASE-17085
> URL: https://issues.apache.org/jira/browse/HBASE-17085
> Project: HBase
>  Issue Type: Sub-task
>  Components: wal
>Affects Versions: 2.0.0
>Reporter: Duo Zhang
>Assignee: Duo Zhang
> Fix For: 2.0.0
>
> Attachments: HBASE-17085-v1.patch, HBASE-17085-v2.patch, 
> HBASE-17085-v2.patch, HBASE-17085.patch
>
>
> The problem is in appendAndSync method, we will issue an  AsyncDFSOutput.sync 
> if syncFutures is not empty. The SyncFutures in syncFutures can only be 
> removed after an AsyncDFSOutput.sync comes back, so before the 
> AsyncDFSOutput.sync actually returns, we will always issue an  
> AsyncDFSOutput.sync after an append even if there is no new sync request.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li updated HBASE-17110:
--
Attachment: HBASE-17110.patch

Correcting patch name, please notice to follow the patch naming convention in 
future [~xharlie], thanks.

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-17110:
---

[~stack]/[~anoop.hbase]/[~enis]/[~ndimiduk]/[~busbey]/[~mantonov]/[~tedyu] this 
is something we're using online and could you take a look at the idea/patch 
here and let us know your thoughts? Thanks.

And comments from others are well welcome (Smile).

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17099) Is there a plan to support auth connection by username/password like mysql or redis

2016-11-16 Thread liubangchen (JIRA)

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

liubangchen updated HBASE-17099:

Description: 
Product managers  ask our hbase cluster to support auth connection  by 
username/password.

{code}
  private boolean authorizeConnection() throws IOException {
  try {
// If auth method is DIGEST, the token was obtained by the
// real user for the effective user, therefore not required to
// authorize real user. doAs is allowed only for simple or kerberos
// authentication
if (user != null && user.getRealUser() != null
&& (authMethod != AuthMethod.DIGEST)) {
  ProxyUsers.authorize(user, this.getHostAddress(), conf);
}
authorize(user, connectionHeader, getHostInetAddress());
metrics.authorizationSuccess();
  } catch (AuthorizationException ae) {
if (LOG.isDebugEnabled()) {
  LOG.debug("Connection authorization failed: " + ae.getMessage(), ae);
}
metrics.authorizationFailure();
setupResponse(authFailedResponse, authFailedCall,
  new AccessDeniedException(ae), ae.getMessage());
responder.doRespond(authFailedCall);
return false;
  }
  return true;
}
{code}

 Whether  can add a connectionAuthorrizer in method authorizeConnection of 
class RpcServer  to auth connection by init the handler from conf.


  was:

Product managers  ask our hbase cluster to support auth connection  by 
username/password.

{code}
  private boolean authorizeConnection() throws IOException {
  try {
// If auth method is DIGEST, the token was obtained by the
// real user for the effective user, therefore not required to
// authorize real user. doAs is allowed only for simple or kerberos
// authentication
if (user != null && user.getRealUser() != null
&& (authMethod != AuthMethod.DIGEST)) {
  ProxyUsers.authorize(user, this.getHostAddress(), conf);
}
authorize(user, connectionHeader, getHostInetAddress());
metrics.authorizationSuccess();
  } catch (AuthorizationException ae) {
if (LOG.isDebugEnabled()) {
  LOG.debug("Connection authorization failed: " + ae.getMessage(), ae);
}
metrics.authorizationFailure();
setupResponse(authFailedResponse, authFailedCall,
  new AccessDeniedException(ae), ae.getMessage());
responder.doRespond(authFailedCall);
return false;
  }
  return true;
}
{code}

 Whether  can add a connectionAuthorrizer in method authorizeConnection of 
class RpcServer  to auth connection by init the handler from conf.


 Issue Type: Brainstorming  (was: Wish)

https://wiki.apache.org/hadoop/Hbase/HBaseTokenAuthentication

FYI

> Is there a plan to support auth connection by username/password like mysql or 
> redis
> ---
>
> Key: HBASE-17099
> URL: https://issues.apache.org/jira/browse/HBASE-17099
> Project: HBase
>  Issue Type: Brainstorming
>  Components: security
>Reporter: liubangchen
>Priority: Trivial
>
> Product managers  ask our hbase cluster to support auth connection  by 
> username/password.
> {code}
>   private boolean authorizeConnection() throws IOException {
>   try {
> // If auth method is DIGEST, the token was obtained by the
> // real user for the effective user, therefore not required to
> // authorize real user. doAs is allowed only for simple or kerberos
> // authentication
> if (user != null && user.getRealUser() != null
> && (authMethod != AuthMethod.DIGEST)) {
>   ProxyUsers.authorize(user, this.getHostAddress(), conf);
> }
> authorize(user, connectionHeader, getHostInetAddress());
> metrics.authorizationSuccess();
>   } catch (AuthorizationException ae) {
> if (LOG.isDebugEnabled()) {
>   LOG.debug("Connection authorization failed: " + ae.getMessage(), 
> ae);
> }
> metrics.authorizationFailure();
> setupResponse(authFailedResponse, authFailedCall,
>   new AccessDeniedException(ae), ae.getMessage());
> responder.doRespond(authFailedCall);
> return false;
>   }
>   return true;
> }
> {code}
>  Whether  can add a connectionAuthorrizer in method authorizeConnection of 
> class RpcServer  to auth connection by init the handler from conf.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17084) Delete HMerge (dead code)

2016-11-16 Thread Appy (JIRA)

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

Appy commented on HBASE-17084:
--

Thanks for pointing it out [~larsgeorge], let me take the discussion there.

> Delete HMerge (dead code)
> -
>
> Key: HBASE-17084
> URL: https://issues.apache.org/jira/browse/HBASE-17084
> Project: HBase
>  Issue Type: Bug
>Reporter: Appy
>Assignee: Appy
>Priority: Trivial
> Attachments: HBASE-17084.master.001.patch
>
>
> HMerge isn't used anywhere. Can we delete it?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Charlie Qiangeng Xu (JIRA)

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

Charlie Qiangeng Xu commented on HBASE-17110:
-

Whoops, my bad, thank you for correcting that :)

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Charlie Qiangeng Xu (JIRA)

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

Charlie Qiangeng Xu updated HBASE-17110:

Description: 
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:
{noformat}

  hbase.master.loadbalance.bytableOverall
  true

{noformat}
We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
generation, etc. Current SimpleLoadBalancer has two modes: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
the preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real world stats)
Consider this case,  a cluster has 3 tables and 4 servers:
{noformat}
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
{noformat}
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
{noformat}
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
{noformat}
We can see the server loads change from 3,3,3,0 to 2,2,3,2, while the table1, 
table2 and table3 still keep balanced.   
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.
Also, a onConfigurationChange method has been implemented to hot control the 
"slop" variable.



 

  was:
This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
new strategy: "bytableOverall" which could be controlled by adding:
{noformat}

  hbase.master.loadbalance.bytableOverall
  true

{noformat}
We have been using the strategy on our largest cluster for several months. it's 
proven to be very helpful and stable, especially, the result is quite visible 
to the users.

Here is the reason why it's helpful:
When operating large scale clusters(our case), some companies still prefer to 
use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
generation, etc. Current SimpleLoadBalancer has two modes: 
1. byTable, which only guarantees that the regions of one table could be 
uniformly distributed. 
2. byCluster, which ignores the distribution within tables and balance the 
regions all together.
If the pressures on different tables are different, the first byTable option is 
the preferable one in most case. Yet, this choice sacrifice the cluster level 
balance and would cause some servers to have significantly higher load, e.g. 
242 regions on server A but 417 regions on server B.(real world stats)
Consider this case,  a cluster has 3 tables and 4 servers:
{noformat}
  server A has 3 regions: table1:1, table2:1, table3:1
  server B has 3 regions: table1:2, table2:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 0 regions.
{noformat}
>From the byTable strategy's perspective, the cluster has already been 
>perfectly balanced on table level. But a perfect status should be like:
{noformat}
  server A has 2 regions: table2:1, table3:1
  server B has 2 regions: table1:2, table3:2
  server C has 3 regions: table1:3, table2:3, table3:3
  server D has 2 regions: table1:1, table2:2
{noformat}
And this is what the new mode "byTableOverall" can achieve.

Two UTs have been added as well and the last one demonstrates the advantage of 
the new strategy.




 


> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadB

[jira] [Commented] (HBASE-16169) Make RegionSizeCalculator scalable

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-16169:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s 
{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 22s 
{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 
14s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 15s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 10m 
21s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
28s {color} | {color:green} master passed {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 51s 
{color} | {color:red} hbase-protocol-shaded in master has 24 extant Findbugs 
warnings. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 48s 
{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s 
{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 
30s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 15s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 15s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 15s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 10m 
27s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
28s {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} 
27m 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-alpha1. {color} |
| {color:red}-1{color} | {color:red} hbaseprotoc {color} | {color:red} 0m 24s 
{color} | {color:red} Patch generated 1 new protoc errors in hbase-server. 
{color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 4m 
58s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 47s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 25s 
{color} | {color:green} hbase-protocol-shaded in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 55s 
{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 88m 15s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
40s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 159m 37s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839127/HBASE-16169.master.007.patch
 |
| JIRA Issue | HBASE-16169 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  cc  hbaseprotoc  |
| uname | Linux d29bb4e92f01 3.13.0-95-generic #142-Ubuntu SMP Fri Aug 12 
17:00:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit

[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Guanghao Zhang (JIRA)

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

Guanghao Zhang commented on HBASE-17110:


+1 for this idea. We have a similar implementation on XiaoMi HBase cluster. Can 
you upload the patch to review board? Thanks.

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> We can see the server loads change from 3,3,3,0 to 2,2,3,2, while the table1, 
> table2 and table3 still keep balanced.   
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
> Also, a onConfigurationChange method has been implemented to hot control the 
> "slop" variable.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16169) Make RegionSizeCalculator scalable

2016-11-16 Thread Thiruvel Thirumoolan (JIRA)

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

Thiruvel Thirumoolan commented on HBASE-16169:
--

Thanks [~stack], the recent precommit builds are much better.

> Make RegionSizeCalculator scalable
> --
>
> Key: HBASE-16169
> URL: https://issues.apache.org/jira/browse/HBASE-16169
> Project: HBase
>  Issue Type: Sub-task
>  Components: mapreduce, scaling
>Reporter: Thiruvel Thirumoolan
>Assignee: Thiruvel Thirumoolan
> Fix For: 2.0.0, 1.4.0
>
> Attachments: HBASE-16169.master.000.patch, 
> HBASE-16169.master.001.patch, HBASE-16169.master.002.patch, 
> HBASE-16169.master.003.patch, HBASE-16169.master.004.patch, 
> HBASE-16169.master.005.patch, HBASE-16169.master.006.patch, 
> HBASE-16169.master.007.patch, HBASE-16169.master.007.patch, 
> HBASE-16169.master.008.patch
>
>
> RegionSizeCalculator is needed for better split generation of MR jobs. This 
> requires RegionLoad which can be obtained via ClusterStatus, i.e. accessing 
> Master. We don't want master to be in this path.
> The proposal is to add an API to the RegionServer that gets RegionLoad of all 
> regions hosted on it or those of a table if specified. RegionSizeCalculator 
> can use the latter.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16956) Refactor FavoredNodePlan to use regionNames as keys

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-16956:
---

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s 
{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 1 new or modified test 
files. {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
37s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
38s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
12s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
31s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 24s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
40s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 32s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
38s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
13s {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} 
24m 37s {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-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
40s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 24s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 84m 40s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
14s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 120m 1s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839135/HBASE-16956.master.007.patch
 |
| JIRA Issue | HBASE-16956 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 8127299fefa3 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 / 0f7a7f4 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4490/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4490/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatically generated.



> Refactor FavoredNodePlan to use regionNames as keys
> ---
>
> Key: HBASE-16956
> URL: https://issues.apache.org/jira/browse/HBASE-16956
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Thiruvel Thirumoolan
>Assignee: Thiruvel Thirumoolan
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16956.branch

[jira] [Updated] (HBASE-15806) An endpoint-based export tool

2016-11-16 Thread ChiaPing Tsai (JIRA)

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

ChiaPing Tsai updated HBASE-15806:
--
Status: Open  (was: Patch Available)

> An endpoint-based export tool
> -
>
> Key: HBASE-15806
> URL: https://issues.apache.org/jira/browse/HBASE-15806
> Project: HBase
>  Issue Type: New Feature
>Affects Versions: 2.0.0
>Reporter: ChiaPing Tsai
>Assignee: ChiaPing Tsai
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: Experiment.png, HBASE-15806-v1.patch, 
> HBASE-15806-v2.patch, HBASE-15806-v3.patch, HBASE-15806.patch, 
> HBASE-15806.v4.patch, HBASE-15806.v5.patch
>
>
> The time for exporting table can be reduced, if we use the endpoint technique 
> to export the hdfs files by the region server rather than by hbase client.
> In my experiments, the elapsed time of endpoint-based export can be less than 
> half of current export tool (enable the hdfs compression)
> But the shortcomings is we need to alter table for deploying the endpoint
> any comments about this? thanks



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16169) Make RegionSizeCalculator scalable

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-16169:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 13s 
{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 7s 
{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 
4s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 15s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 10m 
15s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
28s {color} | {color:green} master passed {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 52s 
{color} | {color:red} hbase-protocol-shaded in master has 24 extant Findbugs 
warnings. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 48s 
{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 9s 
{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 
31s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 17s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} cc {color} | {color:green} 1m 17s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 1m 17s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 10m 
23s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
29s {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} 
27m 31s {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-alpha1. {color} |
| {color:red}-1{color} | {color:red} hbaseprotoc {color} | {color:red} 0m 25s 
{color} | {color:red} Patch generated 1 new protoc errors in hbase-server. 
{color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 5m 
22s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 49s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 27s 
{color} | {color:green} hbase-protocol-shaded in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 58s 
{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 93m 26s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
37s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 165m 21s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839132/HBASE-16169.master.008.patch
 |
| JIRA Issue | HBASE-16169 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  cc  hbaseprotoc  |
| uname | Linux 26edb332c5d2 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 
21:21:05 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux |
| Build tool | maven |
| Personality | 
/home/jenkins/jenkins-slave/workspace/PreCommit-

[jira] [Updated] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan updated HBASE-17012:
---
Status: Patch Available  (was: Open)

> Handle Offheap cells in CompressedKvEncoder
> ---
>
> Key: HBASE-17012
> URL: https://issues.apache.org/jira/browse/HBASE-17012
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Affects Versions: 2.0.0
>Reporter: Anoop Sam John
>Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0
>
> Attachments: HBASE-17012_1.patch
>
>
> When we deal with off heap cells we will end up copying Cell components on 
> heap
> {code}
> public void write(Cell cell) throws IOException {
> .
>   write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), 
> compression.rowDict);
>   write(cell.getFamilyArray(), cell.getFamilyOffset(), 
> cell.getFamilyLength(),
>   compression.familyDict);
>   write(cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength(),
>   compression.qualifierDict);
> ..
>   out.write(cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength());
> ...
> {code}
> We need to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan updated HBASE-17012:
---
Attachment: HBASE-17012_1.patch

Patch for trunk. Works on BBWriter. 

> Handle Offheap cells in CompressedKvEncoder
> ---
>
> Key: HBASE-17012
> URL: https://issues.apache.org/jira/browse/HBASE-17012
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Affects Versions: 2.0.0
>Reporter: Anoop Sam John
>Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0
>
> Attachments: HBASE-17012_1.patch
>
>
> When we deal with off heap cells we will end up copying Cell components on 
> heap
> {code}
> public void write(Cell cell) throws IOException {
> .
>   write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), 
> compression.rowDict);
>   write(cell.getFamilyArray(), cell.getFamilyOffset(), 
> cell.getFamilyLength(),
>   compression.familyDict);
>   write(cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength(),
>   compression.qualifierDict);
> ..
>   out.write(cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength());
> ...
> {code}
> We need to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17076) implement getAndPut() and getAndDelete()

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17076:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s 
{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:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 23s 
{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 
15s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 6s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 10m 
24s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 1m 
4s {color} | {color:green} master passed {color} |
| {color:red}-1{color} | {color:red} findbugs {color} | {color:red} 1m 50s 
{color} | {color:red} hbase-protocol-shaded in master has 24 extant Findbugs 
warnings. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 26s 
{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s 
{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
23s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 2m 6s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} cc {color} | {color:green} 2m 6s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 2m 6s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 10m 
13s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 1m 
3s {color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} whitespace {color} | {color:red} 0m 0s 
{color} | {color:red} The patch has 11 line(s) that end in whitespace. Use git 
apply --whitespace=fix. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
27m 40s {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-alpha1. {color} |
| {color:red}-1{color} | {color:red} hbaseprotoc {color} | {color:red} 0m 24s 
{color} | {color:red} Patch generated 1 new protoc errors in hbase-server. 
{color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 7m 
38s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 1m 26s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 17s 
{color} | {color:green} hbase-protocol in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 26s 
{color} | {color:green} hbase-protocol-shaded in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 56s 
{color} | {color:green} hbase-client in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 15s 
{color} | {color:green} hbase-hadoop-compat in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 19s 
{color} | {color:green} hbase-hadoop2-compat in the patch passed. {color} |
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 90m 31s {color} 
| {color:red} hbase-server in the patch failed. {color} |
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 3m 39s {color} 
| {color:red} hbase-rest in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 1m 
17s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 179m 1s {color

[jira] [Commented] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-17012:


Oh. Just seeing that EncryptedKVEncoder. 

> Handle Offheap cells in CompressedKvEncoder
> ---
>
> Key: HBASE-17012
> URL: https://issues.apache.org/jira/browse/HBASE-17012
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Affects Versions: 2.0.0
>Reporter: Anoop Sam John
>Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0
>
> Attachments: HBASE-17012_1.patch
>
>
> When we deal with off heap cells we will end up copying Cell components on 
> heap
> {code}
> public void write(Cell cell) throws IOException {
> .
>   write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), 
> compression.rowDict);
>   write(cell.getFamilyArray(), cell.getFamilyOffset(), 
> cell.getFamilyLength(),
>   compression.familyDict);
>   write(cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength(),
>   compression.qualifierDict);
> ..
>   out.write(cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength());
> ...
> {code}
> We need to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-15806) An endpoint-based export tool

2016-11-16 Thread ChiaPing Tsai (JIRA)

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

ChiaPing Tsai updated HBASE-15806:
--
Attachment: HBASE-15806.v6.patch

> An endpoint-based export tool
> -
>
> Key: HBASE-15806
> URL: https://issues.apache.org/jira/browse/HBASE-15806
> Project: HBase
>  Issue Type: New Feature
>Affects Versions: 2.0.0
>Reporter: ChiaPing Tsai
>Assignee: ChiaPing Tsai
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: Experiment.png, HBASE-15806-v1.patch, 
> HBASE-15806-v2.patch, HBASE-15806-v3.patch, HBASE-15806.patch, 
> HBASE-15806.v4.patch, HBASE-15806.v5.patch, HBASE-15806.v6.patch
>
>
> The time for exporting table can be reduced, if we use the endpoint technique 
> to export the hdfs files by the region server rather than by hbase client.
> In my experiments, the elapsed time of endpoint-based export can be less than 
> half of current export tool (enable the hdfs compression)
> But the shortcomings is we need to alter table for deploying the endpoint
> any comments about this? thanks



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-15806) An endpoint-based export tool

2016-11-16 Thread ChiaPing Tsai (JIRA)

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

ChiaPing Tsai updated HBASE-15806:
--
Status: Patch Available  (was: Open)

> An endpoint-based export tool
> -
>
> Key: HBASE-15806
> URL: https://issues.apache.org/jira/browse/HBASE-15806
> Project: HBase
>  Issue Type: New Feature
>Affects Versions: 2.0.0
>Reporter: ChiaPing Tsai
>Assignee: ChiaPing Tsai
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: Experiment.png, HBASE-15806-v1.patch, 
> HBASE-15806-v2.patch, HBASE-15806-v3.patch, HBASE-15806.patch, 
> HBASE-15806.v4.patch, HBASE-15806.v5.patch, HBASE-15806.v6.patch
>
>
> The time for exporting table can be reduced, if we use the endpoint technique 
> to export the hdfs files by the region server rather than by hbase client.
> In my experiments, the elapsed time of endpoint-based export can be less than 
> half of current export tool (enable the hdfs compression)
> But the shortcomings is we need to alter table for deploying the endpoint
> any comments about this? thanks



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-17110:


Interesting..   Why you think this can not be an improvement for the byTable 
strategy but a new strategy?
I see not a new strategy but a config based extension of byTable strategy.   
But my doubt is why such a config needed?  Why can't the SimpleLB byTable 
strategy do this always?  First preference to balance by table and then make 
sure the overall balance also achieved. I mean at balance time, even if it sees 
by tables it is perfect, don't stop there and try find a more perfect cluster 
level balance. Than a new config requirement, we can do it always.  I can see 
the new config is default OFF.  May be on existing patch branches u dont want a 
behave change?   At least for master, I feel at least the config to be ON by 
default.. And IMO the config itself not required. Why we should not allow this 
better balancing to work?

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> We can see the server loads change from 3,3,3,0 to 2,2,3,2, while the table1, 
> table2 and table3 still keep balanced.   
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
> Also, a onConfigurationChange method has been implemented to hot control the 
> "slop" variable.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-17012:


I think EncryptedKVEncoder is ok as such. Because even if we 
{code}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
  OutputStream cout = encryptor.createEncryptionStream(baos);
{code}
wrap the BAOS with ByteBufferWriterOuputStream, still what we write is to the 
cout (that is the encrypted stream).
{code}
StreamUtils.writeRawVInt32(cout, KeyValueUtil.keyLength(cell));
  StreamUtils.writeRawVInt32(cout, cell.getValueLength());
  // To support tags
  StreamUtils.writeRawVInt32(cout, tlen);

  // Write row, qualifier, and family
  StreamUtils.writeRawVInt32(cout, cell.getRowLength());
  cout.write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength());
  StreamUtils.writeRawVInt32(cout, cell.getFamilyLength());
  cout.write(cell.getFamilyArray(), cell.getFamilyOffset(), 
cell.getFamilyLength());

{code}
So am not sure how to write the ByteBuffer content directly to cout. But I 
could actually use the hbase's BAOS and try writing to it and then do a 
getBuffer() and use that buffer to write to cout.
But finally we need that baos to actually write it to the actual outputstream 
'out'.
So am not sure if this will be same as writing individual byte[] using cout.

> Handle Offheap cells in CompressedKvEncoder
> ---
>
> Key: HBASE-17012
> URL: https://issues.apache.org/jira/browse/HBASE-17012
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Affects Versions: 2.0.0
>Reporter: Anoop Sam John
>Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0
>
> Attachments: HBASE-17012_1.patch
>
>
> When we deal with off heap cells we will end up copying Cell components on 
> heap
> {code}
> public void write(Cell cell) throws IOException {
> .
>   write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), 
> compression.rowDict);
>   write(cell.getFamilyArray(), cell.getFamilyOffset(), 
> cell.getFamilyLength(),
>   compression.familyDict);
>   write(cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength(),
>   compression.qualifierDict);
> ..
>   out.write(cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength());
> ...
> {code}
> We need to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16972) Log more details for Scan#next request when responseTooSlow

2016-11-16 Thread Sean Busbey (JIRA)

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

Sean Busbey commented on HBASE-16972:
-

{quote}
Strong objections Sean Busbey? I guess it's already out in 1.2.4, so that's 
that.
{quote}

Indeed, my objection was not strong.

> Log more details for Scan#next request when responseTooSlow
> ---
>
> Key: HBASE-16972
> URL: https://issues.apache.org/jira/browse/HBASE-16972
> Project: HBase
>  Issue Type: Improvement
>  Components: Operability
>Affects Versions: 1.2.3, 1.1.7
>Reporter: Yu Li
>Assignee: Yu Li
> Fix For: 2.0.0, 1.3.0, 1.4.0, 1.2.4, 1.1.8
>
> Attachments: HBASE-16972.patch, HBASE-16972.v2.patch, 
> HBASE-16972.v3.patch
>
>
> Currently for if responseTooSlow happens on the scan.next call, we will get 
> warn log like below:
> {noformat}
> 2016-10-31 11:43:23,430 WARN  
> [RpcServer.FifoWFPBQ.priority.handler=5,queue=1,port=60193] 
> ipc.RpcServer(2574):
> (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)",
> "starttimems":1477885403428,"responsesize":52,"method":"Scan","param":"scanner_id:
>  11 number_of_rows: 2147483647
> close_scanner: false next_call_seq: 0 client_handles_partials: true 
> client_handles_heartbeats: true
> track_scan_metrics: false renew: 
> false","processingtimems":2,"client":"127.0.0.1:60254","queuetimems":0,"class":"HMaster"}
> {noformat}
> From which we only have a {{scanner_id}} and impossible to know what exactly 
> this scan is about, like against which region of which table.
> After this JIRA, we will improve the message to something like below (notice 
> the last line):
> {noformat}
> 2016-10-31 11:43:23,430 WARN  
> [RpcServer.FifoWFPBQ.priority.handler=5,queue=1,port=60193] 
> ipc.RpcServer(2574):
> (responseTooSlow): 
> {"call":"Scan(org.apache.hadoop.hbase.shaded.protobuf.generated.ClientProtos$ScanRequest)",
> "starttimems":1477885403428,"responsesize":52,"method":"Scan","param":"scanner_id:
>  11 number_of_rows: 2147483647
> close_scanner: false next_call_seq: 0 client_handles_partials: true 
> client_handles_heartbeats: true
> track_scan_metrics: false renew: 
> false","processingtimems":2,"client":"127.0.0.1:60254","queuetimems":0,"class":"HMaster",
> "scandetails":"table: hbase:meta region: hbase:meta,,1.1588230740"}
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17111) Use Apache CLI in SnapshotInfo tool

2016-11-16 Thread Appy (JIRA)
Appy created HBASE-17111:


 Summary: Use Apache CLI in SnapshotInfo tool
 Key: HBASE-17111
 URL: https://issues.apache.org/jira/browse/HBASE-17111
 Project: HBase
  Issue Type: Bug
Reporter: Appy
Assignee: Appy


AbstractHBaseTool uses Apache CLI to manage command line options, help, etc. We 
should use it for all tools. This jira is about changing SnapshotInfo to use 
the same.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17111) Use Apache CLI in SnapshotInfo tool

2016-11-16 Thread Appy (JIRA)

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

Appy updated HBASE-17111:
-
Issue Type: Sub-task  (was: Bug)
Parent: HBASE-17027

> Use Apache CLI in SnapshotInfo tool
> ---
>
> Key: HBASE-17111
> URL: https://issues.apache.org/jira/browse/HBASE-17111
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Appy
>Assignee: Appy
> Attachments: HBASE-17111.master.001.patch
>
>
> AbstractHBaseTool uses Apache CLI to manage command line options, help, etc. 
> We should use it for all tools. This jira is about changing SnapshotInfo to 
> use the same.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17111) Use Apache CLI in SnapshotInfo tool

2016-11-16 Thread Appy (JIRA)

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

Appy updated HBASE-17111:
-
Attachment: HBASE-17111.master.001.patch

> Use Apache CLI in SnapshotInfo tool
> ---
>
> Key: HBASE-17111
> URL: https://issues.apache.org/jira/browse/HBASE-17111
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Appy
>Assignee: Appy
> Attachments: HBASE-17111.master.001.patch
>
>
> AbstractHBaseTool uses Apache CLI to manage command line options, help, etc. 
> We should use it for all tools. This jira is about changing SnapshotInfo to 
> use the same.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17111) Use Apache CLI in SnapshotInfo tool

2016-11-16 Thread Appy (JIRA)

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

Appy updated HBASE-17111:
-
Status: Patch Available  (was: Open)

> Use Apache CLI in SnapshotInfo tool
> ---
>
> Key: HBASE-17111
> URL: https://issues.apache.org/jira/browse/HBASE-17111
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Appy
>Assignee: Appy
> Attachments: HBASE-17111.master.001.patch
>
>
> AbstractHBaseTool uses Apache CLI to manage command line options, help, etc. 
> We should use it for all tools. This jira is about changing SnapshotInfo to 
> use the same.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-17012:


bq.cout.write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength());
Here the unconditional cal to getXXXArray() can be avoided?  Or else we will 
end up in making so many temp byte[] garbage. ( 5 per Cell !!)

> Handle Offheap cells in CompressedKvEncoder
> ---
>
> Key: HBASE-17012
> URL: https://issues.apache.org/jira/browse/HBASE-17012
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Affects Versions: 2.0.0
>Reporter: Anoop Sam John
>Assignee: ramkrishna.s.vasudevan
> Fix For: 2.0.0
>
> Attachments: HBASE-17012_1.patch
>
>
> When we deal with off heap cells we will end up copying Cell components on 
> heap
> {code}
> public void write(Cell cell) throws IOException {
> .
>   write(cell.getRowArray(), cell.getRowOffset(), cell.getRowLength(), 
> compression.rowDict);
>   write(cell.getFamilyArray(), cell.getFamilyOffset(), 
> cell.getFamilyLength(),
>   compression.familyDict);
>   write(cell.getQualifierArray(), cell.getQualifierOffset(), 
> cell.getQualifierLength(),
>   compression.qualifierDict);
> ..
>   out.write(cell.getValueArray(), cell.getValueOffset(), 
> cell.getValueLength());
> ...
> {code}
> We need to avoid this.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17012) Handle Offheap cells in CompressedKvEncoder

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17012:
---

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 11s 
{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 1 new or modified test 
files. {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 7s 
{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
40s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 46s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
35s {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 2s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 37s 
{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 9s 
{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
53s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 44s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 44s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
36s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
21s {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} 
24m 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-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 
18s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 39s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 1m 45s 
{color} | {color:green} hbase-common in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 83m 54s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
27s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 123m 47s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839150/HBASE-17012_1.patch |
| JIRA Issue | HBASE-17012 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux d82879ae2443 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 / 0f7a7f4 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4491/testReport/ |
| modules | C: hbase-common hbase-server U: . |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4491/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatically generated.



> Handle Offheap cells in CompressedKvEnc

[jira] [Commented] (HBASE-15806) An endpoint-based export tool

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-15806:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 17s 
{color} | {color:blue} Docker mode activated. {color} |
| {color: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:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 8s 
{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 3m 
17s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 58s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 3m 
0s {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 
56s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 31s 
{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue} 0m 9s 
{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 1m 
5s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 54s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} cc {color} | {color:green} 0m 54s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 54s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 2m 
55s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
21s {color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} whitespace {color} | {color:red} 0m 0s 
{color} | {color:red} The patch has 16 line(s) that end in whitespace. Use git 
apply --whitespace=fix. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
28m 20s {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-alpha1. {color} |
| {color:red}-1{color} | {color:red} hbaseprotoc {color} | {color:red} 0m 23s 
{color} | {color:red} Patch generated 1 new protoc errors in hbase-server. 
{color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 3m 
17s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 32s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 0m 17s 
{color} | {color:green} hbase-protocol in the patch passed. {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 93m 12s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
25s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 144m 10s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839151/HBASE-15806.v6.patch |
| JIRA Issue | HBASE-15806 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  cc  hbaseprotoc  |
| uname | Linux 38f3334168c3 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 
21:21:05 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 / 0f7a7f4 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
| whitespace | 
https://bu

[jira] [Updated] (HBASE-17088) Refactor RWQueueRpcExecutor/BalancedQueueRpcExecutor/RpcExecutor

2016-11-16 Thread Guanghao Zhang (JIRA)

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

Guanghao Zhang updated HBASE-17088:
---
Attachment: HBASE-17088-v3.patch

Retry.

> Refactor RWQueueRpcExecutor/BalancedQueueRpcExecutor/RpcExecutor
> 
>
> Key: HBASE-17088
> URL: https://issues.apache.org/jira/browse/HBASE-17088
> Project: HBase
>  Issue Type: Improvement
>  Components: rpc
>Affects Versions: 2.0.0
>Reporter: Guanghao Zhang
>Assignee: Guanghao Zhang
> Attachments: HBASE-17088-v1.patch, HBASE-17088-v2.patch, 
> HBASE-17088-v3.patch, HBASE-17088-v3.patch
>
>
> 1. The RWQueueRpcExecutor has eight constructor method and the longest one 
> has ten parameters. But It is only used in SimpleRpcScheduler and easy to 
> confused when read the code.
> 2. There are duplicate method implement in RWQueueRpcExecutor and 
> BalancedQueueRpcExecutor. They can be implemented in their parent class 
> RpcExecutor.
> 3. SimpleRpcScheduler read many configs to new RpcExecutor. But the 
> CALL_QUEUE_SCAN_SHARE_CONF_KEY is only needed by RWQueueRpcExecutor. And 
> CALL_QUEUE_CODEL_TARGET_DELAY, CALL_QUEUE_CODEL_INTERVAL and 
> CALL_QUEUE_CODEL_LIFO_THRESHOLD are only needed by AdaptiveLifoCoDelCallQueue.
> So I thought we can refactor it. Suggestions are welcome.
> Review board: https://reviews.apache.org/r/53726/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-15786) Create DBB backed MSLAB pool

2016-11-16 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-15786:
---
Attachment: HBASE-15786_V2.patch

> Create DBB backed MSLAB pool
> 
>
> Key: HBASE-15786
> URL: https://issues.apache.org/jira/browse/HBASE-15786
> Project: HBase
>  Issue Type: Sub-task
>  Components: regionserver
>Reporter: ramkrishna.s.vasudevan
>Assignee: Anoop Sam John
> Fix For: 2.0.0
>
> Attachments: HBASE-15786.patch, HBASE-15786_V2.patch
>
>
> We can make use of MSLAB pool for this off heap memstore. 
> Right now one can specify the global memstore size (heap size) as a % of max 
> memory using a config. We will add another config with which one can specify 
> the global off heap memstore size. This will be exact size not as %. When off 
> heap memstore in use, we will give this entire area for the MSLAB pool and 
> that will create off heap chunks. So when cells are added to memstore, the 
> cell data gets copied into the off heap MSLAB chunk spaces. Note that when 
> the pool size is not really enough and we need additional chunk creation, we 
> wont use off heap area for that.  We dony want to create so many on demand 
> DBBs.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17111) Use Apache CLI in SnapshotInfo tool

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17111:
---

| (x) *{color:red}-1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s 
{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} 3m 
2s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 34s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
44s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
13s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
40s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 26s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
45s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 35s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 35s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
43s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
13s {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} 
29m 34s {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-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 
10s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 33s 
{color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 92m 3s {color} 
| {color:red} hbase-server in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
13s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 133m 59s {color} 
| {color:black} {color} |
\\
\\
|| Reason || Tests ||
| Failed junit tests | 
hadoop.hbase.io.asyncfs.TestSaslFanOutOneBlockAsyncDFSOutput |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839161/HBASE-17111.master.001.patch
 |
| JIRA Issue | HBASE-17111 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 4edb732a7855 3.13.0-95-generic #142-Ubuntu SMP Fri Aug 12 
17:00:09 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 / 0f7a7f4 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
| unit | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4493/artifact/patchprocess/patch-unit-hbase-server.txt
 |
| unit test logs |  
https://builds.apache.org/job/PreCommit-HBASE-Build/4493/artifact/patchprocess/patch-unit-hbase-server.txt
 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4493/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4493/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatical

[jira] [Commented] (HBASE-15985) clarify promises about edits from replication in ref guide

2016-11-16 Thread Phil Yang (JIRA)

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

Phil Yang commented on HBASE-15985:
---

Hi,
I just see this issue, sorry for late. 

I am wondering what is the real concern for Increment. If I am not wrong, for 
Increment, in RS we read the current value and write the sum result to WAL as a 
Put. So in replication Increment is same as Put, and "at-least-once delivery" 
will not change the value in peer cluster, right? 

And for message disordering, we will push timestamp to peer cluster, so the 
only concern for Increment is in source cluster there are two Increments done 
in same milliseconds, right? For this case I think we can fix it by preventing 
using same timestamp from current value to the result.

And we have HBASE-9465 now, we can guarantee the order of pushing if we want. 
Although we may push some continuous logs more than once, it will not break 
anything because WAL entry is idempotent.

> clarify promises about edits from replication in ref guide
> --
>
> Key: HBASE-15985
> URL: https://issues.apache.org/jira/browse/HBASE-15985
> Project: HBase
>  Issue Type: Sub-task
>  Components: documentation, Replication
>Reporter: Sean Busbey
>Assignee: Sean Busbey
> Fix For: 2.0.0
>
> Attachments: HBASE-15985.1.patch
>
>
> we should make clear in a call out that replication only provides 
> at-least-once delivery and doesn't guarantee ordering so that e.g. folks 
> using increments aren't surprised.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Phil Yang (JIRA)
Phil Yang created HBASE-17112:
-

 Summary: Prevent setting timestamp of delta operations being same 
as previous value's
 Key: HBASE-17112
 URL: https://issues.apache.org/jira/browse/HBASE-17112
 Project: HBase
  Issue Type: Bug
Reporter: Phil Yang
Assignee: Phil Yang


In delta operations, Increment and Append. We will read current value first and 
then write the new whole result into WAL as the type of Put with current 
timestamp. If the previous ts is larger than current ts, we will use the 
previous ts.

If we have two Puts with same TS, we will ignore the Put with lower sequence 
id. It is not friendly with versioning. And for replication we will drop 
sequence id  while writing to peer cluster so in the slave we don't know what 
the order they are being written. If the pushing is disordered, the result will 
be wrong.





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-15985) clarify promises about edits from replication in ref guide

2016-11-16 Thread Phil Yang (JIRA)

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

Phil Yang commented on HBASE-15985:
---

Open a new issue HBASE-17112 to use a different timestamp.

> clarify promises about edits from replication in ref guide
> --
>
> Key: HBASE-15985
> URL: https://issues.apache.org/jira/browse/HBASE-15985
> Project: HBase
>  Issue Type: Sub-task
>  Components: documentation, Replication
>Reporter: Sean Busbey
>Assignee: Sean Busbey
> Fix For: 2.0.0
>
> Attachments: HBASE-15985.1.patch
>
>
> we should make clear in a call out that replication only provides 
> at-least-once delivery and doesn't guarantee ordering so that e.g. folks 
> using increments aren't surprised.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17076) implement getAndPut() and getAndDelete()

2016-11-16 Thread ChiaPing Tsai (JIRA)

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

ChiaPing Tsai commented on HBASE-17076:
---

All tests pass locally

> implement getAndPut() and getAndDelete()
> 
>
> Key: HBASE-17076
> URL: https://issues.apache.org/jira/browse/HBASE-17076
> Project: HBase
>  Issue Type: New Feature
>Affects Versions: 2.0.0
>Reporter: ChiaPing Tsai
>Assignee: ChiaPing Tsai
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-17076-v0.patch, HBASE-17076-v1.patch, 
> HBASE-17076-v2.patch
>
>
> We implement the getAndPut() and getAndDelete() by coprocessor, but there are 
> a lot of duplicate effort (e.g., data checks, row lock, returned value, and 
> wal). It is cool if we provide the compare-and-swap primitive.
> The draft patch is attached. Any advice and suggestions will be greatly 
> appreciated.
> Thanks.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Phil Yang (JIRA)

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

Phil Yang updated HBASE-17112:
--
Attachment: HBASE-17112-v1.patch

> Prevent setting timestamp of delta operations being same as previous value's
> 
>
> Key: HBASE-17112
> URL: https://issues.apache.org/jira/browse/HBASE-17112
> Project: HBase
>  Issue Type: Bug
>Reporter: Phil Yang
>Assignee: Phil Yang
> Attachments: HBASE-17112-v1.patch
>
>
> In delta operations, Increment and Append. We will read current value first 
> and then write the new whole result into WAL as the type of Put with current 
> timestamp. If the previous ts is larger than current ts, we will use the 
> previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence 
> id. It is not friendly with versioning. And for replication we will drop 
> sequence id  while writing to peer cluster so in the slave we don't know what 
> the order they are being written. If the pushing is disordered, the result 
> will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Phil Yang (JIRA)

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

Phil Yang updated HBASE-17112:
--
Affects Version/s: 1.1.7
   0.98.23
   1.2.4
   Status: Patch Available  (was: Open)

> Prevent setting timestamp of delta operations being same as previous value's
> 
>
> Key: HBASE-17112
> URL: https://issues.apache.org/jira/browse/HBASE-17112
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.2.4, 0.98.23, 1.1.7
>Reporter: Phil Yang
>Assignee: Phil Yang
> Attachments: HBASE-17112-v1.patch
>
>
> In delta operations, Increment and Append. We will read current value first 
> and then write the new whole result into WAL as the type of Put with current 
> timestamp. If the previous ts is larger than current ts, we will use the 
> previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence 
> id. It is not friendly with versioning. And for replication we will drop 
> sequence id  while writing to peer cluster so in the slave we don't know what 
> the order they are being written. If the pushing is disordered, the result 
> will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Phil Yang (JIRA)

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

Phil Yang updated HBASE-17112:
--
Description: 
In delta operations, Increment and Append. We will read current value first and 
then write the new whole result into WAL as the type of Put with current 
timestamp. If the previous ts is larger than current ts, we will use the 
previous ts.

If we have two Puts with same TS, we will ignore the Put with lower sequence 
id. It is not friendly with versioning. And for replication we will drop 
sequence id  while writing to peer cluster so in the slave we don't know what 
the order they are being written. If the pushing is disordered, the result will 
be wrong.

We can set the new ts to previous+1 if the previous is not less than now.


  was:
In delta operations, Increment and Append. We will read current value first and 
then write the new whole result into WAL as the type of Put with current 
timestamp. If the previous ts is larger than current ts, we will use the 
previous ts.

If we have two Puts with same TS, we will ignore the Put with lower sequence 
id. It is not friendly with versioning. And for replication we will drop 
sequence id  while writing to peer cluster so in the slave we don't know what 
the order they are being written. If the pushing is disordered, the result will 
be wrong.




> Prevent setting timestamp of delta operations being same as previous value's
> 
>
> Key: HBASE-17112
> URL: https://issues.apache.org/jira/browse/HBASE-17112
> Project: HBase
>  Issue Type: Bug
>Reporter: Phil Yang
>Assignee: Phil Yang
>
> In delta operations, Increment and Append. We will read current value first 
> and then write the new whole result into WAL as the type of Put with current 
> timestamp. If the previous ts is larger than current ts, we will use the 
> previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence 
> id. It is not friendly with versioning. And for replication we will drop 
> sequence id  while writing to peer cluster so in the slave we don't know what 
> the order they are being written. If the pushing is disordered, the result 
> will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Allan Yang (JIRA)

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

Allan Yang updated HBASE-17113:
---
Status: Patch Available  (was: Open)

> finding middle key in HFileV2 is always wrong and can cause 
> IndexOutOfBoundsException 
> --
>
> Key: HBASE-17113
> URL: https://issues.apache.org/jira/browse/HBASE-17113
> Project: HBase
>  Issue Type: Bug
>  Components: HFile
>Affects Versions: 1.2.4, 0.98.23, 1.1.7, 0.94.17, 2.0.0
>Reporter: Allan Yang
>Assignee: Allan Yang
> Attachments: HBASE-17113-branch-1.patch
>
>
> When we want  to split a region, we need to  get the middle rowkey from the 
> biggest store file. 
> Here is the code from HFileBlockIndex.midkey() which help us find a 
> approximation middle key.
> {code}
> // Caching, using pread, assuming this is not a compaction.
> HFileBlock midLeafBlock = cachingBlockReader.readBlock(
> midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, 
> true,
> BlockType.LEAF_INDEX, null);
> ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
> int numDataBlocks = b.getInt();
> int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
> int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
> keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
> int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
> + SECONDARY_INDEX_ENTRY_OVERHEAD;
> targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
> {code}
> and in each entry of Non-root block index contains three object:
> 1. Offset of the block referenced by this entry in the file (long)
> 2 .Ondisk size of the referenced block (int)
> 3. RowKey. 
> But when we caculating the keyLen from the entry, we forget to take away the 
> 12 byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So 
> the keyLen is always 12 bytes bigger than the real rowkey length.
> Every time we read the rowkey form the entry, we read 12 bytes from the next 
> entry. 
> No exception will throw unless the middle key is in the last entry of the 
> Non-root block index. which will cause a IndexOutOfBoundsException. That is 
> exactly what HBASE-16097 is suffering from.
> {code}
> 2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] 
> regionserver.MemStoreFlusher: Cache flusher failed for entry [flush region 
> hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
> \x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
> java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:532)
> at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
> at 
> org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
> at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:471)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$800(MemStoreFlusher.java:75)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:259)
> at java.lang.Thread.run(Thread.java:756)
> {code}
> It is a quite serious bug. It may exsits from HFileV2 was invented. But no 
> one has found out! Since this bug ONLY happens when finding a middlekey, and 
> since we compare a rowkey from the left side, adding 12 bytes more to the 
> right side is totally OK, no one cares!
> It even won't throw IndexOutOfBoundsException before HBASE-12297. since 
> {{Arrays.copyOfRange}} is used, which will check the limit to ensue the 
> length won't running past the end of the array.
>  But now, {{ByteBufferUtils.toBytes}} is used and IndexOutOfBoundsException 

[jira] [Updated] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Allan Yang (JIRA)

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

Allan Yang updated HBASE-17113:
---
Attachment: HBASE-17113-branch-1.patch

> finding middle key in HFileV2 is always wrong and can cause 
> IndexOutOfBoundsException 
> --
>
> Key: HBASE-17113
> URL: https://issues.apache.org/jira/browse/HBASE-17113
> Project: HBase
>  Issue Type: Bug
>  Components: HFile
>Affects Versions: 0.94.17, 2.0.0, 1.1.7, 0.98.23, 1.2.4
>Reporter: Allan Yang
>Assignee: Allan Yang
> Attachments: HBASE-17113-branch-1.patch
>
>
> When we want  to split a region, we need to  get the middle rowkey from the 
> biggest store file. 
> Here is the code from HFileBlockIndex.midkey() which help us find a 
> approximation middle key.
> {code}
> // Caching, using pread, assuming this is not a compaction.
> HFileBlock midLeafBlock = cachingBlockReader.readBlock(
> midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, 
> true,
> BlockType.LEAF_INDEX, null);
> ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
> int numDataBlocks = b.getInt();
> int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
> int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
> keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
> int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
> + SECONDARY_INDEX_ENTRY_OVERHEAD;
> targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
> {code}
> and in each entry of Non-root block index contains three object:
> 1. Offset of the block referenced by this entry in the file (long)
> 2 .Ondisk size of the referenced block (int)
> 3. RowKey. 
> But when we caculating the keyLen from the entry, we forget to take away the 
> 12 byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So 
> the keyLen is always 12 bytes bigger than the real rowkey length.
> Every time we read the rowkey form the entry, we read 12 bytes from the next 
> entry. 
> No exception will throw unless the middle key is in the last entry of the 
> Non-root block index. which will cause a IndexOutOfBoundsException. That is 
> exactly what HBASE-16097 is suffering from.
> {code}
> 2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] 
> regionserver.MemStoreFlusher: Cache flusher failed for entry [flush region 
> hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
> \x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
> java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:532)
> at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
> at 
> org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
> at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:471)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$800(MemStoreFlusher.java:75)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:259)
> at java.lang.Thread.run(Thread.java:756)
> {code}
> It is a quite serious bug. It may exsits from HFileV2 was invented. But no 
> one has found out! Since this bug ONLY happens when finding a middlekey, and 
> since we compare a rowkey from the left side, adding 12 bytes more to the 
> right side is totally OK, no one cares!
> It even won't throw IndexOutOfBoundsException before HBASE-12297. since 
> {{Arrays.copyOfRange}} is used, which will check the limit to ensue the 
> length won't running past the end of the array.
>  But now, {{ByteBufferUtils.toBytes}} is used and IndexOutOfBoundsException

[jira] [Commented] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17113:
---

| (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 7s {color} 
| {color:red} HBASE-17113 does not apply to branch-1. Rebase required? Wrong 
Branch? See https://yetus.apache.org/documentation/0.3.0/precommit-patchnames 
for help. {color} |
\\
\\
|| Subsystem || Report/Notes ||
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839183/HBASE-17113-branch-1.patch
 |
| JIRA Issue | HBASE-17113 |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4496/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatically generated.



> finding middle key in HFileV2 is always wrong and can cause 
> IndexOutOfBoundsException 
> --
>
> Key: HBASE-17113
> URL: https://issues.apache.org/jira/browse/HBASE-17113
> Project: HBase
>  Issue Type: Bug
>  Components: HFile
>Affects Versions: 0.94.17, 2.0.0, 1.1.7, 0.98.23, 1.2.4
>Reporter: Allan Yang
>Assignee: Allan Yang
> Attachments: HBASE-17113-branch-1.patch
>
>
> When we want  to split a region, we need to  get the middle rowkey from the 
> biggest store file. 
> Here is the code from HFileBlockIndex.midkey() which help us find a 
> approximation middle key.
> {code}
> // Caching, using pread, assuming this is not a compaction.
> HFileBlock midLeafBlock = cachingBlockReader.readBlock(
> midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, 
> true,
> BlockType.LEAF_INDEX, null);
> ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
> int numDataBlocks = b.getInt();
> int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
> int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
> keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
> int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
> + SECONDARY_INDEX_ENTRY_OVERHEAD;
> targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
> {code}
> and in each entry of Non-root block index contains three object:
> 1. Offset of the block referenced by this entry in the file (long)
> 2 .Ondisk size of the referenced block (int)
> 3. RowKey. 
> But when we caculating the keyLen from the entry, we forget to take away the 
> 12 byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So 
> the keyLen is always 12 bytes bigger than the real rowkey length.
> Every time we read the rowkey form the entry, we read 12 bytes from the next 
> entry. 
> No exception will throw unless the middle key is in the last entry of the 
> Non-root block index. which will cause a IndexOutOfBoundsException. That is 
> exactly what HBASE-16097 is suffering from.
> {code}
> 2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] 
> regionserver.MemStoreFlusher: Cache flusher failed for entry [flush region 
> hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
> \x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
> java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:532)
> at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
> at 
> org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
> at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRe

[jira] [Created] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Allan Yang (JIRA)
Allan Yang created HBASE-17113:
--

 Summary: finding middle key in HFileV2 is always wrong and can 
cause IndexOutOfBoundsException 
 Key: HBASE-17113
 URL: https://issues.apache.org/jira/browse/HBASE-17113
 Project: HBase
  Issue Type: Bug
  Components: HFile
Affects Versions: 1.2.4, 0.98.23, 1.1.7, 0.94.17, 2.0.0
Reporter: Allan Yang
Assignee: Allan Yang


When we want  to split a region, we need to  get the middle rowkey from the 
biggest store file. 

Here is the code from HFileBlockIndex.midkey() which help us find a 
approximation middle key.
{code}
// Caching, using pread, assuming this is not a compaction.
HFileBlock midLeafBlock = cachingBlockReader.readBlock(
midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, true,
BlockType.LEAF_INDEX, null);

ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
int numDataBlocks = b.getInt();
int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
+ SECONDARY_INDEX_ENTRY_OVERHEAD;
targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
{code}
and in each entry of Non-root block index contains three object:
1. Offset of the block referenced by this entry in the file (long)
2 .Ondisk size of the referenced block (int)
3. RowKey. 

But when we caculating the keyLen from the entry, we forget to take away the 12 
byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So the 
keyLen is always 12 bytes bigger than the real rowkey length.
Every time we read the rowkey form the entry, we read 12 bytes from the next 
entry. 
No exception will throw unless the middle key is in the last entry of the 
Non-root block index. which will cause a IndexOutOfBoundsException. That is 
exactly what HBASE-16097 is suffering from.
{code}
2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] regionserver.MemStoreFlusher: 
Cache flusher failed for entry [flush region hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
\x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
java.lang.IndexOutOfBoundsException
at java.nio.Buffer.checkIndex(Buffer.java:532)
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
at 
org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
at 
org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
at 
org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
at 
org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
at 
org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
at 
org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
at 
org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
at 
org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
at 
org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
at 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
at 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:471)
at 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$800(MemStoreFlusher.java:75)
at 
org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:259)
at java.lang.Thread.run(Thread.java:756)

{code}

It is a quite serious bug. It may exsits from HFileV2 was invented. But no one 
has found out! Since this bug ONLY happens when finding a middlekey, and since 
we compare a rowkey from the left side, adding 12 bytes more to the right side 
is totally OK, no one cares!
It even won't throw IndexOutOfBoundsException before HBASE-12297. since 
{{Arrays.copyOfRange}} is used, which will check the limit to ensue the length 
won't running past the end of the array.
 But now, {{ByteBufferUtils.toBytes}} is used and IndexOutOfBoundsException 
will been thrown. 

It happens in our production environment. Because of this bug, the region can't 
be split can grow bigger and bigger.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Allan Yang (JIRA)

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

Allan Yang commented on HBASE-17113:


sorry, the issue is duplicated to HBASE-17020, please close it. 

> finding middle key in HFileV2 is always wrong and can cause 
> IndexOutOfBoundsException 
> --
>
> Key: HBASE-17113
> URL: https://issues.apache.org/jira/browse/HBASE-17113
> Project: HBase
>  Issue Type: Bug
>  Components: HFile
>Affects Versions: 0.94.17, 2.0.0, 1.1.7, 0.98.23, 1.2.4
>Reporter: Allan Yang
>Assignee: Allan Yang
> Attachments: HBASE-17113-branch-1.patch
>
>
> When we want  to split a region, we need to  get the middle rowkey from the 
> biggest store file. 
> Here is the code from HFileBlockIndex.midkey() which help us find a 
> approximation middle key.
> {code}
> // Caching, using pread, assuming this is not a compaction.
> HFileBlock midLeafBlock = cachingBlockReader.readBlock(
> midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, 
> true,
> BlockType.LEAF_INDEX, null);
> ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
> int numDataBlocks = b.getInt();
> int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
> int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
> keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
> int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
> + SECONDARY_INDEX_ENTRY_OVERHEAD;
> targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
> {code}
> and in each entry of Non-root block index contains three object:
> 1. Offset of the block referenced by this entry in the file (long)
> 2 .Ondisk size of the referenced block (int)
> 3. RowKey. 
> But when we caculating the keyLen from the entry, we forget to take away the 
> 12 byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So 
> the keyLen is always 12 bytes bigger than the real rowkey length.
> Every time we read the rowkey form the entry, we read 12 bytes from the next 
> entry. 
> No exception will throw unless the middle key is in the last entry of the 
> Non-root block index. which will cause a IndexOutOfBoundsException. That is 
> exactly what HBASE-16097 is suffering from.
> {code}
> 2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] 
> regionserver.MemStoreFlusher: Cache flusher failed for entry [flush region 
> hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
> \x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
> java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:532)
> at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
> at 
> org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
> at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:471)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$800(MemStoreFlusher.java:75)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:259)
> at java.lang.Thread.run(Thread.java:756)
> {code}
> It is a quite serious bug. It may exsits from HFileV2 was invented. But no 
> one has found out! Since this bug ONLY happens when finding a middlekey, and 
> since we compare a rowkey from the left side, adding 12 bytes more to the 
> right side is totally OK, no one cares!
> It even won't throw IndexOutOfBoundsException before HBASE-12297. since 
> {{Arrays.copyOfRange}} is used, which will check the limit to ensue the 
> length won't running past the end of the arra

[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-17110:
---

Thanks for chiming in [~anoop.hbase].

The reason we make it configurable is that the "more perfect cluster level 
balance" is with more precise criterion, and if we turn it on, possibly it'll 
move regions more aggressively (but it's true that we could use 
{{hbase.regions.slop}} to better control it). Since big batch of region moving 
will cause spike and is bad for online performance/stability, we choose to set 
the config off by default, meanwhile supplied a shell command to trigger the 
cluster level balance manually (and please open another JIRA to upstream the 
hbase shell tool fella [~xharlie]). And this "possibly auto big batch of region 
moving" is also the reason we're not using {{StochasticLoadBalancer}} online, 
FWIW.

For master branch, I agree that we could be more aggressive and make the option 
ON by default, so people will know about this option, but better to make a 
clear release note about the change.

Let me know your thoughts, thanks.

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> We can see the server loads change from 3,3,3,0 to 2,2,3,2, while the table1, 
> table2 and table3 still keep balanced.   
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
> Also, a onConfigurationChange method has been implemented to hot control the 
> "slop" variable.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-17110:
---

And also thanks [~zghaobac] for chiming in. Please open an issue on RB for 
easier review [~xharlie], thanks.

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> We can see the server loads change from 3,3,3,0 to 2,2,3,2, while the table1, 
> table2 and table3 still keep balanced.   
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
> Also, a onConfigurationChange method has been implemented to hot control the 
> "slop" variable.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-17113:
---
Resolution: Duplicate
Status: Resolved  (was: Patch Available)

> finding middle key in HFileV2 is always wrong and can cause 
> IndexOutOfBoundsException 
> --
>
> Key: HBASE-17113
> URL: https://issues.apache.org/jira/browse/HBASE-17113
> Project: HBase
>  Issue Type: Bug
>  Components: HFile
>Affects Versions: 0.94.17, 2.0.0, 1.1.7, 0.98.23, 1.2.4
>Reporter: Allan Yang
>Assignee: Allan Yang
> Attachments: HBASE-17113-branch-1.patch
>
>
> When we want  to split a region, we need to  get the middle rowkey from the 
> biggest store file. 
> Here is the code from HFileBlockIndex.midkey() which help us find a 
> approximation middle key.
> {code}
> // Caching, using pread, assuming this is not a compaction.
> HFileBlock midLeafBlock = cachingBlockReader.readBlock(
> midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, 
> true,
> BlockType.LEAF_INDEX, null);
> ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
> int numDataBlocks = b.getInt();
> int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
> int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
> keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
> int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
> + SECONDARY_INDEX_ENTRY_OVERHEAD;
> targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
> {code}
> and in each entry of Non-root block index contains three object:
> 1. Offset of the block referenced by this entry in the file (long)
> 2 .Ondisk size of the referenced block (int)
> 3. RowKey. 
> But when we caculating the keyLen from the entry, we forget to take away the 
> 12 byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So 
> the keyLen is always 12 bytes bigger than the real rowkey length.
> Every time we read the rowkey form the entry, we read 12 bytes from the next 
> entry. 
> No exception will throw unless the middle key is in the last entry of the 
> Non-root block index. which will cause a IndexOutOfBoundsException. That is 
> exactly what HBASE-16097 is suffering from.
> {code}
> 2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] 
> regionserver.MemStoreFlusher: Cache flusher failed for entry [flush region 
> hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
> \x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
> java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:532)
> at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
> at 
> org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
> at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:471)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$800(MemStoreFlusher.java:75)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:259)
> at java.lang.Thread.run(Thread.java:756)
> {code}
> It is a quite serious bug. It may exsits from HFileV2 was invented. But no 
> one has found out! Since this bug ONLY happens when finding a middlekey, and 
> since we compare a rowkey from the left side, adding 12 bytes more to the 
> right side is totally OK, no one cares!
> It even won't throw IndexOutOfBoundsException before HBASE-12297. since 
> {{Arrays.copyOfRange}} is used, which will check the limit to ensue the 
> length won't running past the end of the array.
>  But now, {{ByteBufferUtils.toBytes}} is used and I

[jira] [Commented] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-17112:
---

bq. And for replication we will drop sequence id while writing to peer cluster 
so in the slave we don't know what the order they are being written. If the 
pushing is disordered, the result will be wrong.
Makes sense to me, and I think this fault is unacceptable. Also +1 on the 
straight-forward patch. Let's see what others and HadoopQA will say.

> Prevent setting timestamp of delta operations being same as previous value's
> 
>
> Key: HBASE-17112
> URL: https://issues.apache.org/jira/browse/HBASE-17112
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.1.7, 0.98.23, 1.2.4
>Reporter: Phil Yang
>Assignee: Phil Yang
> Attachments: HBASE-17112-v1.patch
>
>
> In delta operations, Increment and Append. We will read current value first 
> and then write the new whole result into WAL as the type of Put with current 
> timestamp. If the previous ts is larger than current ts, we will use the 
> previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence 
> id. It is not friendly with versioning. And for replication we will drop 
> sequence id  while writing to peer cluster so in the slave we don't know what 
> the order they are being written. If the pushing is disordered, the result 
> will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17113) finding middle key in HFileV2 is always wrong and can cause IndexOutOfBoundsException

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-17113:
---

yep, small world :-)

> finding middle key in HFileV2 is always wrong and can cause 
> IndexOutOfBoundsException 
> --
>
> Key: HBASE-17113
> URL: https://issues.apache.org/jira/browse/HBASE-17113
> Project: HBase
>  Issue Type: Bug
>  Components: HFile
>Affects Versions: 0.94.17, 2.0.0, 1.1.7, 0.98.23, 1.2.4
>Reporter: Allan Yang
>Assignee: Allan Yang
> Attachments: HBASE-17113-branch-1.patch
>
>
> When we want  to split a region, we need to  get the middle rowkey from the 
> biggest store file. 
> Here is the code from HFileBlockIndex.midkey() which help us find a 
> approximation middle key.
> {code}
> // Caching, using pread, assuming this is not a compaction.
> HFileBlock midLeafBlock = cachingBlockReader.readBlock(
> midLeafBlockOffset, midLeafBlockOnDiskSize, true, true, false, 
> true,
> BlockType.LEAF_INDEX, null);
> ByteBuffer b = midLeafBlock.getBufferWithoutHeader();
> int numDataBlocks = b.getInt();
> int keyRelOffset = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 1));
> int keyLen = b.getInt(Bytes.SIZEOF_INT * (midKeyEntry + 2)) -
> keyRelOffset - SECONDARY_INDEX_ENTRY_OVERHEAD;
> int keyOffset = Bytes.SIZEOF_INT * (numDataBlocks + 2) + keyRelOffset
> + SECONDARY_INDEX_ENTRY_OVERHEAD;
> targetMidKey = ByteBufferUtils.toBytes(b, keyOffset, keyLen);
> {code}
> and in each entry of Non-root block index contains three object:
> 1. Offset of the block referenced by this entry in the file (long)
> 2 .Ondisk size of the referenced block (int)
> 3. RowKey. 
> But when we caculating the keyLen from the entry, we forget to take away the 
> 12 byte overhead(1,2 above, SECONDARY_INDEX_ENTRY_OVERHEAD in the code). So 
> the keyLen is always 12 bytes bigger than the real rowkey length.
> Every time we read the rowkey form the entry, we read 12 bytes from the next 
> entry. 
> No exception will throw unless the middle key is in the last entry of the 
> Non-root block index. which will cause a IndexOutOfBoundsException. That is 
> exactly what HBASE-16097 is suffering from.
> {code}
> 2016-11-16 05:27:31,991 ERROR [MemStoreFlusher.1] 
> regionserver.MemStoreFlusher: Cache flusher failed for entry [flush region 
> hitsdb,\x14\x03\x83\x1AX\x1A\x9A 
> \x00\x00\x07\x00\x00\x07\x00\x00\x09\x00\x00\x09\x00\x01\x9F\x00F\xE3\x00\x00\x0A\x00\x01~\x00\x00\x08\x00\x5C\x09\x00\x03\x11\x00\xEF\x99,1478311873096.79d3f7f285396b6896f3229e2bcac7af.]
> java.lang.IndexOutOfBoundsException
> at java.nio.Buffer.checkIndex(Buffer.java:532)
> at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:139)
> at 
> org.apache.hadoop.hbase.util.ByteBufferUtils.toBytes(ByteBufferUtils.java:490)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileBlockIndex$BlockIndexReader.midkey(HFileBlockIndex.java:349)
> at 
> org.apache.hadoop.hbase.io.hfile.HFileReaderV2.midkey(HFileReaderV2.java:529)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile$Reader.midkey(StoreFile.java:1527)
> at 
> org.apache.hadoop.hbase.regionserver.StoreFile.getFileSplitPoint(StoreFile.java:684)
> at 
> org.apache.hadoop.hbase.regionserver.DefaultStoreFileManager.getSplitPoint(DefaultStoreFileManager.java:126)
> at 
> org.apache.hadoop.hbase.regionserver.HStore.getSplitPoint(HStore.java:1976)
> at 
> org.apache.hadoop.hbase.regionserver.RegionSplitPolicy.getSplitPoint(RegionSplitPolicy.java:82)
> at 
> org.apache.hadoop.hbase.regionserver.HRegion.checkSplit(HRegion.java:7614)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:521)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:471)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$800(MemStoreFlusher.java:75)
> at 
> org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:259)
> at java.lang.Thread.run(Thread.java:756)
> {code}
> It is a quite serious bug. It may exsits from HFileV2 was invented. But no 
> one has found out! Since this bug ONLY happens when finding a middlekey, and 
> since we compare a rowkey from the left side, adding 12 bytes more to the 
> right side is totally OK, no one cares!
> It even won't throw IndexOutOfBoundsException before HBASE-12297. since 
> {{Arrays.copyOfRange}} is used, which will check the limit to ensue the 
> length won't running past the end of the array.
>  But now, {{ByteBufferUtils.toBytes}} is used and

[jira] [Commented] (HBASE-14960) Fallback to using default RPCControllerFactory if class cannot be loaded

2016-11-16 Thread Vsevolod Ostapenko (JIRA)

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

Vsevolod Ostapenko commented on HBASE-14960:


Hortonworks still ships HBase 1.1.2 in the most recent HDP 2.5 releases. Is it 
possible to have a patch for this issue on 1.1.2?

> Fallback to using default RPCControllerFactory if class cannot be loaded
> 
>
> Key: HBASE-14960
> URL: https://issues.apache.org/jira/browse/HBASE-14960
> Project: HBase
>  Issue Type: Bug
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: 2.0.0, 1.2.0, 1.3.0, 0.98.17
>
> Attachments: HBASE-14960-0.98.patch, hbase-14960_v1.patch, 
> hbase-14960_v2.patch, hbase-14960_v3.patch, hbase-14960_v4.patch
>
>
> In Phoenix + HBase clusters, the hbase-site.xml configuration will point to a 
> custom rpc controller factory which is a Phoenix-specific one to configure 
> the priorities for index and system catalog table. 
> However, sometimes these Phoenix-enabled clusters are used from pure-HBase 
> client applications resulting in ClassNotFoundExceptions in application code 
> or MapReduce jobs. Since hbase configuration is shared between 
> Phoenix-clients and HBase clients, having different configurations at the 
> client side is hard. 
> We can instead try to load up the RPCControllerFactory from conf, and if not 
> found, fallback to the default one (in case this is a pure HBase client). In 
> case Phoenix is already in the classpath, it will work as usual. 
> This does not affect the rpc scheduler factory since it is only used at the 
> server side. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17088) Refactor RWQueueRpcExecutor/BalancedQueueRpcExecutor/RpcExecutor

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17088:
---

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
| {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 12s 
{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:green}+1{color} | {color:green} mvninstall {color} | {color:green} 2m 
39s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 32s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
40s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
12s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
32s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 23s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
41s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 31s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 31s 
{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 
13s {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} 
24m 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-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
39s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 23s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} unit {color} | {color:green} 85m 50s 
{color} | {color:green} hbase-server in the patch passed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
15s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 120m 47s {color} 
| {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839169/HBASE-17088-v3.patch |
| JIRA Issue | HBASE-17088 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux 49dafd205eee 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 / 0f7a7f4 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4494/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4494/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |


This message was automatically generated.



> Refactor RWQueueRpcExecutor/BalancedQueueRpcExecutor/RpcExecutor
> 
>
> Key: HBASE-17088
> URL: https://issues.apache.org/jira/browse/HBASE-17088
> Project: HBase
>  Issue Type: Improvement
>  Components: rpc
>Affects Versions: 2.0.0
>Reporter: Guanghao Zhang
>Assignee: Guanghao Zhang
> Attachments: HBASE-17088-v1

[jira] [Updated] (HBASE-15597) Clean up configuration keys used in hbase-spark module

2016-11-16 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-15597:

Assignee: (was: Sean Busbey)

> Clean up configuration keys used in hbase-spark module
> --
>
> Key: HBASE-15597
> URL: https://issues.apache.org/jira/browse/HBASE-15597
> Project: HBase
>  Issue Type: Bug
>  Components: spark
>Affects Versions: 2.0.0
>Reporter: Sean Busbey
>Priority: Critical
> Fix For: 2.0.0
>
>
> This should be considered a blocker for backport to branch-1 since it will 
> impact our compatibility.
> The constants we expose in configuration should all start with "hbase". Since 
> our configurations keys for the spark integration all relate to that system, 
> the prefix for all configuration keys (excluding those cases where we need to 
> do something special due to restrictions in how properties are handled by 
> e.g. spark) should be "hbase.spark".
> Before publishing a public api labeled version of our spark integration we 
> should review all of our configuration keys to make sure they either conform 
> to the "hbase.spark" prefix or they have a comment documenting why they need 
> to be otherwise.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-14161) Add hbase-spark integration tests to IT jenkins job

2016-11-16 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-14161:

Assignee: (was: Sean Busbey)

> Add hbase-spark integration tests to IT jenkins job
> ---
>
> Key: HBASE-14161
> URL: https://issues.apache.org/jira/browse/HBASE-14161
> Project: HBase
>  Issue Type: Task
>  Components: build
>Reporter: Sean Busbey
> Fix For: 2.0.0
>
>
> expand the set of ITs we run to include the new hbase-spark tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-14375) define public API for spark integration module

2016-11-16 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-14375:

Assignee: (was: Sean Busbey)

> define public API for spark integration module
> --
>
> Key: HBASE-14375
> URL: https://issues.apache.org/jira/browse/HBASE-14375
> Project: HBase
>  Issue Type: Task
>  Components: spark
>Reporter: Sean Busbey
>Priority: Critical
> Fix For: 2.0.0
>
>
> before we can put the spark integration module into a release, we need to 
> annotate its public api surface.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17114) Add an option to set special retry pause when encountering CallQueueTooBigException

2016-11-16 Thread Yu Li (JIRA)
Yu Li created HBASE-17114:
-

 Summary: Add an option to set special retry pause when 
encountering CallQueueTooBigException
 Key: HBASE-17114
 URL: https://issues.apache.org/jira/browse/HBASE-17114
 Project: HBase
  Issue Type: Bug
Reporter: Yu Li
Assignee: Yu Li


As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} instead 
of dead-wait. This is good for performance for most cases but might cause a 
side-effect that if too many clients connect to the busy, the retry requests 
may come over and over again and RS never got the chance for recovering, and 
the issue will become especially critical when the target region is META.

So here in this JIRA we propose to supply some special retry pause for CQTBE in 
name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
times of {{hbase.client.pause}} default value)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (HBASE-17115) HMaster/HRegion Info Server does not honour admin.acl

2016-11-16 Thread Arshad Mohammad (JIRA)
Arshad Mohammad created HBASE-17115:
---

 Summary: HMaster/HRegion Info Server does not honour admin.acl
 Key: HBASE-17115
 URL: https://issues.apache.org/jira/browse/HBASE-17115
 Project: HBase
  Issue Type: Bug
Reporter: Arshad Mohammad


Currently there is no way to enable protected URLs like /jmx,  /conf  only for 
admins. This is applicable for both Master and RegionServer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17114) Add an option to set special retry pause when encountering CallQueueTooBigException

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li commented on HBASE-17114:
---

As it's already late night on my site, will upload the patch tomorrow.

[~eclark] [~mantonov] and [~ghelmling] especially looking forward to your 
thoughts on this idea gentlemen. Thanks.

> Add an option to set special retry pause when encountering 
> CallQueueTooBigException
> ---
>
> Key: HBASE-17114
> URL: https://issues.apache.org/jira/browse/HBASE-17114
> Project: HBase
>  Issue Type: Bug
>Reporter: Yu Li
>Assignee: Yu Li
>
> As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} 
> instead of dead-wait. This is good for performance for most cases but might 
> cause a side-effect that if too many clients connect to the busy, the retry 
> requests may come over and over again and RS never got the chance for 
> recovering, and the issue will become especially critical when the target 
> region is META.
> So here in this JIRA we propose to supply some special retry pause for CQTBE 
> in name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
> times of {{hbase.client.pause}} default value)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17114) Add an option to set special retry pause when encountering CallQueueTooBigException

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li updated HBASE-17114:
--
Description: 
As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} instead 
of dead-wait. This is good for performance for most cases but might cause a 
side-effect that if too many clients connect to the busy RS, that the retry 
requests may come over and over again and RS never got the chance for 
recovering, and the issue will become especially critical when the target 
region is META.

So here in this JIRA we propose to supply some special retry pause for CQTBE in 
name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
times of {{hbase.client.pause}} default value)

  was:
As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} instead 
of dead-wait. This is good for performance for most cases but might cause a 
side-effect that if too many clients connect to the busy, the retry requests 
may come over and over again and RS never got the chance for recovering, and 
the issue will become especially critical when the target region is META.

So here in this JIRA we propose to supply some special retry pause for CQTBE in 
name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
times of {{hbase.client.pause}} default value)


> Add an option to set special retry pause when encountering 
> CallQueueTooBigException
> ---
>
> Key: HBASE-17114
> URL: https://issues.apache.org/jira/browse/HBASE-17114
> Project: HBase
>  Issue Type: Bug
>Reporter: Yu Li
>Assignee: Yu Li
>
> As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} 
> instead of dead-wait. This is good for performance for most cases but might 
> cause a side-effect that if too many clients connect to the busy RS, that the 
> retry requests may come over and over again and RS never got the chance for 
> recovering, and the issue will become especially critical when the target 
> region is META.
> So here in this JIRA we propose to supply some special retry pause for CQTBE 
> in name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
> times of {{hbase.client.pause}} default value)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17115) HMaster/HRegion Info Server does not honour admin.acl

2016-11-16 Thread Arshad Mohammad (JIRA)

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

Arshad Mohammad commented on HBASE-17115:
-

{{org.apache.hadoop.hbase.http.HttpServer}} has instance of 
{{org.apache.hadoop.security.authorize.AccessControlList}} but this is not set 
from anywhere.
May be we can introduce one new property hbase.admin.acl in hbase
{code}
/** ACL of who can be admin of HBase web URLs*/
public static final String HBASE_ADMIN_ACL ="hbase.admin.acl";
public static final String DEFAULT_HBASE_ADMIN_ACL = "*";
{code}
and initialize AccessControlList and set in InfoServer
{code}
builder.setACL(new AccessControlList(c.get(
  HConstants.HBASE_ADMIN_ACL, 
  HConstants.DEFAULT_HBASE_ADMIN_ACL)));

{code} 

> HMaster/HRegion Info Server does not honour admin.acl
> -
>
> Key: HBASE-17115
> URL: https://issues.apache.org/jira/browse/HBASE-17115
> Project: HBase
>  Issue Type: Bug
>Reporter: Arshad Mohammad
>
> Currently there is no way to enable protected URLs like /jmx,  /conf  only 
> for admins. This is applicable for both Master and RegionServer.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Comment Edited] (HBASE-17114) Add an option to set special retry pause when encountering CallQueueTooBigException

2016-11-16 Thread Yu Li (JIRA)

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

Yu Li edited comment on HBASE-17114 at 11/16/16 4:36 PM:
-

As it's already late night on my site, will upload the patch tomorrow.

[~eclark] [~mantonov] and [~ghelmling] especially looking forward to your 
thoughts on this idea gentlemen. Thanks.

And others' thoughts are also welcome (Smile).


was (Author: carp84):
As it's already late night on my site, will upload the patch tomorrow.

[~eclark] [~mantonov] and [~ghelmling] especially looking forward to your 
thoughts on this idea gentlemen. Thanks.

> Add an option to set special retry pause when encountering 
> CallQueueTooBigException
> ---
>
> Key: HBASE-17114
> URL: https://issues.apache.org/jira/browse/HBASE-17114
> Project: HBase
>  Issue Type: Bug
>Reporter: Yu Li
>Assignee: Yu Li
>
> As titled, after HBASE-15146 we will throw {{CallQueueTooBigException}} 
> instead of dead-wait. This is good for performance for most cases but might 
> cause a side-effect that if too many clients connect to the busy RS, that the 
> retry requests may come over and over again and RS never got the chance for 
> recovering, and the issue will become especially critical when the target 
> region is META.
> So here in this JIRA we propose to supply some special retry pause for CQTBE 
> in name of {{hbase.client.pause.special}}, and by default it will be 500ms (5 
> times of {{hbase.client.pause}} default value)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-17112:


For append/increment we will use TS as the RS cur time only? I mean even if 
client passed any TS we will ignore those? A quick read of code gives such an 
impression?  Missing some thing?

> Prevent setting timestamp of delta operations being same as previous value's
> 
>
> Key: HBASE-17112
> URL: https://issues.apache.org/jira/browse/HBASE-17112
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.1.7, 0.98.23, 1.2.4
>Reporter: Phil Yang
>Assignee: Phil Yang
> Attachments: HBASE-17112-v1.patch
>
>
> In delta operations, Increment and Append. We will read current value first 
> and then write the new whole result into WAL as the type of Put with current 
> timestamp. If the previous ts is larger than current ts, we will use the 
> previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence 
> id. It is not friendly with versioning. And for replication we will drop 
> sequence id  while writing to peer cluster so in the slave we don't know what 
> the order they are being written. If the pushing is disordered, the result 
> will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-17112:
---

| (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} 3m 
5s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 37s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
46s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
13s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
49s {color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 26s 
{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 
47s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 36s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 36s 
{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 
44s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} mvneclipse {color} | {color:green} 0m 
14s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 
0s {color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 
27m 50s {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-alpha1. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 1m 
56s {color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 27s 
{color} | {color:green} the patch passed {color} |
| {color:red}-1{color} | {color:red} unit {color} | {color:red} 90m 45s {color} 
| {color:red} hbase-server in the patch failed. {color} |
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 
14s {color} | {color:green} The patch does not generate ASF License warnings. 
{color} |
| {color:black}{color} | {color:black} {color} | {color:black} 130m 59s {color} 
| {color:black} {color} |
\\
\\
|| Reason || Tests ||
| Failed junit tests | hadoop.hbase.regionserver.TestHRegionWithInMemoryFlush |
|   | hadoop.hbase.regionserver.TestHRegion |
\\
\\
|| Subsystem || Report/Notes ||
| Docker | Client=1.12.3 Server=1.12.3 Image:yetus/hbase:8d52d23 |
| JIRA Patch URL | 
https://issues.apache.org/jira/secure/attachment/12839182/HBASE-17112-v1.patch |
| JIRA Issue | HBASE-17112 |
| Optional Tests |  asflicense  javac  javadoc  unit  findbugs  hadoopcheck  
hbaseanti  checkstyle  compile  |
| uname | Linux d6ded306b585 3.13.0-93-generic #140-Ubuntu SMP Mon Jul 18 
21:21:05 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 / 0f7a7f4 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
| unit | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4495/artifact/patchprocess/patch-unit-hbase-server.txt
 |
| unit test logs |  
https://builds.apache.org/job/PreCommit-HBASE-Build/4495/artifact/patchprocess/patch-unit-hbase-server.txt
 |
|  Test Results | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4495/testReport/ |
| modules | C: hbase-server U: hbase-server |
| Console output | 
https://builds.apache.org/job/PreCommit-HBASE-Build/4495/console |
| Powered by | Apache Yetus 0.3.0   http://yetus.apache.org |

[jira] [Commented] (HBASE-17096) checkAndMutateApi doesn't work correctly on 0.98.19+

2016-11-16 Thread Hudson (JIRA)

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

Hudson commented on HBASE-17096:


FAILURE: Integrated in Jenkins build HBase-0.98-on-Hadoop-1.1 #1290 (See 
[https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/1290/])
HBASE-17096 checkAndMutateApi doesn't work correctly on 0.98.19+ (apurtell: rev 
ccf3108ac15c62164dbf10e03d07e298fd402008)
* (edit) 
hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide3.java
* (edit) hbase-client/src/main/java/org/apache/hadoop/hbase/client/HTable.java


> checkAndMutateApi doesn't work correctly on 0.98.19+
> 
>
> Key: HBASE-17096
> URL: https://issues.apache.org/jira/browse/HBASE-17096
> Project: HBase
>  Issue Type: Bug
>Reporter: Samarth Jain
>Assignee: Heng Chen
> Fix For: 0.98.24
>
> Attachments: HBASE-17096-0.98.patch, HBASE-17096-0.98.v2.patch
>
>
> Below is the test case. It uses some Phoenix APIs for getting hold of admin 
> and HConnection but should be easily adopted for an HBase IT test. The second 
> checkAndMutate should return false but it is returning true. This test fails 
> with HBase-0.98.23 and works fine with HBase-0.98.17
> {code}
> @Test
> public void testCheckAndMutateApi() throws Exception {
> byte[] row = Bytes.toBytes("ROW");
> byte[] tableNameBytes = Bytes.toBytes(generateUniqueName());
> byte[] family = Bytes.toBytes(generateUniqueName());
> byte[] qualifier = Bytes.toBytes("QUALIFIER");
> byte[] oldValue = null;
> byte[] newValue = Bytes.toBytes("VALUE");
> Put put = new Put(row);
> put.add(family, qualifier, newValue);
> try (Connection conn = DriverManager.getConnection(getUrl())) {
> PhoenixConnection phxConn = conn.unwrap(PhoenixConnection.class);
> try (HBaseAdmin admin = phxConn.getQueryServices().getAdmin()) {
> HTableDescriptor tableDesc = new HTableDescriptor(
> TableName.valueOf(tableNameBytes));
> HColumnDescriptor columnDesc = new HColumnDescriptor(family);
> columnDesc.setTimeToLive(120);
> tableDesc.addFamily(columnDesc);
> admin.createTable(tableDesc);
> HTableInterface tableDescriptor = 
> admin.getConnection().getTable(tableNameBytes);
> assertTrue(tableDescriptor.checkAndPut(row, family, 
> qualifier, oldValue, put));
> Delete delete = new Delete(row);
> RowMutations mutations = new RowMutations(row);
> mutations.add(delete);
> assertTrue(tableDescriptor.checkAndMutate(row, family, 
> qualifier, CompareOp.EQUAL, newValue, mutations));
> assertFalse(tableDescriptor.checkAndMutate(row, family, 
> qualifier, CompareOp.EQUAL, newValue, mutations));
> }
> }
> }
> {code}
> FYI, [~apurtell], [~jamestaylor], [~lhofhansl]. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17093) Enhance SecureBulkLoadClient#secureBulkLoadHFiles() to return the family paths of the final hfiles

2016-11-16 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-17093:
---
Attachment: 17093.v4.txt

> Enhance SecureBulkLoadClient#secureBulkLoadHFiles() to return the family 
> paths of the final hfiles
> --
>
> Key: HBASE-17093
> URL: https://issues.apache.org/jira/browse/HBASE-17093
> Project: HBase
>  Issue Type: Improvement
>Reporter: Ted Yu
> Attachments: 17093.v3.txt, 17093.v4.txt, 17093.v4.txt
>
>
> Currently SecureBulkLoadClient#secureBulkLoadHFiles() returns boolean value 
> to indicate success / failure.
> Since SecureBulkLoadClient.java is new to master branch, we can change the 
> return type to be the family paths of the final hfiles.
> LoadQueueItem would be moved to hbase-client module.
> LoadQueueItem in hbase-server module would delegate to the class in 
> hbase-client module.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-16708) Expose endpoint Coprocessor name in "responseTooSlow" log messages

2016-11-16 Thread Yi Liang (JIRA)

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

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

> Expose endpoint Coprocessor name in "responseTooSlow" log messages
> --
>
> Key: HBASE-16708
> URL: https://issues.apache.org/jira/browse/HBASE-16708
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Nick Dimiduk
>Assignee: Yi Liang
> Attachments: HBASE-16708-v1.patch
>
>
> Operational diagnostics of a Phoenix install would be easier if we included 
> which endpoint coprocessor was being called in this responseTooSlow WARN 
> message.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-16708) Expose endpoint Coprocessor name in "responseTooSlow" log messages

2016-11-16 Thread Yi Liang (JIRA)

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

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

> Expose endpoint Coprocessor name in "responseTooSlow" log messages
> --
>
> Key: HBASE-16708
> URL: https://issues.apache.org/jira/browse/HBASE-16708
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Nick Dimiduk
>Assignee: Yi Liang
> Attachments: HBASE-16708-v1.patch
>
>
> Operational diagnostics of a Phoenix install would be easier if we included 
> which endpoint coprocessor was being called in this responseTooSlow WARN 
> message.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17110) Add an "Overall Strategy" option(balanced both on table level and server level) to SimpleLoadBalancer

2016-11-16 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-17110:


The config should be on by default.
{code}
+private int initialnumRegions;
{code}
Why do we need the above variable ? Can this be deduced from size of hriList ?
{code}
+public BalanceInfo(int nextRegionForUnload, int numRegionsAdded, int 
initialnumRegions, List hriList) {
{code}
{code}
+int getinitialnumRegions() {
{code}
Upper case 'i' of initial and 'n' of num - same with variable name.
{code}
+  private List ServerLoadList;
{code}
Lower case the leading 'S'.
{code}
+if (sdv > avgLoadOverall / 10) return true;
{code}
How is the constant of 10 determined ?
{code}
+// But if we need to balanceoverall, we should skip assigning those 
regions here and assign them along with other
+// regions( that would be peeled off from RS that has max num of regions) 
in the following needsBalanceOverall logic
{code}
Wrap long line.

> Add an "Overall Strategy" option(balanced both on table level and server 
> level) to SimpleLoadBalancer
> -
>
> Key: HBASE-17110
> URL: https://issues.apache.org/jira/browse/HBASE-17110
> Project: HBase
>  Issue Type: New Feature
>  Components: Balancer
>Affects Versions: 2.0.0, 1.2.4
>Reporter: Charlie Qiangeng Xu
>Assignee: Charlie Qiangeng Xu
> Attachments: HBASE-17110.patch, SimpleBalancerBytableOverall.V1
>
>
> This jira is about an enhancement of simpleLoadBalancer. Here we introduce a 
> new strategy: "bytableOverall" which could be controlled by adding:
> {noformat}
> 
>   hbase.master.loadbalance.bytableOverall
>   true
> 
> {noformat}
> We have been using the strategy on our largest cluster for several months. 
> it's proven to be very helpful and stable, especially, the result is quite 
> visible to the users.
> Here is the reason why it's helpful:
> When operating large scale clusters(our case), some companies still prefer to 
> use {{SimpleLoadBalancer}} due to its simplicity, quick balance plan 
> generation, etc. Current SimpleLoadBalancer has two modes: 
> 1. byTable, which only guarantees that the regions of one table could be 
> uniformly distributed. 
> 2. byCluster, which ignores the distribution within tables and balance the 
> regions all together.
> If the pressures on different tables are different, the first byTable option 
> is the preferable one in most case. Yet, this choice sacrifice the cluster 
> level balance and would cause some servers to have significantly higher load, 
> e.g. 242 regions on server A but 417 regions on server B.(real world stats)
> Consider this case,  a cluster has 3 tables and 4 servers:
> {noformat}
>   server A has 3 regions: table1:1, table2:1, table3:1
>   server B has 3 regions: table1:2, table2:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 0 regions.
> {noformat}
> From the byTable strategy's perspective, the cluster has already been 
> perfectly balanced on table level. But a perfect status should be like:
> {noformat}
>   server A has 2 regions: table2:1, table3:1
>   server B has 2 regions: table1:2, table3:2
>   server C has 3 regions: table1:3, table2:3, table3:3
>   server D has 2 regions: table1:1, table2:2
> {noformat}
> We can see the server loads change from 3,3,3,0 to 2,2,3,2, while the table1, 
> table2 and table3 still keep balanced.   
> And this is what the new mode "byTableOverall" can achieve.
> Two UTs have been added as well and the last one demonstrates the advantage 
> of the new strategy.
> Also, a onConfigurationChange method has been implemented to hot control the 
> "slop" variable.
>  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-17108) ZKConfig.getZKQuorumServersString does not return the correct client port number

2016-11-16 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-17108:
---
Attachment: HBASE-17108-0.98.patch

Tests look good

Here's a patch that brings 0.98's ZKConfig up to branch-1, fixes the bug in 
quorum string construction as an intended effect of that, and doesn't present a 
compatibility problem (ZKConfig is Private).

I'll commit later today unless objection. 

/cc [~lhofhansl]

> ZKConfig.getZKQuorumServersString does not return the correct client port 
> number
> 
>
> Key: HBASE-17108
> URL: https://issues.apache.org/jira/browse/HBASE-17108
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.98.17
>Reporter: Andrew Purtell
> Fix For: 0.98.24
>
> Attachments: HBASE-17108-0.98.patch
>
>
> ZKConfig.getZKQuorumServersString may not return the correct client port 
> number, at least on 0.98 branch. See PHOENIX-3485. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-14375) define public API for spark integration module

2016-11-16 Thread Sean Busbey (JIRA)

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

Sean Busbey commented on HBASE-14375:
-

Included in this issue: version(s) of spark we support, version(s) of scala we 
support. Does "support" only cover what we build against by default and provide 
convenience binaries for or does it include things where the downstream user 
has to provide compilation options?

> define public API for spark integration module
> --
>
> Key: HBASE-14375
> URL: https://issues.apache.org/jira/browse/HBASE-14375
> Project: HBase
>  Issue Type: Task
>  Components: spark
>Reporter: Sean Busbey
>Priority: Critical
> Fix For: 2.0.0
>
>
> before we can put the spark integration module into a release, we need to 
> annotate its public api surface.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-16956) Refactor FavoredNodePlan to use regionNames as keys

2016-11-16 Thread Thiruvel Thirumoolan (JIRA)

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

Thiruvel Thirumoolan commented on HBASE-16956:
--

[~devaraj] Precommit passed with latest patch, no flaky tests this time.

> Refactor FavoredNodePlan to use regionNames as keys
> ---
>
> Key: HBASE-16956
> URL: https://issues.apache.org/jira/browse/HBASE-16956
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Thiruvel Thirumoolan
>Assignee: Thiruvel Thirumoolan
>Priority: Minor
> Fix For: 2.0.0
>
> Attachments: HBASE-16956.branch-1.001.patch, 
> HBASE-16956.master.001.patch, HBASE-16956.master.002.patch, 
> HBASE-16956.master.003.patch, HBASE-16956.master.004.patch, 
> HBASE-16956.master.005.patch, HBASE-16956.master.006.patch, 
> HBASE-16956.master.007.patch
>
>
> We would like to rely on the FNPlan cache whether a region is offline or not. 
> Sticking to regionNames as keys makes that possible.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17069) RegionServer writes invalid META entries for split daughters in some circumstances

2016-11-16 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-17069:


Bisect with good confidence lands here:

bae2a970817d3693946c5b1d4e2382e56b1e94b8 is the first bad commit
{noformat}
commit bae2a970817d3693946c5b1d4e2382e56b1e94b8
Author: stack 
Date:   Wed Sep 30 11:48:46 2015 -0700

HBASE-14465 Backport 'Allow rowlock to be reader/write' to branch-1
{noformat}

Bisect log:

{noformat}
bad: [a12d0a861db850ded1a66d6be8e3a4a9d2c76a4f] HBASE-16980 
TestRowProcessorEndpoint failing consistently (Yu Li)

good: [1a305bb4848ebcda2bd7c0df8f2f9c03ddf5b471] Revert "Set down the client 
executor core thread count from 256 in tests: REAPPLY" Revert because missing 
JIRA number. Will reapply with JIRA number in a sec.

bad: [79dcc6c0d1deeed1081a0f6b58f23bc201d88308] HBASE-14432 Procedure V2 - 
enforce ACL on procedure admin tasks (Stephen Yuan Jiang)

bad: [b7ef854fed3dd147b70395a3b296e1a64ad25ac6] HBASE-13876 Improving 
performance of HeapMemoryManager

bad: [e78a7e0806370b03413b29ac24ea81d534067bbc] HBASE-14588 Stop accessing test 
resources from within src folder (Andrew Wang)

good: [f0512c340ef12653574250a2a778517a0f69f1d2] HBASE-14513 TestBucketCache 
runs obnoxious 1k threads in a unit test

bad: [22c87d9644c600788a0df5456333464cba969c49] HBASE-14563 Disable zombie 
TestHFileOutputFormat2

bad: [2445d8595091824fe9bfa3a0243213991ebc722f] HBASE-14519 Purge 
TestFavoredNodeAssignmentHelper, a test for an abandoned feature that can hang

bad: [54b64871fff96b35302f4709154eca6aa2699cf7] HBASE-14512 Cache UGI groups

good: [783477c5dc24cfa0a0829c2ff5e974d3b4332b81] HBASE-14518 Give 
TestScanEarlyTermination the same treatment as 'HBASE-14378 Get 
TestAccessController* passing again...' -- up priority handlers

bad: [bae2a970817d3693946c5b1d4e2382e56b1e94b8] HBASE-14465 Backport 'Allow 
rowlock to be reader/write' to branch-1

good: [1f5663a7f560a222981db2345e2035f749f62f9b] HBASE-14230 replace reflection 
in FSHlog with HdfsDataOutputStream#getCurrentBlockReplication()

first bad commit: [bae2a970817d3693946c5b1d4e2382e56b1e94b8] HBASE-14465 
Backport 'Allow rowlock to be reader/write' to branch-1
{noformat}

I will now double check this with a retest at the point of this commit and then 
the immediate preceding one. 

If this is the culprit we will have an interesting one here [~stack]

/cc [~lhofhansl]

> RegionServer writes invalid META entries for split daughters in some 
> circumstances
> --
>
> Key: HBASE-17069
> URL: https://issues.apache.org/jira/browse/HBASE-17069
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.2.4
>Reporter: Andrew Purtell
>Priority: Critical
> Attachments: daughter_1_d55ef81c2f8299abbddfce0445067830.log, 
> daughter_2_08629d59564726da2497f70451aafcdb.log, logs.tar.gz, 
> parent-393d2bfd8b1c52ce08540306659624f2.log
>
>
> I have been seeing frequent ITBLL failures testing various versions of 1.2.x. 
> Over the lifetime of 1.2.x the following issues have been fixed:
> - HBASE-15315 (Remove always set super user call as high priority)
> - HBASE-16093 (Fix splits failed before creating daughter regions leave meta 
> inconsistent)
> And this one is pending:
> - HBASE-17044 (Fix merge failed before creating merged region leaves meta 
> inconsistent)
> I can apply all of the above to branch-1.2 and still see this failure: 
> *The life of stillborn region d55ef81c2f8299abbddfce0445067830*
> *Master sees SPLITTING_NEW*
> {noformat}
> 2016-11-08 04:23:21,186 INFO  [AM.ZK.Worker-pool2-t82] master.RegionStates: 
> Transition null to {d55ef81c2f8299abbddfce0445067830 state=SPLITTING_NEW, 
> ts=1478579001186, server=node-3.cluster,16020,1478578389506}
> {noformat}
> *The RegionServer creates it*
> {noformat}
> 2016-11-08 04:23:26,035 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for GomnU: blockCache=LruBlockCache{blockCount=34, 
> currentSize=14996112, freeSize=12823716208, maxSize=12838712320, 
> heapSize=14996112, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFactor=0.25}, 
> cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, 
> cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, 
> prefetchOnOpen=false
> 2016-11-08 04:23:26,038 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for big: blockCache=LruBlockCache{blockCount=34, 
> currentSize=14996112, freeSize=12823716208, maxSize=12838712320, 
> heapSize=14996112, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFacto

[jira] [Commented] (HBASE-17069) RegionServer writes invalid META entries for split daughters in some circumstances

2016-11-16 Thread stack (JIRA)

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

stack commented on HBASE-17069:
---

Yes [~apurtell] I'm on board figuring the issue in this commit. We don't want 
to undo the general approach. Could be issue in original. Could be in the 
backport. Thanks for the work sir.

> RegionServer writes invalid META entries for split daughters in some 
> circumstances
> --
>
> Key: HBASE-17069
> URL: https://issues.apache.org/jira/browse/HBASE-17069
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.2.4
>Reporter: Andrew Purtell
>Priority: Critical
> Attachments: daughter_1_d55ef81c2f8299abbddfce0445067830.log, 
> daughter_2_08629d59564726da2497f70451aafcdb.log, logs.tar.gz, 
> parent-393d2bfd8b1c52ce08540306659624f2.log
>
>
> I have been seeing frequent ITBLL failures testing various versions of 1.2.x. 
> Over the lifetime of 1.2.x the following issues have been fixed:
> - HBASE-15315 (Remove always set super user call as high priority)
> - HBASE-16093 (Fix splits failed before creating daughter regions leave meta 
> inconsistent)
> And this one is pending:
> - HBASE-17044 (Fix merge failed before creating merged region leaves meta 
> inconsistent)
> I can apply all of the above to branch-1.2 and still see this failure: 
> *The life of stillborn region d55ef81c2f8299abbddfce0445067830*
> *Master sees SPLITTING_NEW*
> {noformat}
> 2016-11-08 04:23:21,186 INFO  [AM.ZK.Worker-pool2-t82] master.RegionStates: 
> Transition null to {d55ef81c2f8299abbddfce0445067830 state=SPLITTING_NEW, 
> ts=1478579001186, server=node-3.cluster,16020,1478578389506}
> {noformat}
> *The RegionServer creates it*
> {noformat}
> 2016-11-08 04:23:26,035 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for GomnU: blockCache=LruBlockCache{blockCount=34, 
> currentSize=14996112, freeSize=12823716208, maxSize=12838712320, 
> heapSize=14996112, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFactor=0.25}, 
> cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, 
> cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, 
> prefetchOnOpen=false
> 2016-11-08 04:23:26,038 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for big: blockCache=LruBlockCache{blockCount=34, 
> currentSize=14996112, freeSize=12823716208, maxSize=12838712320, 
> heapSize=14996112, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFactor=0.25}, 
> cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, 
> cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, 
> prefetchOnOpen=false
> 2016-11-08 04:23:26,442 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for meta: blockCache=LruBlockCache{blockCount=63, 
> currentSize=17187656, freeSize=12821524664, maxSize=12838712320, 
> heapSize=17187656, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFactor=0.25}, 
> cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, 
> cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, 
> prefetchOnOpen=false
> 2016-11-08 04:23:26,713 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for nwmrW: blockCache=LruBlockCache{blockCount=96, 
> currentSize=19178440, freeSize=12819533880, maxSize=12838712320, 
> heapSize=19178440, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFactor=0.25}, 
> cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, 
> cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, 
> prefetchOnOpen=false
> 2016-11-08 04:23:26,715 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for piwbr: blockCache=LruBlockCache{blockCount=96, 
> currentSize=19178440, freeSize=12819533880, maxSize=12838712320, 
> heapSize=19178440, minSize=12196776960, minFactor=0.95, multiSize=6098388480, 
> multiFactor=0.5, singleSize=3049194240, singleFactor=0.25}, 
> cacheDataOnRead=true, cacheDataOnWrite=false, cacheIndexesOnWrite=false, 
> cacheBloomsOnWrite=false, cacheEvictOnClose=false, cacheDataCompressed=false, 
> prefetchOnOpen=false
> 2016-11-08 04:23:26,717 INFO  
> [StoreOpener-d55ef81c2f8299abbddfce0445067830-1] hfile.CacheConfig: Created 
> cacheConfig for tiny: blockCache=LruBlockCache{blockCount=96, 
> currentSize=19178440, f

[jira] [Commented] (HBASE-14375) define public API for spark integration module

2016-11-16 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-14375:


bq. version(s) of spark we support, version(s) of scala we support

>From a cursory examination, there are two "latest" Spark releases I would 
>expect to be necessary to support: 1.6.3 and 2.0.2. Searching on Maven I see 
>they've pushed up two sets of artifacts for 2.0.2: 
>org.apache.spark:_2.10: and 
>org.apache.spark:_2.11:

Even if we are only supporting the latest Spark, we have two versions of Scala 
to build and link against.


> define public API for spark integration module
> --
>
> Key: HBASE-14375
> URL: https://issues.apache.org/jira/browse/HBASE-14375
> Project: HBase
>  Issue Type: Task
>  Components: spark
>Reporter: Sean Busbey
>Priority: Critical
> Fix For: 2.0.0
>
>
> before we can put the spark integration module into a release, we need to 
> annotate its public api surface.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17082) ForeignExceptionUtil isn’t packaged when building shaded protocol with -Pcompile-protobuf

2016-11-16 Thread stack (JIRA)

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

stack commented on HBASE-17082:
---

Sorry [~chia7712] The README in hbase-protocol-shaded already states you need 
to do 'install' step with   -Dcompile-protobuf (Others talk of compile because 
that is all they need which is confusing but the way it is for now). Am I 
misunderstanding? Thanks.

> ForeignExceptionUtil isn’t packaged when building shaded protocol with 
> -Pcompile-protobuf
> -
>
> Key: HBASE-17082
> URL: https://issues.apache.org/jira/browse/HBASE-17082
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 2.0.0
>Reporter: ChiaPing Tsai
>Assignee: ChiaPing Tsai
> Fix For: 2.0.0
>
> Attachments: 17082_attempted_fix.txt, 17082_attempted_fix2.txt, 
> HBASE-17082.nothing.patch, HBASE-17082.nothing.patch, 
> HBASE-17082.nothing.patch, HBASE-17082.v0.patch, HBASE-17082.v1.patch, 
> patch-unit-hbase-client (after v1.patch).txt, patch-unit-hbase-server (after 
> v1.patch).txt
>
>
> The source folder will be replaced from src/main/java to 
> project.build.directory/protoc-generated-sources when building shaded 
> protocol with -Pcompile-protobuf, but we do not copy the 
> ForeignExceptionUtil. So the final jar lacks the ForeignExceptionUtil and it 
> causes the test error for hbase-client and hbase-server.
> {noformat}
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java:[169,36]
>  cannot find symbol
>   symbol:   class ForeignExceptionUtil
>   location: package org.apache.hadoop.hbase.util
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:[100,36]
>  cannot find symbol
>   symbol:   class ForeignExceptionUtil
>   location: package org.apache.hadoop.hbase.util
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java:[2144,17]
>  cannot find symbol
>   symbol:   variable ForeignExceptionUtil
>   location: class org.apache.hadoop.hbase.regionserver.HRegionServer
> [ERROR] 
> /testptch/hbase/hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java:[938,32]
>  cannot find symbol
>   symbol:   variable ForeignExceptionUtil
>   location: class org.apache.hadoop.hbase.master.MasterRpcServices
> {noformat}
> This bug blocks the patches which are against the hbase-protocol-shaded 
> module. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (HBASE-17112) Prevent setting timestamp of delta operations being same as previous value's

2016-11-16 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-17112:


Test failures in TestHRegion are reproducible.

> Prevent setting timestamp of delta operations being same as previous value's
> 
>
> Key: HBASE-17112
> URL: https://issues.apache.org/jira/browse/HBASE-17112
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 1.1.7, 0.98.23, 1.2.4
>Reporter: Phil Yang
>Assignee: Phil Yang
> Attachments: HBASE-17112-v1.patch
>
>
> In delta operations, Increment and Append. We will read current value first 
> and then write the new whole result into WAL as the type of Put with current 
> timestamp. If the previous ts is larger than current ts, we will use the 
> previous ts.
> If we have two Puts with same TS, we will ignore the Put with lower sequence 
> id. It is not friendly with versioning. And for replication we will drop 
> sequence id  while writing to peer cluster so in the slave we don't know what 
> the order they are being written. If the pushing is disordered, the result 
> will be wrong.
> We can set the new ts to previous+1 if the previous is not less than now.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (HBASE-16998) [Master] Analyze table use reports and update quota violations

2016-11-16 Thread Josh Elser (JIRA)

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

Josh Elser reassigned HBASE-16998:
--

Assignee: Josh Elser

> [Master] Analyze table use reports and update quota violations
> --
>
> Key: HBASE-16998
> URL: https://issues.apache.org/jira/browse/HBASE-16998
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Josh Elser
>Assignee: Josh Elser
>
> Given the collected table usage reports from RegionServers, the Master needs 
> to inspect all filesystem-use quotas and determine which need to move into 
> violation and which need to move out of violation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-1346) Split column names using a delimeter other than space for TableInputFormat

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-1346:
-
Labels: n  (was: )

> Split column names using a delimeter other than space for TableInputFormat 
> ---
>
> Key: HBASE-1346
> URL: https://issues.apache.org/jira/browse/HBASE-1346
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Justin Becker
>  Labels: beginner
>
> Split column names using a delimiter other than space for TableInputFormat.  
> The configure(JobConf) method currently splits column names by the space 
> character.  This prevents scanning by columns where the qualifier contains a 
> space.  For example, "myColumn:some key".  To be consistent with the shell 
> maybe allow the following syntax "['myColumn:some key','myOtherColumn:key']" 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-1346) Split column names using a delimeter other than space for TableInputFormat

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-1346:
-
Labels: newbie  (was: n)

> Split column names using a delimeter other than space for TableInputFormat 
> ---
>
> Key: HBASE-1346
> URL: https://issues.apache.org/jira/browse/HBASE-1346
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Justin Becker
>  Labels: beginner
>
> Split column names using a delimiter other than space for TableInputFormat.  
> The configure(JobConf) method currently splits column names by the space 
> character.  This prevents scanning by columns where the qualifier contains a 
> space.  For example, "myColumn:some key".  To be consistent with the shell 
> maybe allow the following syntax "['myColumn:some key','myOtherColumn:key']" 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-1346) Split column names using a delimeter other than space for TableInputFormat

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-1346:
-
Affects Version/s: 2.0.0

> Split column names using a delimeter other than space for TableInputFormat 
> ---
>
> Key: HBASE-1346
> URL: https://issues.apache.org/jira/browse/HBASE-1346
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Justin Becker
>  Labels: beginner
>
> Split column names using a delimiter other than space for TableInputFormat.  
> The configure(JobConf) method currently splits column names by the space 
> character.  This prevents scanning by columns where the qualifier contains a 
> space.  For example, "myColumn:some key".  To be consistent with the shell 
> maybe allow the following syntax "['myColumn:some key','myOtherColumn:key']" 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-1346) Split column names using a delimeter other than space for TableInputFormat

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-1346:
-
Labels: beginner  (was: newbie)

> Split column names using a delimeter other than space for TableInputFormat 
> ---
>
> Key: HBASE-1346
> URL: https://issues.apache.org/jira/browse/HBASE-1346
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Justin Becker
>  Labels: beginner
>
> Split column names using a delimiter other than space for TableInputFormat.  
> The configure(JobConf) method currently splits column names by the space 
> character.  This prevents scanning by columns where the qualifier contains a 
> space.  For example, "myColumn:some key".  To be consistent with the shell 
> maybe allow the following syntax "['myColumn:some key','myOtherColumn:key']" 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-1346) Split column names using a delimeter other than space for TableInputFormat

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-1346:
-
Affects Version/s: (was: 0.19.1)

> Split column names using a delimeter other than space for TableInputFormat 
> ---
>
> Key: HBASE-1346
> URL: https://issues.apache.org/jira/browse/HBASE-1346
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 2.0.0
>Reporter: Justin Becker
>  Labels: beginner
>
> Split column names using a delimiter other than space for TableInputFormat.  
> The configure(JobConf) method currently splits column names by the space 
> character.  This prevents scanning by columns where the qualifier contains a 
> space.  For example, "myColumn:some key".  To be consistent with the shell 
> maybe allow the following syntax "['myColumn:some key','myOtherColumn:key']" 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-1346) Split column names using a delimeter other than space for TableInputFormat

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-1346:
-
Component/s: mapreduce

> Split column names using a delimeter other than space for TableInputFormat 
> ---
>
> Key: HBASE-1346
> URL: https://issues.apache.org/jira/browse/HBASE-1346
> Project: HBase
>  Issue Type: Improvement
>  Components: mapreduce
>Affects Versions: 2.0.0
>Reporter: Justin Becker
>  Labels: beginner
>
> Split column names using a delimiter other than space for TableInputFormat.  
> The configure(JobConf) method currently splits column names by the space 
> character.  This prevents scanning by columns where the qualifier contains a 
> space.  For example, "myColumn:some key".  To be consistent with the shell 
> maybe allow the following syntax "['myColumn:some key','myOtherColumn:key']" 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (HBASE-16025) Cache table state to reduce load on META

2016-11-16 Thread Gary Helmling (JIRA)

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

Gary Helmling updated HBASE-16025:
--
Priority: Blocker  (was: Critical)

> Cache table state to reduce load on META
> 
>
> Key: HBASE-16025
> URL: https://issues.apache.org/jira/browse/HBASE-16025
> Project: HBase
>  Issue Type: Improvement
>  Components: Client
>Reporter: Gary Helmling
>Assignee: Gary Helmling
>Priority: Blocker
> Fix For: 2.0.0
>
>
> HBASE-12035 moved keeping table enabled/disabled state from ZooKeeper into 
> hbase:meta.  When we retry operations on the client, we check table state in 
> order to return a specific message if the table is disabled.  This means that 
> in master we will be going back to meta for every retry, even if a region's 
> location has not changed.  This is going to cause performance issues when a 
> cluster is already loaded, ie. in cases where regionservers may be returning 
> CallQueueTooBigException.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (HBASE-2213) HCD should only have those fields explicitly set by user while creating tables

2016-11-16 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez resolved HBASE-2213.
--
Resolution: Won't Fix

Stale, re-open if you consider this needs to be implemented.

> HCD should only have those fields explicitly set by user while creating tables
> --
>
> Key: HBASE-2213
> URL: https://issues.apache.org/jira/browse/HBASE-2213
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.20.3
>Reporter: ryan rawson
>
> right now we take the default HCD fields and 'snapshot' them into every HCD.  
> So things like 'BLOCKCACHE' and 'FILESIZE' are in every table, even if they 
> don't differ from the defaults.  If the default changes in a 
> meanful/important way, the user is left with the unenviable task of (a) 
> determining this happened and (b) actually going through and 
> disabling/altering the tables to fix it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


  1   2   3   4   >