[jira] [Commented] (HBASE-10403) Simplify offheap cache configuration

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-10403:
---

+1 on notion; especially stuff like a percentage being applied to the 
XX:MaxDirectMemorySize for BC use.

We'll need to make sure the old configs continue to work after instituting 
these new ones.

On there being less options, I was going to suggest just drop slab cache? 
That'd be one less option.  i've not looked closely at it but going by Nick 
blog post numbers, it does more work to get to same place at least when using 
DoubleBlockCache...and for CombinedBlockCache, BucketCache has more options so 
lets just concentrate on making it work and easy to use and just let go of 
SlabCache?  On the other hand, it is looking like there'll be some more BC' 
implementations to play with before there will be less (HBASE-8894 and if we 
get around to acting on [~vrodionov] suggestions regards cache) so we should 
just deal but let us let go of options that have been superseded.

Agree w/ [~zjushch] comments that exposing CBC and DBC will only confuse 
(Strike DBC since you can set up BucketCache to do L1/L2 as DBC does?).

Maybe have configs:

hbase.block.cache.l1=LruBlockCache
hbase.block.cache.l2=BucketCache
hbase.block.cache.policy=CBC

... or something like that.

Thinking on it, even simpler is just have hbase.block.cache.impl and pass 
LRUBC, or BucketCache, or CBC (they all implement BlockCache interface?)  Add a 
new class if you want to do a new combination.  Keeps it simple.

On the patch:

Looks good. I like the refactorings.  We should refactor that setVictim 
thing... its awkward.  Hack.

+1 moving bucket cache configs into bucket cache class.

Restore the old param below:

-   * @param direct true if allocate direct buffer
+   * @param isDirect true if allocate isDirect buffer

(isDirect is a method name, not a param name)

+1 on moving all the sizing into the class the size applies to.

Patch is great.  Only thing to decide is what for configs?  We have to support 
the old.

> Simplify offheap cache configuration
> 
>
> Key: HBASE-10403
> URL: https://issues.apache.org/jira/browse/HBASE-10403
> Project: HBase
>  Issue Type: Bug
>  Components: io
>Reporter: Nick Dimiduk
>Assignee: Nick Dimiduk
>Priority: Minor
> Attachments: HBASE-10403.0.patch
>
>
> The BucketCache (HBASE-7404) is a very nice piece of functionality which is 
> hidden behind complex configuration. Enabling it currently requires manual 
> calculation of L1 cache. It'd be nice to make this easier to use and conform 
> better with the existing heap management tools we already have.
> Turning it on currently requires explicitly setting LruBlockCache (L1) 
> instance size and IOEngine (L2) size, making sure that L1 size isn't too big 
> vs global memstore and total heap. This is further confused by 
> hbase.bucketcache.size accepting a percentage of total heap OR explicit size 
> in MB. Enabling SlabCache is slightly easier in that it just accepts whatever 
> LruBlockCache is provided.
> Turning on BucketCache using off-heap mode could look like:
> hbase-env.sh:
>  Set HBASE_REGIONSERVER_OPTS:
>   -Xmx5000m
>   -XX:MaxDirectMemorySize=15000m
> hbase-site.xml:
>  - hbase.regionserver.global.memstore.size = 0.7
>  - hbase.regionserver.onheap.blockcache.size = 0.1
>  - hbase.regionserver.blockcache.impl = BucketCache
>  - hbase.bucketcache.ioengine = offheap
> The result being a CombinedCache instance with 500m LruBlockCache + 15000m 
> ByteBufferIOEngine running in direct mode.
> This example does a couple things (mostly for the admin):
>  - knows NOT to enable SlabCache
>  - s/hfile.block.cache.size/hbase.regionserver.onheap.blockcache.size/
>  - maintains the validity of HBaseConfiguration's existing check that global 
> MemStore + LruBlockCache == 0.8
>  - maps "BucketCache" into meaning "a CombinedCache instance with these 
> implementations for L1 and L2."
>  - Figures out appropriate values for hbase.bucketcache.size and 
> hbase.bucketcache.percentage.in.combinedcache



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-11099:
-

[~jeffreyz] I can take second one (should have time to work on closer to this 
weekend).

> Two situations where we could open a region with smaller sequence number
> 
>
> Key: HBASE-11099
> URL: https://issues.apache.org/jira/browse/HBASE-11099
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.99.0
>Reporter: Jeffrey Zhong
> Fix For: 0.99.0
>
>
> Recently I happened to run into code where we potentially could open region 
> with smaller sequence number:
> 1) Inside function: HRegion#internalFlushcache. This is due to we change the 
> way WAL Sync where we use late binding(assign sequence number right before 
> wal sync).
> The flushSeqId may less than the change sequence number included in the flush 
> which may cause later region opening code to use a smaller than expected 
> sequence number when we reopen the region.
> {code}
> flushSeqId = this.sequenceId.incrementAndGet();
> ...
> mvcc.waitForRead(w);
> {code}
> 2) HRegion#replayRecoveredEdits where we have following code:
> {code}
> ...
>   if (coprocessorHost != null) {
> status.setStatus("Running pre-WAL-restore hook in coprocessors");
> if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, 
> val)) {
>   // if bypass this log entry, ignore it ...
>   continue;
> }
>   }
> ...
>   currentEditSeqId = key.getLogSeqNum();
> {code} 
> If coprocessor skip some tail WALEdits, then the function will return smaller 
> currentEditSeqId. In the end, a region may also open with a smaller sequence 
> number. This may cause data loss because Master may record a larger flushed 
> sequence Id and some WALEdits maybe skipped during recovery if the region 
> fail again.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-11099:
---

[~saint@gmail.com]Sure, please go ahead. Thanks.

> Two situations where we could open a region with smaller sequence number
> 
>
> Key: HBASE-11099
> URL: https://issues.apache.org/jira/browse/HBASE-11099
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.99.0
>Reporter: Jeffrey Zhong
> Fix For: 0.99.0
>
>
> Recently I happened to run into code where we potentially could open region 
> with smaller sequence number:
> 1) Inside function: HRegion#internalFlushcache. This is due to we change the 
> way WAL Sync where we use late binding(assign sequence number right before 
> wal sync).
> The flushSeqId may less than the change sequence number included in the flush 
> which may cause later region opening code to use a smaller than expected 
> sequence number when we reopen the region.
> {code}
> flushSeqId = this.sequenceId.incrementAndGet();
> ...
> mvcc.waitForRead(w);
> {code}
> 2) HRegion#replayRecoveredEdits where we have following code:
> {code}
> ...
>   if (coprocessorHost != null) {
> status.setStatus("Running pre-WAL-restore hook in coprocessors");
> if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, 
> val)) {
>   // if bypass this log entry, ignore it ...
>   continue;
> }
>   }
> ...
>   currentEditSeqId = key.getLogSeqNum();
> {code} 
> If coprocessor skip some tail WALEdits, then the function will return smaller 
> currentEditSeqId. In the end, a region may also open with a smaller sequence 
> number. This may cause data loss because Master may record a larger flushed 
> sequence Id and some WALEdits maybe skipped during recovery if the region 
> fail again.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10896) Listing processes, master+regionserver shows as HMaster, others as HRegionServer

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-10896:
-

My point is - I think process name should be not just informative, but also 
parseable by scripts (like _jps | grep blah-blah_)

Something like:

 - hbase_rs - simple RS
 - hbase_m - simple active master
 - hbase_mrs - active master + rs

You think backup master we don't need to display specifically? (also at some 
point.. we would have multiple active masters I guess, so backups would 
naturally go away :))

I can take this one.

> Listing processes, master+regionserver shows as HMaster, others as 
> HRegionServer
> 
>
> Key: HBASE-10896
> URL: https://issues.apache.org/jira/browse/HBASE-10896
> Project: HBase
>  Issue Type: Task
>Reporter: stack
>
> If I do a process listing I see the combined Master and RegionServer as 
> follows:
> 30386 HMaster
> ... and the regionserver only process as:
> 16895 HRegionServer
> Backup masters though they are serving regions show as 'HMaster'.
> Should process now be called 'HBase' instead?
> IntegratonTests IIRC, might kill based off process name so changing process 
> name would mess this up.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10896) Listing processes, master+regionserver shows as HMaster, others as HRegionServer

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-10896:
---

I like your idea [~mantonov].  HMB probably should go away.. so hbase_MRS, 
hbase_RS or something?

> Listing processes, master+regionserver shows as HMaster, others as 
> HRegionServer
> 
>
> Key: HBASE-10896
> URL: https://issues.apache.org/jira/browse/HBASE-10896
> Project: HBase
>  Issue Type: Task
>Reporter: stack
>
> If I do a process listing I see the combined Master and RegionServer as 
> follows:
> 30386 HMaster
> ... and the regionserver only process as:
> 16895 HRegionServer
> Backup masters though they are serving regions show as 'HMaster'.
> Should process now be called 'HBase' instead?
> IntegratonTests IIRC, might kill based off process name so changing process 
> name would mess this up.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11058) call_id seems never present in response

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-11058:
---

[~charlenehelios] You might want to let the HDP folks know...  I was playing w/ 
apache trunk.

> call_id seems never present in response
> ---
>
> Key: HBASE-11058
> URL: https://issues.apache.org/jira/browse/HBASE-11058
> Project: HBase
>  Issue Type: Bug
>Reporter: Charlene Sun
>
> version used: 0.98.1
> call_id seems never present in response, could someone take a look and help?
>  
> message ResponseHeader {
>   optional uint32 call_id = 1;
> message RequestHeader {
>   // Monotonically increasing call_id to keep track of RPC requests and their 
> response
>   optional uint32 call_id = 1;



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Comment Edited] (HBASE-10965) Automate detection of presence of Filter#filterRow()

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-10965 at 4/30/14 4:50 AM:
-

Toward the tail of HBASE-11093, Anoop makes a case that as long as the 
following code is present in HRegion, change in HBASE-11093 w.r.t. 
FilterList#filterRow() cannot be applied:
{code}
private boolean filterRow() throws IOException {
  // when hasFilterRow returns true, filter.filterRow() will be called 
automatically inside
  // filterRowCells(List kvs) so we skip that scenario here.
  return filter != null && (!filter.hasFilterRow())
  && filter.filterRow();
}
{code}
See 
https://issues.apache.org/jira/browse/HBASE-11093?focusedCommentId=13985149&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13985149

I think goal of this JIRA can be achieved without removing hasFilterRow().
New method for autodetecting presence of hasFilterRow() can be added to 
FilterWrapper. We can rely on this new method in place where hasFilterRow() is 
currently called in HRegion.
Post 1.0 release, we can remove hasFilterRow().


was (Author: yuzhih...@gmail.com):
Toward the tail of HBASE-11093, Anoop makes a case that as long as the 
following code is present in HRegion, change in HBASE-11093 w.r.t. 
FilterList#filterRow() cannot be applied:
{code}
private boolean filterRow() throws IOException {
  // when hasFilterRow returns true, filter.filterRow() will be called 
automatically inside
  // filterRowCells(List kvs) so we skip that scenario here.
  return filter != null && (!filter.hasFilterRow())
  && filter.filterRow();
}
{code}
See 
https://issues.apache.org/jira/browse/HBASE-11093?focusedCommentId=13985149&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13985149

I think goal of this JIRA can be achieved without removing hasFilterRow().
New method for autodetecting presence of hasFilterRow() can be added to 
FilterBase. We can rely on this new method in place where hasFilterRow() is 
currently called in HRegion.
Post 1.0 release, we can remove hasFilterRow().

> Automate detection of presence of Filter#filterRow()
> 
>
> Key: HBASE-10965
> URL: https://issues.apache.org/jira/browse/HBASE-10965
> Project: HBase
>  Issue Type: Task
>  Components: Filters
>Reporter: Ted Yu
>Assignee: Ted Yu
> Attachments: 10965-v1.txt, 10965-v2.txt, 10965-v3.txt, 10965-v4.txt
>
>
> There is potential inconsistency between the return value of 
> Filter#hasFilterRow() and presence of Filter#filterRow().
> Filters may override Filter#filterRow() while leaving return value of 
> Filter#hasFilterRow() being false (inherited from FilterBase).
> Downside to purely depending on hasFilterRow() telling us whether custom 
> filter overrides filterRow(List) or filterRow() is that the check below may 
> be rendered ineffective:
> {code}
>   if (nextKv == KV_LIMIT) {
> if (this.filter != null && filter.hasFilterRow()) {
>   throw new IncompatibleFilterException(
> "Filter whose hasFilterRow() returns true is incompatible 
> with scan with limit!");
> }
> {code}
> When user forgets to override hasFilterRow(), the above check becomes not 
> useful.
> This JIRA aims to remove the inconsistency by automatically detecting the 
> presence of overridden Filter#filterRow(). If filterRow() is implemented and 
> not inherited from FilterBase, it is equivalent to having hasFilterRow() 
> return true.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11058) call_id seems never present in response

2014-04-29 Thread Charlene Sun (JIRA)

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

Charlene Sun commented on HBASE-11058:
--

I also see the matching call_id.

It appears the problem only exists in our newest installation which we 
downloaded from http://hortonworks.com/hdp/downloads/  (HDP2.1) earlier this 
month. 

Following packets produced with Cloudera installation and call_id are fine:
request:

 : 17 08 88 c3 05 1a 0f 49 73 4d 61 73 74 65 72 52 ...IsMasterR
0010 : 75 6e 6e 69 6e 67 20 01 00  unning ..

response:

 : 00 00 00 08 04 08 88 c3 05 02 08 01 

Thank you.
charlene

> call_id seems never present in response
> ---
>
> Key: HBASE-11058
> URL: https://issues.apache.org/jira/browse/HBASE-11058
> Project: HBase
>  Issue Type: Bug
>Reporter: Charlene Sun
>
> version used: 0.98.1
> call_id seems never present in response, could someone take a look and help?
>  
> message ResponseHeader {
>   optional uint32 call_id = 1;
> message RequestHeader {
>   // Monotonically increasing call_id to keep track of RPC requests and their 
> response
>   optional uint32 call_id = 1;



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10965) Automate detection of presence of Filter#filterRow()

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-10965:


Toward the tail of HBASE-11093, Anoop makes a case that as long as the 
following code is present in HRegion, change in HBASE-11093 w.r.t. 
FilterList#filterRow() cannot be applied:
{code}
private boolean filterRow() throws IOException {
  // when hasFilterRow returns true, filter.filterRow() will be called 
automatically inside
  // filterRowCells(List kvs) so we skip that scenario here.
  return filter != null && (!filter.hasFilterRow())
  && filter.filterRow();
}
{code}
See 
https://issues.apache.org/jira/browse/HBASE-11093?focusedCommentId=13985149&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13985149

I think goal of this JIRA can be achieved without removing hasFilterRow().
New method for autodetecting presence of hasFilterRow() can be added to 
FilterBase. We can rely on this new method in place where hasFilterRow() is 
currently called in HRegion.
Post 1.0 release, we can remove hasFilterRow().

> Automate detection of presence of Filter#filterRow()
> 
>
> Key: HBASE-10965
> URL: https://issues.apache.org/jira/browse/HBASE-10965
> Project: HBase
>  Issue Type: Task
>  Components: Filters
>Reporter: Ted Yu
>Assignee: Ted Yu
> Attachments: 10965-v1.txt, 10965-v2.txt, 10965-v3.txt, 10965-v4.txt
>
>
> There is potential inconsistency between the return value of 
> Filter#hasFilterRow() and presence of Filter#filterRow().
> Filters may override Filter#filterRow() while leaving return value of 
> Filter#hasFilterRow() being false (inherited from FilterBase).
> Downside to purely depending on hasFilterRow() telling us whether custom 
> filter overrides filterRow(List) or filterRow() is that the check below may 
> be rendered ineffective:
> {code}
>   if (nextKv == KV_LIMIT) {
> if (this.filter != null && filter.hasFilterRow()) {
>   throw new IncompatibleFilterException(
> "Filter whose hasFilterRow() returns true is incompatible 
> with scan with limit!");
> }
> {code}
> When user forgets to override hasFilterRow(), the above check becomes not 
> useful.
> This JIRA aims to remove the inconsistency by automatically detecting the 
> presence of overridden Filter#filterRow(). If filterRow() is implemented and 
> not inherited from FilterBase, it is equivalent to having hasFilterRow() 
> return true.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-11092:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642570/HBASE-11092.diff
  against trunk revision .
  ATTACHMENT ID: 12642570

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 53 new 
or modified tests.

{color:red}-1 patch{color}.  The patch command could not apply the patch.

Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9430//console

This message is automatically generated.

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.diff, HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-11093:


Yes my point is as long as we have above snippet for the BC, we can not do the 
change in the patch.
bq.We should make a decision as to which release drops this snippet.
I am +1 for removing  this in Trunk. Also remove the deprecated APIs in Filter. 
It is not so clean now.. Lets us clean it up for 1.0  Also +1 for removing 
hasFilterRow().  We should send out mail in dev@ and user@ for getting a 
consensus ?


> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10896) Listing processes, master+regionserver shows as HMaster, others as HRegionServer

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-10896:
-

Just "HBase" may be little less informative, than, say, something like - 

"hbase (HMA=y,HMB=n,HRS=y)", where hma and hmb stand for active/backup masters? 
That probably looks ugly but more informative?

> Listing processes, master+regionserver shows as HMaster, others as 
> HRegionServer
> 
>
> Key: HBASE-10896
> URL: https://issues.apache.org/jira/browse/HBASE-10896
> Project: HBase
>  Issue Type: Task
>Reporter: stack
>
> If I do a process listing I see the combined Master and RegionServer as 
> follows:
> 30386 HMaster
> ... and the regionserver only process as:
> 16895 HRegionServer
> Backup masters though they are serving regions show as 'HMaster'.
> Should process now be called 'HBase' instead?
> IntegratonTests IIRC, might kill based off process name so changing process 
> name would mess this up.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-11093:


User filter should follow Filter javadoc, which is clear since 0.96+, and 
implement hasFilterRow() accordingly.
The snippet cited above makes filtering inefficient and somewhat hard to 
predict.

We should make a decision as to which release drops this snippet.

> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10885) Support visibility expressions on Deletes

2014-04-29 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-10885:


Corrected the patch and now all cases passes.

> Support visibility expressions on Deletes
> -
>
> Key: HBASE-10885
> URL: https://issues.apache.org/jira/browse/HBASE-10885
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
>Priority: Blocker
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-10885_1.patch, HBASE-10885_2.patch
>
>
> Accumulo can specify visibility expressions for delete markers. During 
> compaction the cells covered by the tombstone are determined in part by 
> matching the visibility expression. This is useful for the use case of data 
> set coalescing, where entries from multiple data sets carrying different 
> labels are combined into one common large table. Later, a subset of entries 
> can be conveniently removed using visibility expressions.
> Currently doing the same in HBase would only be possible with a custom 
> coprocessor. Otherwise, a Delete will affect all cells covered by the 
> tombstone regardless of any visibility expression scoping. This is correct 
> behavior in that no data spill is possible, but certainly could be 
> surprising, and is only meant to be transitional. We decided not to support 
> visibility expressions on Deletes to control the complexity of the initial 
> implementation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10611) Description for hbase:acl table is wrong on master-status#catalogTables

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-10611:


ABORTED: Integrated in HBase-0.98-on-Hadoop-1.1 #285 (See 
[https://builds.apache.org/job/HBase-0.98-on-Hadoop-1.1/285/])
HBASE-10611 Description for hbase:acl table is wrong on 
master-status#catalogTables (Rekha Joshi) (tedyu: rev 1591069)
* 
/hbase/branches/0.98/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon


> Description for hbase:acl table is wrong on master-status#catalogTables
> ---
>
> Key: HBASE-10611
> URL: https://issues.apache.org/jira/browse/HBASE-10611
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.0
>Reporter: Ted Yu
>Assignee: Rekha Joshi
>Priority: Minor
>  Labels: patch
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10611.1.patch, HBASE-10611.1.patch, 
> HBASE-10611.2.patch
>
>
> On master-status#catalogTables, I see:
> hbase:acl The .NAMESPACE. table holds information about namespaces.
> In MasterStatusTmpl.jamon, we have:
> {code}
> if (tableName.equals(TableName.META_TABLE_NAME)){
> description = "The hbase:meta table holds references to all User 
> Table regions";
> } else {
> description = "The .NAMESPACE. table holds information about 
> namespaces.";
> }
> {code}
> The above check doesn't cover hbase:acl table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10925) Do not OOME, throw RowTooBigException instead

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-10925:


ABORTED: Integrated in HBase-TRUNK #5125 (See 
[https://builds.apache.org/job/HBase-TRUNK/5125/])
HBASE-10925 Do not OOME, throw RowTooBigException instead (Mikhail Antonov) 
(stack: rev 1591154)
* 
/hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
* /hbase/trunk/hbase-common/src/main/resources/hbase-default.xml
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/RowTooBigException.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestRowTooBig.java


> Do not OOME, throw RowTooBigException instead
> -
>
> Key: HBASE-10925
> URL: https://issues.apache.org/jira/browse/HBASE-10925
> Project: HBase
>  Issue Type: Improvement
>  Components: Usability
>Affects Versions: 0.99.0
>Reporter: stack
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-10925.patch, HBASE-10925.patch, HBASE-10925.patch
>
>
> If 10M columns in a row, throw a RowTooBigException rather than OOME when 
> Get'ing or Scanning w/o in-row scan flag set.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10611) Description for hbase:acl table is wrong on master-status#catalogTables

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-10611:


ABORTED: Integrated in HBase-TRUNK #5125 (See 
[https://builds.apache.org/job/HBase-TRUNK/5125/])
HBASE-10611 Description for hbase:acl table is wrong on 
master-status#catalogTables (Rekha Joshi) (tedyu: rev 1591070)
* 
/hbase/trunk/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon


> Description for hbase:acl table is wrong on master-status#catalogTables
> ---
>
> Key: HBASE-10611
> URL: https://issues.apache.org/jira/browse/HBASE-10611
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.0
>Reporter: Ted Yu
>Assignee: Rekha Joshi
>Priority: Minor
>  Labels: patch
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10611.1.patch, HBASE-10611.1.patch, 
> HBASE-10611.2.patch
>
>
> On master-status#catalogTables, I see:
> hbase:acl The .NAMESPACE. table holds information about namespaces.
> In MasterStatusTmpl.jamon, we have:
> {code}
> if (tableName.equals(TableName.META_TABLE_NAME)){
> description = "The hbase:meta table holds references to all User 
> Table regions";
> } else {
> description = "The .NAMESPACE. table holds information about 
> namespaces.";
> }
> {code}
> The above check doesn't cover hbase:acl table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11077) [AccessController] Restore compatible early-out access denial

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-11077:
---

Why undo these as static finals?  That is passing a Strategy instead?

+  String EXEC_PERMISSION_CHECKS_KEY = "hbase.security.exec.permission.checks";

What is default for the above?

You want to do this before commit?

+// XXX: Compare in place, don't clone

I skimmed the patch.  Looks fine Andy.  Nice test.  Release note.

> [AccessController] Restore compatible early-out access denial
> -
>
> Key: HBASE-11077
> URL: https://issues.apache.org/jira/browse/HBASE-11077
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Critical
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-11077.patch, HBASE-11077.patch, HBASE-11077.patch
>
>
> See parent for the whole story.
> For 0.98, to start, just put back the early out that was removed in 0.98.0 
> and allow it to be overridden with a table attribute. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-11093:


In HRegion#RegionScannerImpl
Wherever we call filterRowCells() or filterRow() we have hasFilterRow() checks 
prior to those.. 
{code}
private boolean filterRow() throws IOException {
  // when hasFilterRow returns true, filter.filterRow() will be called 
automatically inside
  // filterRowCells(List kvs) so we skip that scenario here.
  return filter != null && (!filter.hasFilterRow())
  && filter.filterRow();
}
{code}
For BC we make above code. Here even if hasFilterRow is false we have to call 
filterRow().  With this patch, we will fail to call filterRow() right?

> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11088) Support Visibility Expression Deletes in Shell

2014-04-29 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-11088:


bq.I don't think _delete_internal() should take a variable number of arguments. 
Instead deal with variations in command forms with default args to command().
Let me check this.
bq.we just assume whatever is the last string value enumerated in the hash is a 
visibility expression
True, like the args are checked for args[VISIBILITY], need to check here also.  
Anyway if the string is not a VISIBILITY EXPRESSION the server would fail it.


> Support Visibility Expression Deletes in Shell
> --
>
> Key: HBASE-11088
> URL: https://issues.apache.org/jira/browse/HBASE-11088
> Project: HBase
>  Issue Type: Sub-task
>Reporter: ramkrishna.s.vasudevan
>Assignee: ramkrishna.s.vasudevan
>Priority: Blocker
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-11058.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-11099:
---

[~jeffreyz] Good one.  Want me to take the first one as a subtask of this issue?

> Two situations where we could open a region with smaller sequence number
> 
>
> Key: HBASE-11099
> URL: https://issues.apache.org/jira/browse/HBASE-11099
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.99.0
>Reporter: Jeffrey Zhong
> Fix For: 0.99.0
>
>
> Recently I happened to run into code where we potentially could open region 
> with smaller sequence number:
> 1) Inside function: HRegion#internalFlushcache. This is due to we change the 
> way WAL Sync where we use late binding(assign sequence number right before 
> wal sync).
> The flushSeqId may less than the change sequence number included in the flush 
> which may cause later region opening code to use a smaller than expected 
> sequence number when we reopen the region.
> {code}
> flushSeqId = this.sequenceId.incrementAndGet();
> ...
> mvcc.waitForRead(w);
> {code}
> 2) HRegion#replayRecoveredEdits where we have following code:
> {code}
> ...
>   if (coprocessorHost != null) {
> status.setStatus("Running pre-WAL-restore hook in coprocessors");
> if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, 
> val)) {
>   // if bypass this log entry, ignore it ...
>   continue;
> }
>   }
> ...
>   currentEditSeqId = key.getLogSeqNum();
> {code} 
> If coprocessor skip some tail WALEdits, then the function will return smaller 
> currentEditSeqId. In the end, a region may also open with a smaller sequence 
> number. This may cause data loss because Master may record a larger flushed 
> sequence Id and some WALEdits maybe skipped during recovery if the region 
> fail again.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-8763) [BRAINSTORM] Combine MVCC and SeqId

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-8763:
--

You the man [~jeffreyz]

Spelling here waitForPreviousTransactoinsComplete

What is happening here?

 syncOrDefer(txid, durability);
+// Get LogSequenceNumber from WAL Sync
+if(walEdit.getLogKey() != null) {
+  seqNumber.setValue(walEdit.getLogKey().getLogSeqNum());
+}

The seqNumber of the last wallEdit added to the WAL and sync'd?  The seq number 
could be well beyond this in actually?  Does that matter?  Should we let you 
have access to last sync'd id out of WAL?

You import but don't use?

+import org.apache.commons.lang.mutable.MutableInt;
+import org.apache.commons.lang.mutable.MutableLong;

... maybe a few times.

Why you use the MutableLong instead of say a long or a volatile?

Will do a closer review later.  So far looks great.





> [BRAINSTORM] Combine MVCC and SeqId
> ---
>
> Key: HBASE-8763
> URL: https://issues.apache.org/jira/browse/HBASE-8763
> Project: HBase
>  Issue Type: Improvement
>  Components: regionserver
>Reporter: Enis Soztutar
>Assignee: Jeffrey Zhong
>Priority: Critical
> Attachments: hbase-8736-poc.patch, hbase-8763-poc-v1.patch, 
> hbase-8763_wip1.patch
>
>
> HBASE-8701 and a lot of recent issues include good discussions about mvcc + 
> seqId semantics. It seems that having mvcc and the seqId complicates the 
> comparator semantics a lot in regards to flush + WAL replay + compactions + 
> delete markers and out of order puts. 
> Thinking more about it I don't think we need a MVCC write number which is 
> different than the seqId. We can keep the MVCC semantics, read point and 
> smallest read points intact, but combine mvcc write number and seqId. This 
> will allow cleaner semantics + implementation + smaller data files. 
> We can do some brainstorming for 0.98. We still have to verify that this 
> would be semantically correct, it should be so by my current understanding.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10611) Description for hbase:acl table is wrong on master-status#catalogTables

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-10611:


SUCCESS: Integrated in HBase-0.98 #300 (See 
[https://builds.apache.org/job/HBase-0.98/300/])
HBASE-10611 Description for hbase:acl table is wrong on 
master-status#catalogTables (Rekha Joshi) (tedyu: rev 1591069)
* 
/hbase/branches/0.98/hbase-server/src/main/jamon/org/apache/hadoop/hbase/tmpl/master/MasterStatusTmpl.jamon


> Description for hbase:acl table is wrong on master-status#catalogTables
> ---
>
> Key: HBASE-10611
> URL: https://issues.apache.org/jira/browse/HBASE-10611
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.0
>Reporter: Ted Yu
>Assignee: Rekha Joshi
>Priority: Minor
>  Labels: patch
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10611.1.patch, HBASE-10611.1.patch, 
> HBASE-10611.2.patch
>
>
> On master-status#catalogTables, I see:
> hbase:acl The .NAMESPACE. table holds information about namespaces.
> In MasterStatusTmpl.jamon, we have:
> {code}
> if (tableName.equals(TableName.META_TABLE_NAME)){
> description = "The hbase:meta table holds references to all User 
> Table regions";
> } else {
> description = "The .NAMESPACE. table holds information about 
> namespaces.";
> }
> {code}
> The above check doesn't cover hbase:acl table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11006) Cannot create 'data' table

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-11006:
---

{color:green}+1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642575/HBASE-11006-v4.patch
  against trunk revision .
  ATTACHMENT ID: 12642575

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 3 new 
or modified tests.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9428//console

This message is automatically generated.

> Cannot create 'data' table
> --
>
> Key: HBASE-11006
> URL: https://issues.apache.org/jira/browse/HBASE-11006
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.0
>Reporter: Gregory Hart
>Assignee: Gustavo Anatoly
>  Labels: noob
> Fix For: 0.99.0
>
> Attachments: HBASE-11006-v2.patch, HBASE-11006-v3.patch, 
> HBASE-11006-v4.patch, HBASE-11006.patch
>
>
> Starting with HBase 0.96, it is not possible to create a table named 'data'. 
> When a user tries to create a table named 'data', the table is added to the 
> metastore but the region server fails to open the region.
> To reproduce, I just run “hbase shell” and type in:
> create ‘data’, ‘cf’
> This was also verified on Apache HBase trunk by Enis from the Hortornworks 
> forums. His comment on the bug:
> There has been a change in the directory layout in HBase 0.96 for introducing 
> namespaces. The HBase root directory now keeps all table data under the 
> sub-directory “data”. I suspect the error is somewhere there.
> More info can be found on the thread in the Hortornworks forums:
> http://hortonworks.com/community/forums/topic/cannot-create-data-table/



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-8763) [BRAINSTORM] Combine MVCC and SeqId

2014-04-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-8763:
--

Great to see progress Jeffrey. 

As talked offline, I think we do not want to allocate 2 objects on heap rather 
than one: 
{code}
-  private long mvcc = 0;  // this value is not part of a serialized KeyValue 
(not in HFiles)
+  private MutableLong mvcc;  // this value is not part of a serialized 
KeyValue (not in HFiles)
{code}
Although, changing the mvcc long after object construction may require it to be 
declared volatile. 
I think you are using the technique of double incrementing the seqId, once at 
trx start and once at end right? Did you try your "append 1B to seqId for 
memstore" approach? 

I think I also changed Cell.getMvcc() to Cell.getSeqId(). Maybe worth doing 
once we get the patch fully running and performant. 


> [BRAINSTORM] Combine MVCC and SeqId
> ---
>
> Key: HBASE-8763
> URL: https://issues.apache.org/jira/browse/HBASE-8763
> Project: HBase
>  Issue Type: Improvement
>  Components: regionserver
>Reporter: Enis Soztutar
>Assignee: Jeffrey Zhong
>Priority: Critical
> Attachments: hbase-8736-poc.patch, hbase-8763-poc-v1.patch, 
> hbase-8763_wip1.patch
>
>
> HBASE-8701 and a lot of recent issues include good discussions about mvcc + 
> seqId semantics. It seems that having mvcc and the seqId complicates the 
> comparator semantics a lot in regards to flush + WAL replay + compactions + 
> delete markers and out of order puts. 
> Thinking more about it I don't think we need a MVCC write number which is 
> different than the seqId. We can keep the MVCC semantics, read point and 
> smallest read points intact, but combine mvcc write number and seqId. This 
> will allow cleaner semantics + implementation + smaller data files. 
> We can do some brainstorming for 0.98. We still have to verify that this 
> would be semantically correct, it should be so by my current understanding.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10841) Scan setters should consistently return this

2014-04-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-10841:
---

HBASE-10460 was the issue. 

Doing this would break binary BC. I think we are fine with breaking BC between 
0.98 and 1.0 as long as we retain wire compat. 



> Scan setters should consistently return this
> 
>
> Key: HBASE-10841
> URL: https://issues.apache.org/jira/browse/HBASE-10841
> Project: HBase
>  Issue Type: Sub-task
>  Components: Client, Usability
>Affects Versions: 0.99.0
>Reporter: Nick Dimiduk
>Priority: Minor
>
> While addressing review comments on HBASE-10818, I noticed that our {{Scan}} 
> class is inconsistent with it's setter methods. Some of them return {{this}}, 
> other's don't. They should be consistent. I suggest making them all return 
> {{this}}, to support chained invocation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-8763) [BRAINSTORM] Combine MVCC and SeqId

2014-04-29 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong updated HBASE-8763:
-

Attachment: hbase-8763-poc-v1.patch

This is updated POC version. All small/medium tests including 
TestAtomicOperation are passed except TestExportSnapshot. I'll try to fix it 
soon. Thanks. 

> [BRAINSTORM] Combine MVCC and SeqId
> ---
>
> Key: HBASE-8763
> URL: https://issues.apache.org/jira/browse/HBASE-8763
> Project: HBase
>  Issue Type: Improvement
>  Components: regionserver
>Reporter: Enis Soztutar
>Assignee: Jeffrey Zhong
>Priority: Critical
> Attachments: hbase-8736-poc.patch, hbase-8763-poc-v1.patch, 
> hbase-8763_wip1.patch
>
>
> HBASE-8701 and a lot of recent issues include good discussions about mvcc + 
> seqId semantics. It seems that having mvcc and the seqId complicates the 
> comparator semantics a lot in regards to flush + WAL replay + compactions + 
> delete markers and out of order puts. 
> Thinking more about it I don't think we need a MVCC write number which is 
> different than the seqId. We can keep the MVCC semantics, read point and 
> smallest read points intact, but combine mvcc write number and seqId. This 
> will allow cleaner semantics + implementation + smaller data files. 
> We can do some brainstorming for 0.98. We still have to verify that this 
> would be semantically correct, it should be so by my current understanding.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10856) Prep for 1.0

2014-04-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-10856:
--

Fix Version/s: 0.99.0

> Prep for 1.0
> 
>
> Key: HBASE-10856
> URL: https://issues.apache.org/jira/browse/HBASE-10856
> Project: HBase
>  Issue Type: Umbrella
>Reporter: stack
> Fix For: 0.99.0
>
>
> Tasks for 1.0 copied here from our '1.0.0' mailing list discussion.  Idea is 
> to file subtasks off this one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11096) stop method of Master and RegionServer coprocessor is not invoked

2014-04-29 Thread Qiang Tian (JIRA)

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

Qiang Tian commented on HBASE-11096:


Hi [~apurtell],
Thanks for response.

Yes, I will. the fix is simple.. this is part of work for HBASE-10289, 
during my test I just find another small bug--the HRegionServer.stop is called 
twice, the fix looks simple as well, but I better study the related code 
first..:-)


the first time:
HRegionServer.run:
  } else if (this.stopping) {
boolean allUserRegionsOffline = areAllUserRegionsOffline();
if (allUserRegionsOffline) {
  // Set stopped if no requests since last time we went around the 
loop.
  // The remaining meta regions will be closed on our way out.
  if (oldRequestCount == this.requestCount.get()) {
stop("Stopped; only catalog regions remaining online");
break;
  }


the second time in shutdown hook:
   at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.shutdown(CoprocessorHost.java:273)
at 
org.apache.hadoop.hbase.regionserver.RegionServerCoprocessorHost.preStop(RegionServerCoproces
sorHost.java:63)
at 
org.apache.hadoop.hbase.regionserver.HRegionServer.stop(HRegionServer.java:1680)
at 
org.apache.hadoop.hbase.regionserver.ShutdownHook$ShutdownHookThread.run(ShutdownHook.java:114)
at 
org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:54)
2014-04-29 18:56:02,617 WARN 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost: Not stopping coprocess
or org.apache.hadoop.hbase.jmxAgent because not active (state=STOPPED)
2014-04-29 18:56:02,617 INFO 
org.apache.hadoop.hbase.regionserver.HRegionServer: STOPPED: Shutdown hook
2014-04-29 18:56:02,617 INFO org.apache.hadoop.hbase.regionserver.ShutdownHook: 
Starting fs shutdown hoo
k thread.

> stop method of Master and RegionServer coprocessor  is not invoked
> --
>
> Key: HBASE-11096
> URL: https://issues.apache.org/jira/browse/HBASE-11096
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.19
>Reporter: Qiang Tian
>Assignee: Qiang Tian
> Fix For: 0.99.0, 0.96.3, 0.94.20, 0.98.3
>
>
> the stop method of coprocessor specified by 
> "hbase.coprocessor.master.classes" and  
> "hbase.coprocessor.regionserver.classes"  is not invoked.
> If coprocessor allocates OS resources, it could cause master/regionserver 
> resource leak or hang during exit.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Assigned] (HBASE-8763) [BRAINSTORM] Combine MVCC and SeqId

2014-04-29 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong reassigned HBASE-8763:


Assignee: Jeffrey Zhong

> [BRAINSTORM] Combine MVCC and SeqId
> ---
>
> Key: HBASE-8763
> URL: https://issues.apache.org/jira/browse/HBASE-8763
> Project: HBase
>  Issue Type: Improvement
>  Components: regionserver
>Reporter: Enis Soztutar
>Assignee: Jeffrey Zhong
>Priority: Critical
> Attachments: hbase-8736-poc.patch, hbase-8763_wip1.patch
>
>
> HBASE-8701 and a lot of recent issues include good discussions about mvcc + 
> seqId semantics. It seems that having mvcc and the seqId complicates the 
> comparator semantics a lot in regards to flush + WAL replay + compactions + 
> delete markers and out of order puts. 
> Thinking more about it I don't think we need a MVCC write number which is 
> different than the seqId. We can keep the MVCC semantics, read point and 
> smallest read points intact, but combine mvcc write number and seqId. This 
> will allow cleaner semantics + implementation + smaller data files. 
> We can do some brainstorming for 0.98. We still have to verify that this 
> would be semantically correct, it should be so by my current understanding.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-11099:
---

Yes, that's correct.

> Two situations where we could open a region with smaller sequence number
> 
>
> Key: HBASE-11099
> URL: https://issues.apache.org/jira/browse/HBASE-11099
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.99.0
>Reporter: Jeffrey Zhong
> Fix For: 0.99.0
>
>
> Recently I happened to run into code where we potentially could open region 
> with smaller sequence number:
> 1) Inside function: HRegion#internalFlushcache. This is due to we change the 
> way WAL Sync where we use late binding(assign sequence number right before 
> wal sync).
> The flushSeqId may less than the change sequence number included in the flush 
> which may cause later region opening code to use a smaller than expected 
> sequence number when we reopen the region.
> {code}
> flushSeqId = this.sequenceId.incrementAndGet();
> ...
> mvcc.waitForRead(w);
> {code}
> 2) HRegion#replayRecoveredEdits where we have following code:
> {code}
> ...
>   if (coprocessorHost != null) {
> status.setStatus("Running pre-WAL-restore hook in coprocessors");
> if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, 
> val)) {
>   // if bypass this log entry, ignore it ...
>   continue;
> }
>   }
> ...
>   currentEditSeqId = key.getLogSeqNum();
> {code} 
> If coprocessor skip some tail WALEdits, then the function will return smaller 
> currentEditSeqId. In the end, a region may also open with a smaller sequence 
> number. This may cause data loss because Master may record a larger flushed 
> sequence Id and some WALEdits maybe skipped during recovery if the region 
> fail again.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-11099:
--

Fix Version/s: 0.99.0

> Two situations where we could open a region with smaller sequence number
> 
>
> Key: HBASE-11099
> URL: https://issues.apache.org/jira/browse/HBASE-11099
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.99.0
>Reporter: Jeffrey Zhong
> Fix For: 0.99.0
>
>
> Recently I happened to run into code where we potentially could open region 
> with smaller sequence number:
> 1) Inside function: HRegion#internalFlushcache. This is due to we change the 
> way WAL Sync where we use late binding(assign sequence number right before 
> wal sync).
> The flushSeqId may less than the change sequence number included in the flush 
> which may cause later region opening code to use a smaller than expected 
> sequence number when we reopen the region.
> {code}
> flushSeqId = this.sequenceId.incrementAndGet();
> ...
> mvcc.waitForRead(w);
> {code}
> 2) HRegion#replayRecoveredEdits where we have following code:
> {code}
> ...
>   if (coprocessorHost != null) {
> status.setStatus("Running pre-WAL-restore hook in coprocessors");
> if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, 
> val)) {
>   // if bypass this log entry, ignore it ...
>   continue;
> }
>   }
> ...
>   currentEditSeqId = key.getLogSeqNum();
> {code} 
> If coprocessor skip some tail WALEdits, then the function will return smaller 
> currentEditSeqId. In the end, a region may also open with a smaller sequence 
> number. This may cause data loss because Master may record a larger flushed 
> sequence Id and some WALEdits maybe skipped during recovery if the region 
> fail again.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-11099:
---

My understanding is that 1) only applies to trunk with the disruptor changes. 
2) applies to 0.98 as well. Is that right Jeffrey ? 

> Two situations where we could open a region with smaller sequence number
> 
>
> Key: HBASE-11099
> URL: https://issues.apache.org/jira/browse/HBASE-11099
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.99.0
>Reporter: Jeffrey Zhong
> Fix For: 0.99.0
>
>
> Recently I happened to run into code where we potentially could open region 
> with smaller sequence number:
> 1) Inside function: HRegion#internalFlushcache. This is due to we change the 
> way WAL Sync where we use late binding(assign sequence number right before 
> wal sync).
> The flushSeqId may less than the change sequence number included in the flush 
> which may cause later region opening code to use a smaller than expected 
> sequence number when we reopen the region.
> {code}
> flushSeqId = this.sequenceId.incrementAndGet();
> ...
> mvcc.waitForRead(w);
> {code}
> 2) HRegion#replayRecoveredEdits where we have following code:
> {code}
> ...
>   if (coprocessorHost != null) {
> status.setStatus("Running pre-WAL-restore hook in coprocessors");
> if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, 
> val)) {
>   // if bypass this log entry, ignore it ...
>   continue;
> }
>   }
> ...
>   currentEditSeqId = key.getLogSeqNum();
> {code} 
> If coprocessor skip some tail WALEdits, then the function will return smaller 
> currentEditSeqId. In the end, a region may also open with a smaller sequence 
> number. This may cause data loss because Master may record a larger flushed 
> sequence Id and some WALEdits maybe skipped during recovery if the region 
> fail again.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (HBASE-11099) Two situations where we could open a region with smaller sequence number

2014-04-29 Thread Jeffrey Zhong (JIRA)
Jeffrey Zhong created HBASE-11099:
-

 Summary: Two situations where we could open a region with smaller 
sequence number
 Key: HBASE-11099
 URL: https://issues.apache.org/jira/browse/HBASE-11099
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.99.0
Reporter: Jeffrey Zhong


Recently I happened to run into code where we potentially could open region 
with smaller sequence number:

1) Inside function: HRegion#internalFlushcache. This is due to we change the 
way WAL Sync where we use late binding(assign sequence number right before wal 
sync).
The flushSeqId may less than the change sequence number included in the flush 
which may cause later region opening code to use a smaller than expected 
sequence number when we reopen the region.
{code}
flushSeqId = this.sequenceId.incrementAndGet();
...
mvcc.waitForRead(w);
{code}

2) HRegion#replayRecoveredEdits where we have following code:
{code}
...
  if (coprocessorHost != null) {
status.setStatus("Running pre-WAL-restore hook in coprocessors");
if (coprocessorHost.preWALRestore(this.getRegionInfo(), key, val)) {
  // if bypass this log entry, ignore it ...
  continue;
}
  }
...
  currentEditSeqId = key.getLogSeqNum();
{code} 
If coprocessor skip some tail WALEdits, then the function will return smaller 
currentEditSeqId. In the end, a region may also open with a smaller sequence 
number. This may cause data loss because Master may record a larger flushed 
sequence Id and some WALEdits maybe skipped during recovery if the region fail 
again.




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11084) Handle deletions and column tracking using internal filters rather than using DeleteTrackers and ColumnTrackers

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11084:


Interesting idea!

> Handle deletions and column tracking using internal filters rather than using 
> DeleteTrackers and ColumnTrackers
> ---
>
> Key: HBASE-11084
> URL: https://issues.apache.org/jira/browse/HBASE-11084
> Project: HBase
>  Issue Type: Improvement
>Reporter: ramkrishna.s.vasudevan
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0
>
>
> See HBASE-11054 for discussion.  
> Currently the delete tracking is done by DeleteTracker and its subclasses.  
> column tracking and its versions are handled inside the ColumnTrackers and 
> its subclasses. 
> This JIRA aims at providing internal filters and attaching them to 
> scans/gets, including minor and major compaction scans so that all the logic 
> of deletes and version counting goes into it rather than having trackers.  



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11096) stop method of Master and RegionServer coprocessor is not invoked

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11096:


Hi [~tianq], thanks for reporting the issue. Are you planning to provide a 
patch?

> stop method of Master and RegionServer coprocessor  is not invoked
> --
>
> Key: HBASE-11096
> URL: https://issues.apache.org/jira/browse/HBASE-11096
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.19
>Reporter: Qiang Tian
>Assignee: Qiang Tian
> Fix For: 0.99.0, 0.96.3, 0.94.20, 0.98.3
>
>
> the stop method of coprocessor specified by 
> "hbase.coprocessor.master.classes" and  
> "hbase.coprocessor.regionserver.classes"  is not invoked.
> If coprocessor allocates OS resources, it could cause master/regionserver 
> resource leak or hang during exit.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11096) stop method of Master and RegionServer coprocessor is not invoked

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11096:
---

Affects Version/s: 0.96.2
   0.98.1
   0.94.19
Fix Version/s: 0.98.3
   0.94.20
   0.96.3
   0.99.0

> stop method of Master and RegionServer coprocessor  is not invoked
> --
>
> Key: HBASE-11096
> URL: https://issues.apache.org/jira/browse/HBASE-11096
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.19
>Reporter: Qiang Tian
>Assignee: Qiang Tian
> Fix For: 0.99.0, 0.96.3, 0.94.20, 0.98.3
>
>
> the stop method of coprocessor specified by 
> "hbase.coprocessor.master.classes" and  
> "hbase.coprocessor.regionserver.classes"  is not invoked.
> If coprocessor allocates OS resources, it could cause master/regionserver 
> resource leak or hang during exit.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11077) [AccessController] Restore compatible early-out access denial

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


Rolling the 0.98.2 RC0 tomorrow. Review would be very much welcomed because I 
think this is ready to go (modulo addressing review comments if any) and so 
will otherwise commit this tomorrow for the RC.

> [AccessController] Restore compatible early-out access denial
> -
>
> Key: HBASE-11077
> URL: https://issues.apache.org/jira/browse/HBASE-11077
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Critical
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-11077.patch, HBASE-11077.patch, HBASE-11077.patch
>
>
> See parent for the whole story.
> For 0.98, to start, just put back the early out that was removed in 0.98.0 
> and allow it to be overridden with a table attribute. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11088) Support Visibility Expression Deletes in Shell

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11088:
---

 Priority: Blocker  (was: Major)
Fix Version/s: (was: 0.98.2)
   0.98.3

Rolling the 0.98.2 RC0 tommorrow. This looks almost ready but not quite. No 
problem, making a blocker for 0.98.3, we can get in in there for sure. The 
integration test for deletes-with-visibility is slotted for 0.98.3 anyhow.

> Support Visibility Expression Deletes in Shell
> --
>
> Key: HBASE-11088
> URL: https://issues.apache.org/jira/browse/HBASE-11088
> Project: HBase
>  Issue Type: Sub-task
>Reporter: ramkrishna.s.vasudevan
>Assignee: ramkrishna.s.vasudevan
>Priority: Blocker
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-11058.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10885) Support visibility expressions on Deletes

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10885:
---

 Priority: Blocker  (was: Critical)
Fix Version/s: (was: 0.98.2)
   0.98.3

Rolling the 0.98.2 RC0 tommorrow. This looks almost ready but not quite. No 
problem, making a blocker for 0.98.3, we can get in in there for sure. The 
integration test for deletes-with-visibility is slotted for 0.98.3 anyhow.

> Support visibility expressions on Deletes
> -
>
> Key: HBASE-10885
> URL: https://issues.apache.org/jira/browse/HBASE-10885
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
>Priority: Blocker
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-10885_1.patch, HBASE-10885_2.patch
>
>
> Accumulo can specify visibility expressions for delete markers. During 
> compaction the cells covered by the tombstone are determined in part by 
> matching the visibility expression. This is useful for the use case of data 
> set coalescing, where entries from multiple data sets carrying different 
> labels are combined into one common large table. Later, a subset of entries 
> can be conveniently removed using visibility expressions.
> Currently doing the same in HBase would only be possible with a custom 
> coprocessor. Otherwise, a Delete will affect all cells covered by the 
> tombstone regardless of any visibility expression scoping. This is correct 
> behavior in that no data spill is possible, but certainly could be 
> surprising, and is only meant to be transitional. We decided not to support 
> visibility expressions on Deletes to control the complexity of the initial 
> implementation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10885) Support visibility expressions on Deletes

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-10885:


Will review patch after we have a clean run of o.a.h.h.security.visibility.* 
tests.

> Support visibility expressions on Deletes
> -
>
> Key: HBASE-10885
> URL: https://issues.apache.org/jira/browse/HBASE-10885
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
>Priority: Critical
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10885_1.patch, HBASE-10885_2.patch
>
>
> Accumulo can specify visibility expressions for delete markers. During 
> compaction the cells covered by the tombstone are determined in part by 
> matching the visibility expression. This is useful for the use case of data 
> set coalescing, where entries from multiple data sets carrying different 
> labels are combined into one common large table. Later, a subset of entries 
> can be conveniently removed using visibility expressions.
> Currently doing the same in HBase would only be possible with a custom 
> coprocessor. Otherwise, a Delete will affect all cells covered by the 
> tombstone regardless of any visibility expression scoping. This is correct 
> behavior in that no data spill is possible, but certainly could be 
> surprising, and is only meant to be transitional. We decided not to support 
> visibility expressions on Deletes to control the complexity of the initial 
> implementation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11088) Support Visibility Expression Deletes in Shell

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11088:


There are a couple of issues with argument handling.

- Something called "timestamp" is not guaranteed to be a timestamp, it could be 
a hash meaning something entirely else. 

- If no timestamp is provided but the option hash is, then we don't check if 
the key is "VISIBILITY", we just assume whatever is the last string value 
enumerated in the hash is a visibility expression. That's not correct, but also 
I can see other delete options being added later via this new hash. 

I don't think _delete_internal() should take a variable number of arguments. 
Instead deal with variations in command forms  with default args to command(). 
Then it's easy to fix the above mentioned issues. 

> Support Visibility Expression Deletes in Shell
> --
>
> Key: HBASE-11088
> URL: https://issues.apache.org/jira/browse/HBASE-11088
> Project: HBase
>  Issue Type: Sub-task
>Reporter: ramkrishna.s.vasudevan
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-11058.patch
>
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11006) Cannot create 'data' table

2014-04-29 Thread Gustavo Anatoly (JIRA)

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

Gustavo Anatoly updated HBASE-11006:


Attachment: HBASE-11006-v4.patch

Failed test, corrected: 
TestSplitTransactionOnCluster#testSplitRegionWithNoStoreFiles

> Cannot create 'data' table
> --
>
> Key: HBASE-11006
> URL: https://issues.apache.org/jira/browse/HBASE-11006
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.0
>Reporter: Gregory Hart
>Assignee: Gustavo Anatoly
>  Labels: noob
> Fix For: 0.99.0
>
> Attachments: HBASE-11006-v2.patch, HBASE-11006-v3.patch, 
> HBASE-11006-v4.patch, HBASE-11006.patch
>
>
> Starting with HBase 0.96, it is not possible to create a table named 'data'. 
> When a user tries to create a table named 'data', the table is added to the 
> metastore but the region server fails to open the region.
> To reproduce, I just run “hbase shell” and type in:
> create ‘data’, ‘cf’
> This was also verified on Apache HBase trunk by Enis from the Hortornworks 
> forums. His comment on the bug:
> There has been a change in the directory layout in HBase 0.96 for introducing 
> namespaces. The HBase root directory now keeps all table data under the 
> sub-directory “data”. I suspect the error is somewhere there.
> More info can be found on the thread in the Hortornworks forums:
> http://hortonworks.com/community/forums/topic/cannot-create-data-table/



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11077) [AccessController] Restore compatible early-out access denial

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


Latest patch includes new tests that verify the backwards compatible behavior 
toggle in HTableDescriptor and "cell first" ACL evaluation strategy under both 
regimes. All AccessController tests pass.

> [AccessController] Restore compatible early-out access denial
> -
>
> Key: HBASE-11077
> URL: https://issues.apache.org/jira/browse/HBASE-11077
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Critical
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-11077.patch, HBASE-11077.patch, HBASE-11077.patch
>
>
> See parent for the whole story.
> For 0.98, to start, just put back the early out that was removed in 0.98.0 
> and allow it to be overridden with a table attribute. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10935) support snapshot policy where flush memstore can be skipped to prevent production cluster freeze

2014-04-29 Thread Tianying Chang (JIRA)

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

Tianying Chang updated HBASE-10935:
---

Attachment: jira-10935.patch

> support snapshot policy where flush memstore can be skipped to prevent 
> production cluster freeze
> 
>
> Key: HBASE-10935
> URL: https://issues.apache.org/jira/browse/HBASE-10935
> Project: HBase
>  Issue Type: New Feature
>  Components: shell, snapshots
>Affects Versions: 0.94.7, 0.94.18
>Reporter: Tianying Chang
>Assignee: Tianying Chang
>Priority: Minor
> Fix For: 0.94.20
>
> Attachments: jira-10935.patch
>
>
> We are using snapshot feature to do HBase disaster recovery. We will do 
> snapshot in our production cluster periodically. The current flush snapshot 
> policy require all regions of the table to coordinate to prevent write and do 
> flush at the same time. Since we use WALPlayer to complete the data that is 
> not in the snapshot HFile, we don't need the snapshot to do coordinated 
> flush. The snapshot just recored all the HFile that are already there. 
> I added the parameter in the HBase shell. So people can choose to use the 
> NoFlush snapshot when they need, like below. Otherwise, the default flush 
> snpahot support is not impacted. 
> >snaphot 'TestTable', 'TestSnapshot', 'skipFlush'



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10935) support snapshot policy where flush memstore can be skipped to prevent production cluster freeze

2014-04-29 Thread Tianying Chang (JIRA)

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

Tianying Chang updated HBASE-10935:
---

Attachment: (was: HBase-10935.patch)

> support snapshot policy where flush memstore can be skipped to prevent 
> production cluster freeze
> 
>
> Key: HBASE-10935
> URL: https://issues.apache.org/jira/browse/HBASE-10935
> Project: HBase
>  Issue Type: New Feature
>  Components: shell, snapshots
>Affects Versions: 0.94.7, 0.94.18
>Reporter: Tianying Chang
>Assignee: Tianying Chang
>Priority: Minor
> Fix For: 0.94.20
>
> Attachments: jira-10935.patch
>
>
> We are using snapshot feature to do HBase disaster recovery. We will do 
> snapshot in our production cluster periodically. The current flush snapshot 
> policy require all regions of the table to coordinate to prevent write and do 
> flush at the same time. Since we use WALPlayer to complete the data that is 
> not in the snapshot HFile, we don't need the snapshot to do coordinated 
> flush. The snapshot just recored all the HFile that are already there. 
> I added the parameter in the HBase shell. So people can choose to use the 
> NoFlush snapshot when they need, like below. Otherwise, the default flush 
> snpahot support is not impacted. 
> >snaphot 'TestTable', 'TestSnapshot', 'skipFlush'



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10935) support snapshot policy where flush memstore can be skipped to prevent production cluster freeze

2014-04-29 Thread Tianying Chang (JIRA)

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

Tianying Chang updated HBASE-10935:
---

Attachment: (was: HBase-10935.patch)

> support snapshot policy where flush memstore can be skipped to prevent 
> production cluster freeze
> 
>
> Key: HBASE-10935
> URL: https://issues.apache.org/jira/browse/HBASE-10935
> Project: HBase
>  Issue Type: New Feature
>  Components: shell, snapshots
>Affects Versions: 0.94.7, 0.94.18
>Reporter: Tianying Chang
>Assignee: Tianying Chang
>Priority: Minor
> Fix For: 0.94.20
>
> Attachments: jira-10935.patch
>
>
> We are using snapshot feature to do HBase disaster recovery. We will do 
> snapshot in our production cluster periodically. The current flush snapshot 
> policy require all regions of the table to coordinate to prevent write and do 
> flush at the same time. Since we use WALPlayer to complete the data that is 
> not in the snapshot HFile, we don't need the snapshot to do coordinated 
> flush. The snapshot just recored all the HFile that are already there. 
> I added the parameter in the HBase shell. So people can choose to use the 
> NoFlush snapshot when they need, like below. Otherwise, the default flush 
> snpahot support is not impacted. 
> >snaphot 'TestTable', 'TestSnapshot', 'skipFlush'



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11077) [AccessController] Restore compatible early-out access denial

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11077:
---

Attachment: HBASE-11077.patch

> [AccessController] Restore compatible early-out access denial
> -
>
> Key: HBASE-11077
> URL: https://issues.apache.org/jira/browse/HBASE-11077
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Critical
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-11077.patch, HBASE-11077.patch, HBASE-11077.patch
>
>
> See parent for the whole story.
> For 0.98, to start, just put back the early out that was removed in 0.98.0 
> and allow it to be overridden with a table attribute. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov updated HBASE-11092:


Attachment: HBASE-11092.diff

updated patch, made base consensus provider abstract

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.diff, HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10925) Do not OOME, throw RowTooBigException instead

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-10925:
-

Thanks!

> Do not OOME, throw RowTooBigException instead
> -
>
> Key: HBASE-10925
> URL: https://issues.apache.org/jira/browse/HBASE-10925
> Project: HBase
>  Issue Type: Improvement
>  Components: Usability
>Affects Versions: 0.99.0
>Reporter: stack
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-10925.patch, HBASE-10925.patch, HBASE-10925.patch
>
>
> If 10M columns in a row, throw a RowTooBigException rather than OOME when 
> Get'ing or Scanning w/o in-row scan flag set.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10925) Do not OOME, throw RowTooBigException instead

2014-04-29 Thread stack (JIRA)

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

stack updated HBASE-10925:
--

Resolution: Fixed
Status: Resolved  (was: Patch Available)

Committed to trunk.  Thanks for the patch [~mantonov]

> Do not OOME, throw RowTooBigException instead
> -
>
> Key: HBASE-10925
> URL: https://issues.apache.org/jira/browse/HBASE-10925
> Project: HBase
>  Issue Type: Improvement
>  Components: Usability
>Affects Versions: 0.99.0
>Reporter: stack
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-10925.patch, HBASE-10925.patch, HBASE-10925.patch
>
>
> If 10M columns in a row, throw a RowTooBigException rather than OOME when 
> Get'ing or Scanning w/o in-row scan flag set.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11098) Improve documentation around our blockcache options

2014-04-29 Thread stack (JIRA)

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

stack updated HBASE-11098:
--

Attachment: 11098.txt

WIP

Adds doc to the config keys in CacheConfig explaining how each works.

Add package-info for bucket cache package and the hfile package.

Misc javadoc and formatting cleanup.

Removed unused RandomSee test class and the unused SimpleBlockCache.



> Improve documentation around our blockcache options
> ---
>
> Key: HBASE-11098
> URL: https://issues.apache.org/jira/browse/HBASE-11098
> Project: HBase
>  Issue Type: Sub-task
>  Components: documentation
>Reporter: stack
>Assignee: stack
> Attachments: 11098.txt
>
>
> Adding as a subtask on [~ndimiduk] necessary cleanup.  Trying to make sense 
> of this stuff I started adding doc (package-info files, javadoc).  I see this 
> as complementary to the parent task work.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (HBASE-11098) Improve documentation around our blockcache options

2014-04-29 Thread stack (JIRA)
stack created HBASE-11098:
-

 Summary: Improve documentation around our blockcache options
 Key: HBASE-11098
 URL: https://issues.apache.org/jira/browse/HBASE-11098
 Project: HBase
  Issue Type: Sub-task
  Components: documentation
Reporter: stack
Assignee: stack


Adding as a subtask on [~ndimiduk] necessary cleanup.  Trying to make sense of 
this stuff I started adding doc (package-info files, javadoc).  I see this as 
complementary to the parent task work.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-9003) TableMapReduceUtil should not rely on org.apache.hadoop.util.JarFinder#getJar

2014-04-29 Thread Esteban Gutierrez (JIRA)

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

Esteban Gutierrez updated HBASE-9003:
-

Attachment: HBASE-9003.v2.patch

New patch with [~ndimiduk] suggestions.

> TableMapReduceUtil should not rely on org.apache.hadoop.util.JarFinder#getJar
> -
>
> Key: HBASE-9003
> URL: https://issues.apache.org/jira/browse/HBASE-9003
> Project: HBase
>  Issue Type: Bug
>  Components: mapreduce
>Reporter: Esteban Gutierrez
>Assignee: Esteban Gutierrez
> Fix For: 0.99.0
>
> Attachments: HBASE-9003.v0.patch, HBASE-9003.v1.patch, 
> HBASE-9003.v2.patch
>
>
> This is the problem: {{TableMapReduceUtil#addDependencyJars}} relies on 
> {{org.apache.hadoop.util.JarFinder}} if available to call {{getJar()}}. 
> However {{getJar()}} uses File.createTempFile() to create a temporary file 
> under {{hadoop.tmp.dir}}{{/target/test-dir}}. Due HADOOP-9737 the created jar 
> and its content is not purged after the JVM is destroyed. Since most 
> configurations point {{hadoop.tmp.dir}} under {{/tmp}} the generated jar 
> files get purged by {{tmpwatch}} or a similar tool, but boxes that have 
> {{hadoop.tmp.dir}} pointing to a different location not monitored by 
> {{tmpwatch}} will pile up a collection of jars causing all kind of issues. 
> Since {{JarFinder#getJar}} is not a public API from Hadoop (see [~tucu00] 
> comment on HADOOP-9737) we shouldn't use that as part of 
> {{TableMapReduceUtil}} in order to avoid this kind of issues.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-11092:


The patch is straightforward.

I don't have other comments.

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-11092:
-

Thanks for looking at it - [~tedyu] - any more feedback? I'll post updated 
patch soon in case there are more comments.. Would it better also go thru RB?

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10915) Decouple region closing (HM and HRS) from ZK

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-10915:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642511/HBASE-10915.patch
  against trunk revision .
  ATTACHMENT ID: 12642511

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 3 new 
or modified tests.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

 {color:red}-1 core tests{color}.  The patch failed these unit tests:
   
org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDistributedLogReplay

 {color:red}-1 core zombie tests{color}.  There are 1 zombie test(s):   
at 
org.apache.hadoop.hbase.coprocessor.TestRegionObserverInterface.testPreWALRestoreSkip(TestRegionObserverInterface.java:578)

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9427//console

This message is automatically generated.

> Decouple region closing (HM and HRS) from ZK
> 
>
> Key: HBASE-10915
> URL: https://issues.apache.org/jira/browse/HBASE-10915
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus, Zookeeper
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Attachments: HBASE-10915.patch, HBASE-10915.patch, HBASE-10915.patch, 
> HBASE-10915.patch, HBASE-10915.patch, HBASE-10915.patch, HBASE-10915.patch, 
> HBASE-10915.patch, HBASE-10915.patch, HBASE-10915.patch
>
>
> Decouple region closing from ZK. 
> Includes RS side (CloseRegionHandler), HM side (ClosedRegionHandler) and the 
> code using (HRegionServer, RSRpcServices etc).
> May need small changes in AssignmentManager.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-11092:
-

Yes, I think it should.

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-11092:


{code}
+@InterfaceAudience.Private
+public class BaseConsensusProvider implements ConsensusProvider {
{code}
Since BaseConsensusProvider would be overridden by concrete implementation, 
should BaseConsensusProvider be abstract ?

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov updated HBASE-11092:


Status: Patch Available  (was: Open)

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov updated HBASE-11092:


Attachment: HBASE-11092.patch

Initial patch for review.

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-11092.patch
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Created] (HBASE-11097) Allow 0.89-fb to work with ipv6 addresses

2014-04-29 Thread Amitanand Aiyer (JIRA)
Amitanand Aiyer created HBASE-11097:
---

 Summary: Allow 0.89-fb to work with ipv6 addresses
 Key: HBASE-11097
 URL: https://issues.apache.org/jira/browse/HBASE-11097
 Project: HBase
  Issue Type: New Feature
Affects Versions: 0.89-fb
Reporter: Amitanand Aiyer






--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11086) Add htrace support for PerfEval

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-11086:


FAILURE: Integrated in HBase-TRUNK #5124 (See 
[https://builds.apache.org/job/HBase-TRUNK/5124/])
HBASE-11086 Add htrace support for PerfEval (ndimiduk: rev 1591001)
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java


> Add htrace support for PerfEval
> ---
>
> Key: HBASE-11086
> URL: https://issues.apache.org/jira/browse/HBASE-11086
> Project: HBase
>  Issue Type: Improvement
>  Components: Performance
>Reporter: Nick Dimiduk
>Assignee: Nick Dimiduk
>Priority: Minor
> Fix For: 0.99.0
>
> Attachments: HBASE-11086.00.patch, HBASE-11086.01.patch
>
>
> Per the title.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11082) Potential unclosed TraceScope in FSHLog#replaceWriter()

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-11082:


FAILURE: Integrated in HBase-TRUNK #5124 (See 
[https://builds.apache.org/job/HBase-TRUNK/5124/])
HBASE-11082 Potential unclosed TraceScope in FSHLog#replaceWriter() (ndimiduk: 
rev 1590997)
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/wal/FSHLog.java


> Potential unclosed TraceScope in FSHLog#replaceWriter()
> ---
>
> Key: HBASE-11082
> URL: https://issues.apache.org/jira/browse/HBASE-11082
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.99.0
>Reporter: Ted Yu
>Assignee: Nick Dimiduk
>Priority: Minor
> Fix For: 0.99.0
>
> Attachments: HBASE-11082.00.patch
>
>
> In the finally block starting at line 924:
> {code}
> } finally {
>   // Let the writer thread go regardless, whether error or not.
>   if (zigzagLatch != null) {
> zigzagLatch.releaseSafePoint();
> // It will be null if we failed our wait on safe point above.
> if (syncFuture != null) blockOnSync(syncFuture);
>   }
>   scope.close();
> {code}
> If blockOnSync() throws IOException, the TraceScope would be left unclosed.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-5697) Audit HBase for usage of deprecated hadoop 0.20.x property names.

2014-04-29 Thread Hudson (JIRA)

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

Hudson commented on HBASE-5697:
---

FAILURE: Integrated in HBase-TRUNK #5124 (See 
[https://builds.apache.org/job/HBase-TRUNK/5124/])
HBASE-5697 Audit HBase for usage of deprecated hadoop 0.20.x, 1.x property 
names (Srikanth Srungarapu) (jmhsieh: rev 1591045)
* /hbase/trunk/bin/region_status.rb
* 
/hbase/trunk/hbase-common/src/main/java/org/apache/hadoop/hbase/io/compress/Compression.java
* /hbase/trunk/hbase-common/src/main/resources/hbase-default.xml
* 
/hbase/trunk/hbase-it/src/test/java/org/apache/hadoop/hbase/mapreduce/IntegrationTestImportTsv.java
* 
/hbase/trunk/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestBigLinkedList.java
* 
/hbase/trunk/hbase-it/src/test/java/org/apache/hadoop/hbase/test/IntegrationTestLoadAndVerify.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/CopyTable.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/Export.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/HLogInputFormat.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/Import.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/ImportTsv.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/WALPlayer.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/mapreduce/package-info.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSUtils.java
* 
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/util/Merge.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/HBaseTestingUtility.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/PerformanceEvaluation.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/TestFullLogReconstruction.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestAdmin.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/fs/TestBlockReorder.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHFileOutputFormat2.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestHLogRecordReader.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportExport.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTSVWithOperationAttributes.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTSVWithVisibilityLabels.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestImportTsv.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestRowCounter.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/mapreduce/TestTableMapReduceBase.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestHRegion.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestJoinedScanners.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestHLog.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRollAbort.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/wal/TestLogRolling.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/rest/PerformanceEvaluation.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/snapshot/TestExportSnapshot.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/ProcessBasedLocalHBaseCluster.java
* 
/hbase/trunk/hbase-server/src/test/java/org/apache/hadoop/hbase/util/TestFSUtils.java
* /hbase/trunk/src/main/docbkx/case_studies.xml
* /hbase/trunk/src/main/docbkx/configuration.xml
* /hbase/trunk/src/main/docbkx/ops_mgt.xml
* /hbase/trunk/src/main/docbkx/troubleshooting.xml


> Audit HBase for usage of deprecated hadoop 0.20.x property names.
> -
>
> Key: HBASE-5697
> URL: https://issues.apache.org/jira/browse/HBASE-5697
> Project: HBase
>  Issue Type: Task
>Reporter: Jonathan Hsieh
>Assignee: Srikanth Srungarapu
>  Labels: noob
> Fix Fo

[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-11093:


Considering the responses I got on this issue (I do appreciate the opportunity 
that allows me to evaluate this in a bigger context), I think the priority 
should be at minor level.

bq. Do you have numbers on savings this code change makes
Not yet.
The savings would vary depending on the number of KeyValues handed over to 
FilterList and the number of filters that are part of the FilterList.

> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread stack (JIRA)

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

stack commented on HBASE-11093:
---

[~ted_yu] Yeah.  I think I get it.  The takeaway seems to be lets do busy work 
until 1.0 on trivial issues -- this should be trivial priority, right?  Do you 
have numbers on savings this code change makes -- that sucks in FOUR reviewers 
for a patch over code that should really be removed (IIUC).

> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-6192) Document ACL matrix in the book

2014-04-29 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-6192:
-

Fix Version/s: 0.99.0

> Document ACL matrix in the book
> ---
>
> Key: HBASE-6192
> URL: https://issues.apache.org/jira/browse/HBASE-6192
> Project: HBase
>  Issue Type: Task
>  Components: documentation, security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Enis Soztutar
>  Labels: documentaion, security
> Fix For: 0.99.0
>
> Attachments: HBase Security-ACL Matrix.pdf, HBase Security-ACL 
> Matrix.pdf, HBase Security-ACL Matrix.pdf, HBase Security-ACL Matrix.xls, 
> HBase Security-ACL Matrix.xls, HBase Security-ACL Matrix.xls
>
>
> We have an excellent matrix at 
> https://issues.apache.org/jira/secure/attachment/12531252/Security-ACL%20Matrix.pdf
>  for ACL. Once the changes are done, we can adapt that and put it in the 
> book, also add some more documentation about the new authorization features. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10251) Restore API Compat for PerformanceEvaluation.generateValue()

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-10251:


I'd be happy to review/support/commit such an effort. 

> Restore API Compat for PerformanceEvaluation.generateValue()
> 
>
> Key: HBASE-10251
> URL: https://issues.apache.org/jira/browse/HBASE-10251
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 0.99.0
>Reporter: Aleksandr Shulman
>  Labels: api_compatibility
>
> Observed:
> A couple of my client tests fail to compile against trunk because the method 
> PerformanceEvaluation.generateValue was removed as part of HBASE-8496.
> This is an issue because it was used in a number of places, including unit 
> tests. Since we did not explicitly label this API as private, it's ambiguous 
> as to whether this could/should have been used by people writing apps against 
> 0.96. If they used it, then they would be broken upon upgrade to 0.98 and 
> trunk.
> Potential Solution:
> The method was renamed to generateData, but the logic is still the same. We 
> can reintroduce it as deprecated in 0.98, as compat shim over generateData. 
> The patch should be a few lines. We may also consider doing so in trunk, but 
> I'd be just as fine with leaving it out.
> More generally, this raises the question about what other code is in this 
> "grey-area", where it is public, is used outside of the package, but is not 
> explicitly labeled with an AudienceInterface.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-11093:


[~stack]:
Did I answer your question ?
Kindly provide your suggestion.

> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11093) FilterList#filterRow() iterates through its filters even though FilterList#hasFilterRow() returns false

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-11093:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642477/11093-v3.txt
  against trunk revision .
  ATTACHMENT ID: 12642477

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  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:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

 {color:red}-1 core tests{color}.  The patch failed these unit tests:
 

 {color:red}-1 core zombie tests{color}.  There are 2 zombie test(s):   
at 
org.apache.hadoop.hbase.mapreduce.TestTableMapReduceBase.testMultiRegionTable(TestTableMapReduceBase.java:96)

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9425//console

This message is automatically generated.

> FilterList#filterRow() iterates through its filters even though 
> FilterList#hasFilterRow() returns false
> ---
>
> Key: HBASE-11093
> URL: https://issues.apache.org/jira/browse/HBASE-11093
> Project: HBase
>  Issue Type: Bug
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11093-v1.txt, 11093-v2.txt, 11093-v3.txt
>
>
> FilterList#hasFilterRow() returns false when hasFilterRow() of all of 
> constituent filters return false.
> However, FilterList#filterRow() still iterates through its filters in this 
> scenario.
> The iteration should be skipped when FilterList#hasFilterRow() returns false.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10251) Restore API Compat for PerformanceEvaluation.generateValue()

2014-04-29 Thread Aleksandr Shulman (JIRA)

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

Aleksandr Shulman commented on HBASE-10251:
---

[~ndimiduk], I like the idea of having utility classes that have a 
compatibility story, from which the tests (which do not have compatibility 
considerations) can pull.

> Restore API Compat for PerformanceEvaluation.generateValue()
> 
>
> Key: HBASE-10251
> URL: https://issues.apache.org/jira/browse/HBASE-10251
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 0.99.0
>Reporter: Aleksandr Shulman
>  Labels: api_compatibility
>
> Observed:
> A couple of my client tests fail to compile against trunk because the method 
> PerformanceEvaluation.generateValue was removed as part of HBASE-8496.
> This is an issue because it was used in a number of places, including unit 
> tests. Since we did not explicitly label this API as private, it's ambiguous 
> as to whether this could/should have been used by people writing apps against 
> 0.96. If they used it, then they would be broken upon upgrade to 0.98 and 
> trunk.
> Potential Solution:
> The method was renamed to generateData, but the logic is still the same. We 
> can reintroduce it as deprecated in 0.98, as compat shim over generateData. 
> The patch should be a few lines. We may also consider doing so in trunk, but 
> I'd be just as fine with leaving it out.
> More generally, this raises the question about what other code is in this 
> "grey-area", where it is public, is used outside of the package, but is not 
> explicitly labeled with an AudienceInterface.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10251) Restore API Compat for PerformanceEvaluation.generateValue()

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-10251:


bq. We should consider how much code-reuse we want to make available for other 
tests vs stand-alone application, where a util library class resides, etc. 

Agreed [~ndimiduk], and I think the supporting classes that implement the 
functionality of LoadTestTool fall into the same bucket.

> Restore API Compat for PerformanceEvaluation.generateValue()
> 
>
> Key: HBASE-10251
> URL: https://issues.apache.org/jira/browse/HBASE-10251
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 0.99.0
>Reporter: Aleksandr Shulman
>  Labels: api_compatibility
>
> Observed:
> A couple of my client tests fail to compile against trunk because the method 
> PerformanceEvaluation.generateValue was removed as part of HBASE-8496.
> This is an issue because it was used in a number of places, including unit 
> tests. Since we did not explicitly label this API as private, it's ambiguous 
> as to whether this could/should have been used by people writing apps against 
> 0.96. If they used it, then they would be broken upon upgrade to 0.98 and 
> trunk.
> Potential Solution:
> The method was renamed to generateData, but the logic is still the same. We 
> can reintroduce it as deprecated in 0.98, as compat shim over generateData. 
> The patch should be a few lines. We may also consider doing so in trunk, but 
> I'd be just as fine with leaving it out.
> More generally, this raises the question about what other code is in this 
> "grey-area", where it is public, is used outside of the package, but is not 
> explicitly labeled with an AudienceInterface.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10885) Support visibility expressions on Deletes

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-10885:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642441/HBASE-10885_2.patch
  against trunk revision .
  ATTACHMENT ID: 12642441

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 2 new 
or modified tests.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

 {color:red}-1 core tests{color}.  The patch failed these unit tests:
   
org.apache.hadoop.hbase.security.visibility.TestVisibilityLabels
  
org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsOpWithDifferentUsersNoACL
  
org.apache.hadoop.hbase.security.visibility.TestVisibilityLabelsWithDistributedLogReplay

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9426//console

This message is automatically generated.

> Support visibility expressions on Deletes
> -
>
> Key: HBASE-10885
> URL: https://issues.apache.org/jira/browse/HBASE-10885
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
>Priority: Critical
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10885_1.patch, HBASE-10885_2.patch
>
>
> Accumulo can specify visibility expressions for delete markers. During 
> compaction the cells covered by the tombstone are determined in part by 
> matching the visibility expression. This is useful for the use case of data 
> set coalescing, where entries from multiple data sets carrying different 
> labels are combined into one common large table. Later, a subset of entries 
> can be conveniently removed using visibility expressions.
> Currently doing the same in HBase would only be possible with a custom 
> coprocessor. Otherwise, a Delete will affect all cells covered by the 
> tombstone regardless of any visibility expression scoping. This is correct 
> behavior in that no data spill is possible, but certainly could be 
> surprising, and is only meant to be transitional. We decided not to support 
> visibility expressions on Deletes to control the complexity of the initial 
> implementation.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10251) Restore API Compat for PerformanceEvaluation.generateValue()

2014-04-29 Thread Nick Dimiduk (JIRA)

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

Nick Dimiduk commented on HBASE-10251:
--

[~apurtell] yes I recall the conversation; no I don't remember the context. I 
think it's a good idea, and is on my todo list. One of the prerequisites in my 
mind is that we add some unit test coverage around how the various features 
overlap in test configuration.

Quasi-related, I hacked it up pretty badly in HBASE-10791 for an integration 
test on the HBASE-10070 branch. We should consider how much code-reuse we want 
to make available for other tests vs stand-alone application, where a util 
library class resides, etc. We already have PerformanceEvaluationCommons, which 
seems like an ideal place for the functionality [~aleksshulman] is referring to.

> Restore API Compat for PerformanceEvaluation.generateValue()
> 
>
> Key: HBASE-10251
> URL: https://issues.apache.org/jira/browse/HBASE-10251
> Project: HBase
>  Issue Type: Bug
>  Components: Client
>Affects Versions: 0.99.0
>Reporter: Aleksandr Shulman
>  Labels: api_compatibility
>
> Observed:
> A couple of my client tests fail to compile against trunk because the method 
> PerformanceEvaluation.generateValue was removed as part of HBASE-8496.
> This is an issue because it was used in a number of places, including unit 
> tests. Since we did not explicitly label this API as private, it's ambiguous 
> as to whether this could/should have been used by people writing apps against 
> 0.96. If they used it, then they would be broken upon upgrade to 0.98 and 
> trunk.
> Potential Solution:
> The method was renamed to generateData, but the logic is still the same. We 
> can reintroduce it as deprecated in 0.98, as compat shim over generateData. 
> The patch should be a few lines. We may also consider doing so in trunk, but 
> I'd be just as fine with leaving it out.
> More generally, this raises the question about what other code is in this 
> "grey-area", where it is public, is used outside of the package, but is not 
> explicitly labeled with an AudienceInterface.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10925) Do not OOME, throw RowTooBigException instead

2014-04-29 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov updated HBASE-10925:


Affects Version/s: 0.99.0

> Do not OOME, throw RowTooBigException instead
> -
>
> Key: HBASE-10925
> URL: https://issues.apache.org/jira/browse/HBASE-10925
> Project: HBase
>  Issue Type: Improvement
>  Components: Usability
>Affects Versions: 0.99.0
>Reporter: stack
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
> Attachments: HBASE-10925.patch, HBASE-10925.patch, HBASE-10925.patch
>
>
> If 10M columns in a row, throw a RowTooBigException rather than OOME when 
> Get'ing or Scanning w/o in-row scan flag set.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11095) Add ip restriction in user permissions

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11095:


After considering the above if we would like to proceed, then I recommend a 
reboot of the authorization code in the AccessController instead of hacking in 
IP filtering. 

> Add ip restriction in user permissions
> --
>
> Key: HBASE-11095
> URL: https://issues.apache.org/jira/browse/HBASE-11095
> Project: HBase
>  Issue Type: New Feature
>  Components: security
>Reporter: Liu Shaohui
>Priority: Minor
>
> For some sensitive data, users want to restrict the from ips of hbase users 
> like mysql access control. 
> One direct solution is to add the candidated ips when granting user 
> permisions.
> {quote}
> grant  [  [  [ 
>  ] ] ]
> {quote}
> Any comments and suggestions are welcomed.
> [~apurtell]



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-3045) Extend HBASE-3025 into a role based access control model using "HBase groups"

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-3045.
---

Resolution: Later
  Assignee: (was: Eugene Koontz)

Hadoop group mapping seems good enough for now. Resolving as Later.

> Extend HBASE-3025 into a role based access control model using "HBase groups"
> -
>
> Key: HBASE-3045
> URL: https://issues.apache.org/jira/browse/HBASE-3045
> Project: HBase
>  Issue Type: Sub-task
>  Components: security
>Reporter: Andrew Purtell
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-29 Thread Sergey Soldatov (JIRA)

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

Sergey Soldatov commented on HBASE-11092:
-

The problem is that the Server interface is defined in hbase-client module, but 
most of consensuses requre classes from hbase-server module. One of the 
possible options is to define a basic consensus provider with default 
start/stop/init methods in the hbase-client module and subclass with all 
required consensus getters in hbase-server module and use explicit cast to this 
subclass when it's require. 

> Server interface should have method getConsensusProvider()
> --
>
> Key: HBASE-11092
> URL: https://issues.apache.org/jira/browse/HBASE-11092
> Project: HBase
>  Issue Type: Sub-task
>  Components: Consensus
>Affects Versions: 0.99.0
>Reporter: Mikhail Antonov
>Assignee: Mikhail Antonov
> Fix For: 0.99.0
>
>
> As discussed in comments to HBASE-10915, we need to have a proper way to 
> retrieve instance of consensus provider, and Server interface seems the right 
> one.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-5947) Check for valid user/table/family/qualifier and acl state

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-5947:
--

Assignee: (was: Matteo Bertozzi)

> Check for valid user/table/family/qualifier and acl state
> -
>
> Key: HBASE-5947
> URL: https://issues.apache.org/jira/browse/HBASE-5947
> Project: HBase
>  Issue Type: Improvement
>  Components: security
>Affects Versions: 0.92.1, 0.94.0, 0.95.2
>Reporter: Matteo Bertozzi
>  Labels: acl
>
> HBase Shell grant/revoke doesn't check for valid user or 
> table/family/qualifier so can you end up having rights for something that 
> doesn't exists.
> We might also want to ensure, upon table/column creation, that no entries are 
> already stored at the acl table. We might still have residual acl entries if 
> something goes wrong, in postDeleteTable(), postDeleteColumn().



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-5947) Check for valid user/table/family/qualifier and acl state

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-5947:
--

Issue Type: Improvement  (was: Sub-task)
Parent: (was: HBASE-5352)

> Check for valid user/table/family/qualifier and acl state
> -
>
> Key: HBASE-5947
> URL: https://issues.apache.org/jira/browse/HBASE-5947
> Project: HBase
>  Issue Type: Improvement
>  Components: security
>Affects Versions: 0.92.1, 0.94.0, 0.95.2
>Reporter: Matteo Bertozzi
>Assignee: Matteo Bertozzi
>  Labels: acl
>
> HBase Shell grant/revoke doesn't check for valid user or 
> table/family/qualifier so can you end up having rights for something that 
> doesn't exists.
> We might also want to ensure, upon table/column creation, that no entries are 
> already stored at the acl table. We might still have residual acl entries if 
> something goes wrong, in postDeleteTable(), postDeleteColumn().



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6106) Update documentation to reflect design and interface changes

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6106.
---

Resolution: Fixed

Superseded by subsequent documentation updates. Retired with parent.

> Update documentation to reflect design and interface changes
> 
>
> Key: HBASE-6106
> URL: https://issues.apache.org/jira/browse/HBASE-6106
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors, documentation, security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Andrew Purtell
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6186) Assure thread safety

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6186.
---

Resolution: Invalid

> Assure thread safety
> 
>
> Key: HBASE-6186
> URL: https://issues.apache.org/jira/browse/HBASE-6186
> Project: HBase
>  Issue Type: Sub-task
>  Components: security
>Affects Versions: 0.94.0, 0.94.1, 0.95.2
>Reporter: Andrew Purtell
>  Labels: security
>
> Check data structures for necessary thread safety.
> One known issue is as follows:
> In TableAuthManager, we need to deal with concurrent grants and revokes now 
> that ADMIN permission can be delegated to perhaps multiple users.
> Consider using a ReadWriteLock to protect for update. The current data 
> structure is an array multimap. It is also possible to obtain a synchronized 
> multimap from Guava with Multimaps#synchronizedListMultimap but by far the 
> most common access is read access, and concurrent read access is fine.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-6186) Assure thread safety

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-6186:
--

Assignee: (was: Laxman)

> Assure thread safety
> 
>
> Key: HBASE-6186
> URL: https://issues.apache.org/jira/browse/HBASE-6186
> Project: HBase
>  Issue Type: Sub-task
>  Components: security
>Affects Versions: 0.94.0, 0.94.1, 0.95.2
>Reporter: Andrew Purtell
>  Labels: security
>
> Check data structures for necessary thread safety.
> One known issue is as follows:
> In TableAuthManager, we need to deal with concurrent grants and revokes now 
> that ADMIN permission can be delegated to perhaps multiple users.
> Consider using a ReadWriteLock to protect for update. The current data 
> structure is an array multimap. It is also possible to obtain a synchronized 
> multimap from Guava with Multimaps#synchronizedListMultimap but by far the 
> most common access is read access, and concurrent read access is fine.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-7333) Improve the security shell commands

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-7333.
---

Resolution: Not a Problem
  Assignee: (was: Andrew Purtell)

Superseded by a lot of commits.

> Improve the security shell commands
> ---
>
> Key: HBASE-7333
> URL: https://issues.apache.org/jira/browse/HBASE-7333
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors, security, shell
>Affects Versions: 0.94.4, 0.95.2
>Reporter: Andrew Purtell
>
> The shell commands for security are rudimentary and should be improved. The 
> commands we have need to be updated for the "AccessController v2" changes. 
> The distinction between the shell and the Java (admin) API is blurry because 
> our shell is JRuby but it makes sense to provide some convenient shortcuts 
> for common actions.
> At a minimum the current set of commands should validate their arguments.
> 'revoke' should be improved so all access for a given user can be 
> conveniently revoked with one command, as opposed to requiring a specific 
> revoke for every previous grant. This may involve interaction with a master 
> mediated transaction or barrier framework. 
> Once HBASE-6222 is in, it should be possible to conveniently construct ACLs 
> and add them to DML ops like put and delete; and there should be support for 
> dumping ACLs at the cell level too.
> Also, I observed 'user_permission' fail with NPEs on a colleague's 
> workstation recently. It could have been the local environment, but I suspect 
> there may be some rot here.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6099) Secure ZooKeeper integration changes

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6099.
---

Resolution: Fixed

"Sub-umbrella" retired with parent.

> Secure ZooKeeper integration changes
> 
>
> Key: HBASE-6099
> URL: https://issues.apache.org/jira/browse/HBASE-6099
> Project: HBase
>  Issue Type: Sub-task
>  Components: Client, security, shell, Zookeeper
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Andrew Purtell
>
> Resolve linked issues.
> Audit HBase client use of znodes and consider if we should tighten up access 
> anywhere.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-7123) Refactor internal methods in AccessController

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-7123:
--

Assignee: (was: Andrew Purtell)

> Refactor internal methods in AccessController
> -
>
> Key: HBASE-7123
> URL: https://issues.apache.org/jira/browse/HBASE-7123
> Project: HBase
>  Issue Type: Improvement
>  Components: security
>Reporter: Andrew Purtell
>
> The authorize(), permissionGranted(), and requirePermission() methods in 
> AccessController have organically grown as both the HBase client API and the 
> AccessController itself have evolved, and now have several problems:
> - Code duplication (minor)
> - Unused variants (minor)
> - Signatures optimized for checking certain operations that have a familyMap. 
> Unfortunately different operations have different ideas of what type a 
> familyMap should be. This leads to runtime type checking and the need to 
> convert one family map to another (e.g. {{Map NavigableMap>}} to {{Map>}} (That kind of 
> conversion code in a hot path hurts to look at.) There are too many Java 
> collection type combinations floating around. Some of this should be 
> approached at the client API level too, for example with HBASE-7114.
> - Only one Permission.Action can be checked at a time. We should really 
> convert these into a bitmap if multiple actions need checking and pass that 
> around instead.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-7123) Refactor internal methods in AccessController

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-7123:
--

Issue Type: Improvement  (was: Sub-task)
Parent: (was: HBASE-6096)

> Refactor internal methods in AccessController
> -
>
> Key: HBASE-7123
> URL: https://issues.apache.org/jira/browse/HBASE-7123
> Project: HBase
>  Issue Type: Improvement
>  Components: security
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>
> The authorize(), permissionGranted(), and requirePermission() methods in 
> AccessController have organically grown as both the HBase client API and the 
> AccessController itself have evolved, and now have several problems:
> - Code duplication (minor)
> - Unused variants (minor)
> - Signatures optimized for checking certain operations that have a familyMap. 
> Unfortunately different operations have different ideas of what type a 
> familyMap should be. This leads to runtime type checking and the need to 
> convert one family map to another (e.g. {{Map NavigableMap>}} to {{Map>}} (That kind of 
> conversion code in a hot path hurts to look at.) There are too many Java 
> collection type combinations floating around. Some of this should be 
> approached at the client API level too, for example with HBASE-7114.
> - Only one Permission.Action can be checked at a time. We should really 
> convert these into a bitmap if multiple actions need checking and pass that 
> around instead.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6030) Log AccessDeniedExceptions at INFO level

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6030.
---

Resolution: Not a Problem
  Assignee: (was: Andrew Purtell)

> Log AccessDeniedExceptions at INFO level
> 
>
> Key: HBASE-6030
> URL: https://issues.apache.org/jira/browse/HBASE-6030
> Project: HBase
>  Issue Type: Improvement
>  Components: Coprocessors, security
>Affects Versions: 0.92.2, 0.94.1, 0.95.2
> Environment: AccessController coprocessor
>Reporter: Andrew Purtell
>Priority: Minor
>
> The HBase AccessController can emit a detailed trace of every action, and 
> whether it succeeded or failed, but this is expected to be used only for 
> debugging an application in a staging environment. In production a 
> RegionServer may have thousands of requests per second, logging the audit 
> trace just isn't viable. However, we might want to log the 
> AccessDeniedExceptions which result from access failures in the daemon logs 
> like Hadoop does, e.g. the NameNode log.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-6192) Document ACL matrix in the book

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-6192:
--

Assignee: (was: Laxman)

> Document ACL matrix in the book
> ---
>
> Key: HBASE-6192
> URL: https://issues.apache.org/jira/browse/HBASE-6192
> Project: HBase
>  Issue Type: Task
>  Components: documentation, security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Enis Soztutar
>  Labels: documentaion, security
> Attachments: HBase Security-ACL Matrix.pdf, HBase Security-ACL 
> Matrix.pdf, HBase Security-ACL Matrix.pdf, HBase Security-ACL Matrix.xls, 
> HBase Security-ACL Matrix.xls, HBase Security-ACL Matrix.xls
>
>
> We have an excellent matrix at 
> https://issues.apache.org/jira/secure/attachment/12531252/Security-ACL%20Matrix.pdf
>  for ACL. Once the changes are done, we can adapt that and put it in the 
> book, also add some more documentation about the new authorization features. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-5343) Access control API in HBaseAdmin.java

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-5343.
---

Resolution: Invalid
  Assignee: (was: Enis Soztutar)

> Access control API in HBaseAdmin.java  
> ---
>
> Key: HBASE-5343
> URL: https://issues.apache.org/jira/browse/HBASE-5343
> Project: HBase
>  Issue Type: Improvement
>  Components: Client, Coprocessors, security
>Affects Versions: 0.92.1, 0.94.0
>Reporter: Enis Soztutar
>
> To use the access control mechanism added in HBASE-3025, users should either 
> use the shell interface, or use the coprocessor API directly, which is not 
> very user friendly. We can add grant/revoke/user_permission commands similar 
> to the shell interface to HBaseAdmin assuming HBASE-5341 is in. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6101) Insure Observers cover all relevant RPC and lifecycle code paths

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6101.
---

Resolution: Fixed

> Insure Observers cover all relevant RPC and lifecycle code paths
> 
>
> Key: HBASE-6101
> URL: https://issues.apache.org/jira/browse/HBASE-6101
> Project: HBase
>  Issue Type: Sub-task
>  Components: Coprocessors, master, regionserver, security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Andrew Purtell
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-5352) ACL improvements

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-5352.
---

Resolution: Fixed
  Assignee: (was: Enis Soztutar)

This umbrella has seen it's day. Will spin out still relevant unfinished 
subtasks to top level issues.

> ACL improvements
> 
>
> Key: HBASE-5352
> URL: https://issues.apache.org/jira/browse/HBASE-5352
> Project: HBase
>  Issue Type: Improvement
>  Components: security
>Affects Versions: 0.92.1, 0.94.0
>Reporter: Enis Soztutar
>
> In this issue I would like to open discussion for a few minor ACL related 
> improvements. The proposed changes are as follows: 
> 1. Introduce something like 
> AccessControllerProtocol.checkPermissions(Permission[] permissions) API, so 
> that clients can check access rights before carrying out the operations. We 
> need this kind of operation for HCATALOG-245, which introduces authorization 
> providers for hbase over hcat. We cannot use getUserPermissions() since it 
> requires ADMIN permissions on the global/table level.
> 2. getUserPermissions(tableName)/grant/revoke and drop/modify table 
> operations should not check for global CREATE/ADMIN rights, but table 
> CREATE/ADMIN rights. The reasoning is that if a user is able to admin or read 
> from a table, she should be able to read the table's permissions. We can 
> choose whether we want only READ or ADMIN permissions for 
> getUserPermission(). Since we check for global permissions first for table 
> permissions, configuring table access using global permissions will continue 
> to work.  
> 3. Grant/Revoke global permissions - HBASE-5342 (included for completeness)
> From all 3, we may want to backport the first one to 0.92 since without it, 
> Hive/Hcatalog cannot use Hbase's authorization mechanism effectively. 
> I will create subissues and convert HBASE-5342 to a subtask when we get some 
> feedback, and opinions for going further. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-6192) Document ACL matrix in the book

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-6192:
--

Issue Type: Task  (was: Sub-task)
Parent: (was: HBASE-5352)

> Document ACL matrix in the book
> ---
>
> Key: HBASE-6192
> URL: https://issues.apache.org/jira/browse/HBASE-6192
> Project: HBase
>  Issue Type: Task
>  Components: documentation, security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Enis Soztutar
>Assignee: Laxman
>  Labels: documentaion, security
> Attachments: HBase Security-ACL Matrix.pdf, HBase Security-ACL 
> Matrix.pdf, HBase Security-ACL Matrix.pdf, HBase Security-ACL Matrix.xls, 
> HBase Security-ACL Matrix.xls, HBase Security-ACL Matrix.xls
>
>
> We have an excellent matrix at 
> https://issues.apache.org/jira/secure/attachment/12531252/Security-ACL%20Matrix.pdf
>  for ACL. Once the changes are done, we can adapt that and put it in the 
> book, also add some more documentation about the new authorization features. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6096) AccessController v2

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6096.
---

Resolution: Fixed

This umbrella has seen it's day. Resolving and spinning out still relevant 
subtasks to top level issues.

> AccessController v2
> ---
>
> Key: HBASE-6096
> URL: https://issues.apache.org/jira/browse/HBASE-6096
> Project: HBase
>  Issue Type: Umbrella
>  Components: security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Andrew Purtell
> Attachments: Security-ACL Matrix.pdf
>
>
> Umbrella issue for iteration on the initial AccessController drop.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Resolved] (HBASE-6098) ACL design changes

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-6098.
---

Resolution: Invalid

Invalid "sub-umbrella". I should have just linked the issues here to the parent.

> ACL design changes
> --
>
> Key: HBASE-6098
> URL: https://issues.apache.org/jira/browse/HBASE-6098
> Project: HBase
>  Issue Type: Sub-task
>  Components: security
>Affects Versions: 0.94.1, 0.95.2
>Reporter: Andrew Purtell
>




--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-11095) Add ip restriction in user permissions

2014-04-29 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11095:


I've thought about this some. We could build a service authorization engine 
supporting fine grained decisionmaking using attributes such as client IP 
address (surely the first of many), but consider:

First, Hadoop already has a nascient service authorization framework, see 
https://hadoop.apache.org/docs/r2.2.0/hadoop-project-dist/hadoop-common/ServiceLevelAuth.html
 At least when our secure RPC was first committed we picked up support for 
service authorization for all of our RPC protocols from the Hadoop libraries. 
The current Hadoop code does not support IP filtering but it could.

Second, even if we build our own fine grained service authorization, will 
Hadoop someday introduce the same facilities? There is HADOOP-9466. Incubating 
projects like Apache Sentry are also working toward this kind of capability. 

Third, see HBASE-7123 and HBASE-7254. To the extent that technical debt should 
be paid down in the AccessController, we should factor that in. 
permissionGranted and the like are where you'd start with today's code to 
implement restrictions by IP address. 

> Add ip restriction in user permissions
> --
>
> Key: HBASE-11095
> URL: https://issues.apache.org/jira/browse/HBASE-11095
> Project: HBase
>  Issue Type: New Feature
>  Components: security
>Reporter: Liu Shaohui
>Priority: Minor
>
> For some sensitive data, users want to restrict the from ips of hbase users 
> like mysql access control. 
> One direct solution is to add the candidated ips when granting user 
> permisions.
> {quote}
> grant  [  [  [ 
>  ] ] ]
> {quote}
> Any comments and suggestions are welcomed.
> [~apurtell]



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-10653) Incorrect table status in HBase shell Describe

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-10653:
---

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642218/HBASE-10653.2.patch
  against trunk revision .
  ATTACHMENT ID: 12642218

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:red}-1 tests included{color}.  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:red}-1 patch{color}.  The patch command could not apply the patch.

Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9424//console

This message is automatically generated.

> Incorrect table status in HBase shell Describe
> --
>
> Key: HBASE-10653
> URL: https://issues.apache.org/jira/browse/HBASE-10653
> Project: HBase
>  Issue Type: Bug
>  Components: shell
>Affects Versions: 0.94.17
>Reporter: Biju Nair
>Assignee: Rekha Joshi
>  Labels: HbaseShell, describe
> Fix For: 0.98.0
>
> Attachments: HBASE-10653.1.patch, HBASE-10653.2.patch
>
>
> Describe output of table which is disabled shows as enabled.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Updated] (HBASE-10611) Description for hbase:acl table is wrong on master-status#catalogTables

2014-04-29 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-10611:
---

  Resolution: Fixed
Hadoop Flags: Reviewed
  Status: Resolved  (was: Patch Available)

Integrated to 0.98 and trunk.

Thanks for the patch, Rekha.

> Description for hbase:acl table is wrong on master-status#catalogTables
> ---
>
> Key: HBASE-10611
> URL: https://issues.apache.org/jira/browse/HBASE-10611
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.0
>Reporter: Ted Yu
>Assignee: Rekha Joshi
>Priority: Minor
>  Labels: patch
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10611.1.patch, HBASE-10611.1.patch, 
> HBASE-10611.2.patch
>
>
> On master-status#catalogTables, I see:
> hbase:acl The .NAMESPACE. table holds information about namespaces.
> In MasterStatusTmpl.jamon, we have:
> {code}
> if (tableName.equals(TableName.META_TABLE_NAME)){
> description = "The hbase:meta table holds references to all User 
> Table regions";
> } else {
> description = "The .NAMESPACE. table holds information about 
> namespaces.";
> }
> {code}
> The above check doesn't cover hbase:acl table.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


[jira] [Commented] (HBASE-9003) TableMapReduceUtil should not rely on org.apache.hadoop.util.JarFinder#getJar

2014-04-29 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-9003:
--

{color:green}+1 overall{color}.  Here are the results of testing the latest 
attachment 
  http://issues.apache.org/jira/secure/attachment/12642412/HBASE-9003.v1.patch
  against trunk revision .
  ATTACHMENT ID: 12642412

{color:green}+1 @author{color}.  The patch does not contain any @author 
tags.

{color:green}+1 tests included{color}.  The patch appears to include 10 new 
or modified tests.

{color:green}+1 javadoc{color}.  The javadoc tool did not generate any 
warning messages.

{color:green}+1 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 1.3.9) warnings.

{color:green}+1 release audit{color}.  The applied patch does not increase 
the total number of release audit warnings.

{color:green}+1 lineLengths{color}.  The patch does not introduce lines 
longer than 100

  {color:green}+1 site{color}.  The mvn site goal succeeds with this patch.

{color:green}+1 core tests{color}.  The patch passed unit tests in .

Test results: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9423//console

This message is automatically generated.

> TableMapReduceUtil should not rely on org.apache.hadoop.util.JarFinder#getJar
> -
>
> Key: HBASE-9003
> URL: https://issues.apache.org/jira/browse/HBASE-9003
> Project: HBase
>  Issue Type: Bug
>  Components: mapreduce
>Reporter: Esteban Gutierrez
>Assignee: Esteban Gutierrez
> Fix For: 0.99.0
>
> Attachments: HBASE-9003.v0.patch, HBASE-9003.v1.patch
>
>
> This is the problem: {{TableMapReduceUtil#addDependencyJars}} relies on 
> {{org.apache.hadoop.util.JarFinder}} if available to call {{getJar()}}. 
> However {{getJar()}} uses File.createTempFile() to create a temporary file 
> under {{hadoop.tmp.dir}}{{/target/test-dir}}. Due HADOOP-9737 the created jar 
> and its content is not purged after the JVM is destroyed. Since most 
> configurations point {{hadoop.tmp.dir}} under {{/tmp}} the generated jar 
> files get purged by {{tmpwatch}} or a similar tool, but boxes that have 
> {{hadoop.tmp.dir}} pointing to a different location not monitored by 
> {{tmpwatch}} will pile up a collection of jars causing all kind of issues. 
> Since {{JarFinder#getJar}} is not a public API from Hadoop (see [~tucu00] 
> comment on HADOOP-9737) we shouldn't use that as part of 
> {{TableMapReduceUtil}} in order to avoid this kind of issues.



--
This message was sent by Atlassian JIRA
(v6.2#6252)


  1   2   >