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

2014-04-30 Thread stack (JIRA)

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

stack commented on HBASE-11092:
---

Server is top level Interface.  I think ConsensusProvider is looking like it 
should be w/ implemenations and supporting Interfaces down in the consensus 
package?  Then Server doesn't have to reach down into the consensus package.  
Factory should be top level too?

Otherwise patch lgtm.



> 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.
> Since Server interface lives in hbase-client maven module, the following 
> approach is implemented in this patch:
>  - hbase-client module has very basic (almost marker) interface 
> ConsensusProvider to return instance of consensus provider from the Server
>  - hbase-server module has BaseConsensusProvider which defines the consensus 
> interfaces
>  - Implementations shall subclass BaseConsensusProvider
>  - whoever wants to get ConsensusProvider from raw Server interface on 
> hbase-server side, has to typecast: (BaseConsensusProvider) 



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


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

2014-04-30 Thread stack (JIRA)

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

stack commented on HBASE-10915:
---

bq. When I think at high level, ZK is used know mostly to coordinate ops 
between HM and HRS, so operations which has to be abstracted presumably, mostly 
involve both HM and HRS side. So may be for now put it all under 
o.a.h.h.consensus?

This is reasonable rationale.  Mess around w/ it.  If it feels right, lets go 
w/ it (make a note somewhere that this is what we decided maybe in a class 
comment or so...)

Let me look at hbase-11092.

> 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-11099) Two situations where we could open a region with smaller sequence number

2014-04-30 Thread stack (JIRA)

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

stack commented on HBASE-11099:
---

[~jeffreyz] I don't think so. Down in append we do this:

{code}
...
long sequence = this.disruptor.getRingBuffer().next();
try {
  RingBufferTruck truck = this.disruptor.getRingBuffer().get(sequence);
  FSWALEntry entry =
new FSWALEntry(sequence, logKey, edits, sequenceId, inMemstore, htd, 
info);
  truck.loadPayload(entry, scope.detach());
} finally {
  this.disruptor.getRingBuffer().publish(sequence);
}
...
{code}

So we get a slot on the ring buffer and load it up.  When ready to go, we 
publish to the ring.

Threads contend here abouts so publishing can be happening in any order (that 
could be ok).

(Reading the setAvailable, called when we publish, I can't tell how it works 
w/o running some tests; i.e. does publishing make it available for processing 
though there are sequences ahead of this one not yet published?. I could do 
that.)

The ring buffer sequence number is an internal detail not related to region 
sequence id. Wouldn't I have to relate them doing the above (ringbuffer is 
regionserver scoped)?  Otherwise, I would have to synchronize -- i.e. block -- 
the disruptor so I could tie the disruptor id getting and the upping of the 
region sequence id together?  Unless I used the disruptor id as region sequence 
id? (would need to check that publish respected disruptor id).  Disruptor id is 
a long.  Say 100k writes a second, I think its 3M years till we roll over 
(would have to check -- disruptor might be using some of the higher order bits 
as flags).

Also at flush time, don't we want all that could be in the snapshot sync'd 
rather than just appended?  I know sync is a pretty faint guarantee but it 
would be better than our using a seqid of an edit not sync'd?  Thinking on it, 
this might not be necessay.  If the flush succeeds, we probably had a sync come 
in in in the meantime.  Could do a sync outside of the update lock to be sure.

What you think boss?  (thanks for the help here).


> 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-10915) Decouple region closing (HM and HRS) from ZK

2014-04-30 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-10915:
-

If the approach in HBASE-11092 looks right I think it'd be better to commit it 
first, as it's another kind of infrastrusture task (also [~sergey.soldatov] 
needs that in his work on splitting and merging regions).

> 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] [Updated] (HBASE-11092) Server interface should have method getConsensusProvider()

2014-04-30 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:


Description: 
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.

Since Server interface lives in hbase-client maven module, the following 
approach is implemented in this patch:

 - hbase-client module has very basic (almost marker) interface 
ConsensusProviderto return instance of consensus provider from the Server
 - hbase-server module has BaseConsensusProvider which defines the consensus 
interfaces
 - Implementations shall subclass BaseConsensusProvider
 - whoever wants to get ConsensusProvider from raw Server interface on 
hbase-server side, has to typecast: (BaseConsensusProvider) 

  was: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.


> 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.
> Since Server interface lives in hbase-client maven module, the following 
> approach is implemented in this patch:
>  - hbase-client module has very basic (almost marker) interface 
> ConsensusProviderto return instance of consensus provider from the Server
>  - hbase-server module has BaseConsensusProvider which defines the consensus 
> interfaces
>  - Implementations shall subclass BaseConsensusProvider
>  - whoever wants to get ConsensusProvider from raw Server interface on 
> hbase-server side, has to typecast: (BaseConsensusProvider) 



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


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

2014-04-30 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:


Description: 
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.

Since Server interface lives in hbase-client maven module, the following 
approach is implemented in this patch:

 - hbase-client module has very basic (almost marker) interface 
ConsensusProvider to return instance of consensus provider from the Server
 - hbase-server module has BaseConsensusProvider which defines the consensus 
interfaces
 - Implementations shall subclass BaseConsensusProvider
 - whoever wants to get ConsensusProvider from raw Server interface on 
hbase-server side, has to typecast: (BaseConsensusProvider) 

  was:
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.

Since Server interface lives in hbase-client maven module, the following 
approach is implemented in this patch:

 - hbase-client module has very basic (almost marker) interface 
ConsensusProviderto return instance of consensus provider from the Server
 - hbase-server module has BaseConsensusProvider which defines the consensus 
interfaces
 - Implementations shall subclass BaseConsensusProvider
 - whoever wants to get ConsensusProvider from raw Server interface on 
hbase-server side, has to typecast: (BaseConsensusProvider) 


> 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.
> Since Server interface lives in hbase-client maven module, the following 
> approach is implemented in this patch:
>  - hbase-client module has very basic (almost marker) interface 
> ConsensusProvider to return instance of consensus provider from the Server
>  - hbase-server module has BaseConsensusProvider which defines the consensus 
> interfaces
>  - Implementations shall subclass BaseConsensusProvider
>  - whoever wants to get ConsensusProvider from raw Server interface on 
> hbase-server side, has to typecast: (BaseConsensusProvider) 



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


[jira] [Commented] (HBASE-10835) DBE encode path improvements

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

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

Anoop Sam John commented on HBASE-10835:


https://reviews.apache.org/r/20936
Also comment from Matt is fixed in this version.

> DBE encode path improvements
> 
>
> Key: HBASE-10835
> URL: https://issues.apache.org/jira/browse/HBASE-10835
> Project: HBase
>  Issue Type: Improvement
>Reporter: Anoop Sam John
>Assignee: Anoop Sam John
> Fix For: 0.99.0
>
> Attachments: HBASE-10835.patch, HBASE-10835_V2.patch, 
> HBASE-10835_V3.patch
>
>
> Here 1st we write KVs (Cells) into a buffer and then passed to DBE encoder. 
> Encoder again reads kvs one by one from the buffer and encodes and creates a 
> new buffer.
> There is no need to have this model now. Previously we had option of no 
> encode in disk and encode only in cache. At that time the read buffer from a 
> HFile block was passed to this and encodes.
> So encode cell by cell can be done now. Making this change will need us to 
> have a NoOp DBE impl which just do the write of a cell as it is with out any 
> encoding.



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


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

2014-04-30 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-10915:
-

Well, it's actually open question about packaging. We talked before that 
there's is option to put it all in o.a.h.h.consensus.*, because those 
transactions have HM and HRS side. But, for closing operations specifically, 
there's pretty much no ZK operations on HM side, so I was not entirely sure 
what the right package is.

When I think at high level, ZK is used know mostly to coordinate ops between HM 
and HRS, so operations which has to be abstracted presumably, mostly involve 
both HM and HRS side. So may be for now put it all under o.a.h.h.consensus?

Regarding interfaces - could you please take a look at HBASE-11092? (the latest 
patch is combination of 2 diffs I need to squash and rebase to make it go thru 
hadoop-qa, but it's working patch. 


> 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] [Updated] (HBASE-10835) DBE encode path improvements

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

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

Anoop Sam John updated HBASE-10835:
---

Attachment: HBASE-10835_V3.patch

> DBE encode path improvements
> 
>
> Key: HBASE-10835
> URL: https://issues.apache.org/jira/browse/HBASE-10835
> Project: HBase
>  Issue Type: Improvement
>Reporter: Anoop Sam John
>Assignee: Anoop Sam John
> Fix For: 0.99.0
>
> Attachments: HBASE-10835.patch, HBASE-10835_V2.patch, 
> HBASE-10835_V3.patch
>
>
> Here 1st we write KVs (Cells) into a buffer and then passed to DBE encoder. 
> Encoder again reads kvs one by one from the buffer and encodes and creates a 
> new buffer.
> There is no need to have this model now. Previously we had option of no 
> encode in disk and encode only in cache. At that time the read buffer from a 
> HFile block was passed to this and encodes.
> So encode cell by cell can be done now. Making this change will need us to 
> have a NoOp DBE impl which just do the write of a cell as it is with out any 
> encoding.



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


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

2014-04-30 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-8763:
--

The reason using MutableLong object is that at the very beginning we don't know 
the real sync sequence number(due to the late binding) so I use MutableLong 
object which keeps a "faked" big sequence number. All new KVs and related of 
this transation reference this mvcc mutablelong object. Once after the 
corresponding WALEdit is synced(after SyncOrDefer call), we have the real 
sequence number and I reset the value of the MutaleLong in one place so all new 
KVs in MemStore will see the updated sequence number(because they keep the 
reference to this MVCC(MutableLong) instance.

If our WAL Sync doesn't late binding then I don't need to use MutableLong.

[~enis] is suggesting not to use MutableLong while keeping all new KVs and 
reset their MVCC values in an extra loop. This may be hard to implement because 
our pre & post co-processor copies MVCC values as in the code you pasted 
above(where I changed to copy reference)
{code}
newKv.setMvccVersion(kv.getMvccVersionReference());
{code}

My plan is to get all tests pass and then do enhancement/refactoring that you 
and [~enis] are suggesting.
 

> [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-10915) Decouple region closing (HM and HRS) from ZK

2014-04-30 Thread stack (JIRA)

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

stack commented on HBASE-10915:
---

You think +++ 
hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/consensus/CloseRegionConsensus.java
 should be in a subpackage?  Strikes me that it core to HRS operation so so 
should be at same level.

This is very nice:

{code}
-int versionOfClosingNode = -1;
-if (request.hasVersionOfClosingNode()) {
-  versionOfClosingNode = request.getVersionOfClosingNode();
-}
-boolean zk = request.getTransitionInZK();
 final ServerName sn = (request.hasDestinationServer() ?
   ProtobufUtil.toServerName(request.getDestinationServer()) : null);
 
@@ -887,10 +883,11 @@
   }
 
   requestCount.increment();
-  LOG.info("Close " + encodedRegionName + ", via zk=" + (zk ? "yes" : "no")
-+ ", znode version=" + versionOfClosingNode + ", on " + sn);
+  LOG.info("Close " + encodedRegionName + ", on " + sn);
+  CloseRegionConsensus.CloseRegionDetails crd = 
regionServer.getConsensusProvider()
+.getCloseRegionConsensus().parseFromProtoRequest(request);
{code}

Hide that ugly zk stuff!

Good:

-  boolean closed = regionServer.closeRegion(encodedRegionName, false, zk, 
versionOfClosingNode, sn);
+  boolean closed = regionServer.closeRegion(encodedRegionName, false, crd, 
sn);

What can we do about this Mikhail?

+import org.apache.hadoop.hbase.regionserver.consensus.CloseRegionConsensus;
+import org.apache.hadoop.hbase.regionserver.consensus.ZkCloseRegionConsensus;

It seems odd that a o.a.h.h.consensus package would import lower-level RS 
stuff.  Can Interface only be up at this level but the impementation down in 
RS?   I suppose you want to have a listing of all the ZK implementations up 
here at the top level though they are implemented all over.  I suppose we could 
live w/ that but given the little trick above you do w/ details, you might have 
another up your sleeve to solve this package tangle.

Otherwise, this is close IMO ([~jxiang] You should take a look at this if you 
get a chance -- I think you'll like it)

> 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-8763) [BRAINSTORM] Combine MVCC and SeqId

2014-04-30 Thread stack (JIRA)

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

stack commented on HBASE-8763:
--

(Pardon me; am excited about this one so went back to do some more study...)

So yeah, why do a MutableLong in KV rather than just a volatile?  Probably same 
in the end...  I see you want to get a reference to a KV.  You trying to tie a 
KV to something else in case the mvcc gets updated?

Maybe this is it:

-newKv.setMvccVersion(kv.getMvccVersion());
+newKv.setMvccVersion(kv.getMvccVersionReference());

We are cloning.  The original gets updated later?  You want to make sure clone 
is updated too?

Would be cool if we could get rid of this clone one day.



> [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-10771) Primitive type put/get APIs in ByteRange

2014-04-30 Thread Matt Corgan (JIRA)

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

Matt Corgan commented on HBASE-10771:
-

Looks good to me.  It looks like the encoding matches the LittleEndian 
representation from Bits.java, so a ByteBuffer implementation should be able to 
call straight through to its internal putInt method if we deem that's faster 
than writing 4 individual bytes to the ByteBuffer.

putInt from java.io.Bits.java{code}
private static byte int3(int x) { return (byte)(x >> 24); }
private static byte int2(int x) { return (byte)(x >> 16); }
private static byte int1(int x) { return (byte)(x >>  8); }
private static byte int0(int x) { return (byte)(x  ); }

static void putIntL(ByteBuffer bb, int bi, int x) {
bb._put(bi + 3, int3(x));
bb._put(bi + 2, int2(x));
bb._put(bi + 1, int1(x));
bb._put(bi, int0(x));
}
{code}

putInt from hbase's Bytes.java{code}
  public static int putInt(byte[] bytes, int offset, int val) {
if (bytes.length - offset < SIZEOF_INT) {
  throw new IllegalArgumentException("Not enough room to put an int at"
  + " offset " + offset + " in a " + bytes.length + " byte array");
}
for(int i= offset + 3; i > offset; i--) {
  bytes[i] = (byte) val;
  val >>>= 8;
}
bytes[offset] = (byte) val;
return offset + SIZEOF_INT;
  }{code}

Might be interesting to add a test to confirm that.  You could write to an 
array using a ByteRange and then ByteBuffer.wrap(br.getArray()) and read the 
values back.

> Primitive type put/get APIs in ByteRange 
> -
>
> Key: HBASE-10771
> URL: https://issues.apache.org/jira/browse/HBASE-10771
> Project: HBase
>  Issue Type: Improvement
>Reporter: Anoop Sam John
>Assignee: Anoop Sam John
> Fix For: 0.99.0
>
> Attachments: HBASE-10771.patch, HBASE-10771_V2.patch, 
> HBASE-10771_V3.patch
>
>
> While doing HBASE-10713 I came across the need to write int/long (and read 
> also) from a ByteRange.  CellBlocks are backed by ByteRange. So we can add 
> such APIs.
> Also as per HBASE-10750  we return a ByteRange from MSLAB and also discussion 
> under HBASE-10191 suggest we can have BR backed HFileBlocks etc.  



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


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

2014-04-30 Thread Mikhail Antonov (JIRA)

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

Mikhail Antonov commented on HBASE-10915:
-

TestVisibilityLabelsWithDistributedLogReplay passes locally for me (timed out 
by hadoop-qa), but TestRegionObserverInterface is genuine regression, looking 
into it.

> 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-11099) Two situations where we could open a region with smaller sequence number

2014-04-30 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-11099:
---

[~saint@gmail.com] Is that possible that we assign the sequence number in 
AppendNoSync call without late binding assignment because the order of changes 
in the "ring buffer" will be preserved till real WAL sync?

> 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-10835) DBE encode path improvements

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

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

Anoop Sam John commented on HBASE-10835:


Sure I will put it in RB. 

> DBE encode path improvements
> 
>
> Key: HBASE-10835
> URL: https://issues.apache.org/jira/browse/HBASE-10835
> Project: HBase
>  Issue Type: Improvement
>Reporter: Anoop Sam John
>Assignee: Anoop Sam John
> Fix For: 0.99.0
>
> Attachments: HBASE-10835.patch, HBASE-10835_V2.patch
>
>
> Here 1st we write KVs (Cells) into a buffer and then passed to DBE encoder. 
> Encoder again reads kvs one by one from the buffer and encodes and creates a 
> new buffer.
> There is no need to have this model now. Previously we had option of no 
> encode in disk and encode only in cache. At that time the read buffer from a 
> HFile block was passed to this and encodes.
> So encode cell by cell can be done now. Making this change will need us to 
> have a NoOp DBE impl which just do the write of a cell as it is with out any 
> encoding.



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


[jira] [Commented] (HBASE-10835) DBE encode path improvements

2014-04-30 Thread Matt Corgan (JIRA)

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

Matt Corgan commented on HBASE-10835:
-

Anoop, i don't see anything wrong but could get a better feel for it on 
reviewboard.  Let me know if that's possible or if I missed a review request.

> DBE encode path improvements
> 
>
> Key: HBASE-10835
> URL: https://issues.apache.org/jira/browse/HBASE-10835
> Project: HBase
>  Issue Type: Improvement
>Reporter: Anoop Sam John
>Assignee: Anoop Sam John
> Fix For: 0.99.0
>
> Attachments: HBASE-10835.patch, HBASE-10835_V2.patch
>
>
> Here 1st we write KVs (Cells) into a buffer and then passed to DBE encoder. 
> Encoder again reads kvs one by one from the buffer and encodes and creates a 
> new buffer.
> There is no need to have this model now. Previously we had option of no 
> encode in disk and encode only in cache. At that time the read buffer from a 
> HFile block was passed to this and encodes.
> So encode cell by cell can be done now. Making this change will need us to 
> have a NoOp DBE impl which just do the write of a cell as it is with out any 
> encoding.



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


[jira] [Commented] (HBASE-10835) DBE encode path improvements

2014-04-30 Thread Matt Corgan (JIRA)

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

Matt Corgan commented on HBASE-10835:
-

{code}
+@InterfaceAudience.Private
+public class EncoderPoolImpl implements EncoderPool {
+
+  private List unusedEncoders = new 
ArrayList();
+
+  @Override
+  public PrefixTreeEncoder checkOut(OutputStream outputStream, boolean 
includeMvccVersion) {
+PrefixTreeEncoder encoder = null;
+synchronized (this) {
+  if (!unusedEncoders.isEmpty()) {
+encoder = unusedEncoders.remove(0);
+  }
+}
+if (encoder == null) {
+  encoder = new PrefixTreeEncoder(outputStream, includeMvccVersion);
+} else {
+  encoder.reset(outputStream, includeMvccVersion);
+}
+return encoder;
+  }
+
+  @Override
+  public void checkIn(PrefixTreeEncoder encoder) {
+synchronized (this) {
+  this.unusedEncoders.add(encoder);
+}
+  }
+}
{code}
instead of a plain ArrayList for unusedEncoders, maybe you should use a 
LinkedBlockingQueue?  then you wouldn't have to synchronize the methods

> DBE encode path improvements
> 
>
> Key: HBASE-10835
> URL: https://issues.apache.org/jira/browse/HBASE-10835
> Project: HBase
>  Issue Type: Improvement
>Reporter: Anoop Sam John
>Assignee: Anoop Sam John
> Fix For: 0.99.0
>
> Attachments: HBASE-10835.patch, HBASE-10835_V2.patch
>
>
> Here 1st we write KVs (Cells) into a buffer and then passed to DBE encoder. 
> Encoder again reads kvs one by one from the buffer and encodes and creates a 
> new buffer.
> There is no need to have this model now. Previously we had option of no 
> encode in disk and encode only in cache. At that time the read buffer from a 
> HFile block was passed to this and encodes.
> So encode cell by cell can be done now. Making this change will need us to 
> have a NoOp DBE impl which just do the write of a cell as it is with out any 
> encoding.



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


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

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

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

ramkrishna.s.vasudevan commented on HBASE-10885:


Let me change the code to track the visibility expression per ts.

> 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-30 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan commented on HBASE-10885:


In the current case only one gets applied.  So need to track the vis expression 
based on ts.
One more thing to note here is 
bq.For deleteFamily case all cells with ts <=103 are candidates for delete
Here because deleteFamily with ts = 103 satisfies the condition I think from 
that cell onwards all the cells less than 103 should also be covered because it 
is deleteFamily.  If it is deleteFamilyVersion then we need to check for exact 
match only.  But here I think once we find the cell with matching visibility 
expression the ones below that also should get deleted.
Which means if a deleteFamily says ts = 103 and assume in this case the ts =101 
only matches the vis expression then from 101 on wards all cells less than 101 
should be masked.

> 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-30 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-10885:


Yes as u said , without vis exp  the delete will remove all cells except ts=105
With vis exp in delete, the exact version delete should delete cell ts=104 as 
the vis exps are matching. For deleteFamily case all cells with ts <=103 are 
candidates for delete but u can see only one cell with ts=103 is having 
matching vis exp withh that in the delete cell. Cells with ts 102 and 101 are 
not having matching vis exps and so should not be getting deleted. 

> 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] [Updated] (HBASE-11051) checkJavacWarnings in test-patch.sh should bail out early if there is compilation error

2014-04-30 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-11051:
---

Description: 
Currently checkJavacWarnings doesn't exit QA script in the presence of 
compilation error.
Here is one example: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9360/console .

checkJavacWarnings should do the following so that it is clear what caused the 
QA run to fail:
{code}
  if [[ $? != 0 ]] ; then
ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt`
echo "Trunk compilation is broken?
\{code\}$ERR\{code\}"
cleanupAndExit 1
  fi
{code}

  was:
Currently checkJavacWarnings doesn't exit QA script in the presence of 
compilation error.
Here is one example: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9360/console .

checkJavacWarnings should do the following so that it is clear what caused the 
QA run to fail:
{code}
  if [[ $? != 0 ]] ; then
ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt`
echo "Trunk compilation is broken?
{code}$ERR{code}"
cleanupAndExit 1
  fi
{code}


> checkJavacWarnings in test-patch.sh should bail out early if there is 
> compilation error
> ---
>
> Key: HBASE-11051
> URL: https://issues.apache.org/jira/browse/HBASE-11051
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Assignee: Gustavo Anatoly
>Priority: Minor
> Attachments: HBASE-11051-v1.patch, HBASE-11051.patch
>
>
> Currently checkJavacWarnings doesn't exit QA script in the presence of 
> compilation error.
> Here is one example: 
> https://builds.apache.org/job/PreCommit-HBASE-Build/9360/console .
> checkJavacWarnings should do the following so that it is clear what caused 
> the QA run to fail:
> {code}
>   if [[ $? != 0 ]] ; then
> ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt`
> echo "Trunk compilation is broken?
> \{code\}$ERR\{code\}"
> cleanupAndExit 1
>   fi
> {code}



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


[jira] [Updated] (HBASE-11051) checkJavacWarnings in test-patch.sh should bail out early if there is compilation error

2014-04-30 Thread Gustavo Anatoly (JIRA)

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

Gustavo Anatoly updated HBASE-11051:


Attachment: HBASE-11051-v1.patch

Commented line removed.

> checkJavacWarnings in test-patch.sh should bail out early if there is 
> compilation error
> ---
>
> Key: HBASE-11051
> URL: https://issues.apache.org/jira/browse/HBASE-11051
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Assignee: Gustavo Anatoly
>Priority: Minor
> Attachments: HBASE-11051-v1.patch, HBASE-11051.patch
>
>
> Currently checkJavacWarnings doesn't exit QA script in the presence of 
> compilation error.
> Here is one example: 
> https://builds.apache.org/job/PreCommit-HBASE-Build/9360/console .
> checkJavacWarnings should do the following so that it is clear what caused 
> the QA run to fail:
> {code}
>   if [[ $? != 0 ]] ; then
> ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt`
> echo "Trunk compilation is broken?
> {code}$ERR{code}"
> cleanupAndExit 1
>   fi
> {code}



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


[jira] [Updated] (HBASE-11051) checkJavacWarnings in test-patch.sh should bail out early if there is compilation error

2014-04-30 Thread Gustavo Anatoly (JIRA)

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

Gustavo Anatoly updated HBASE-11051:


Status: Patch Available  (was: Open)

> checkJavacWarnings in test-patch.sh should bail out early if there is 
> compilation error
> ---
>
> Key: HBASE-11051
> URL: https://issues.apache.org/jira/browse/HBASE-11051
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Assignee: Gustavo Anatoly
>Priority: Minor
> Attachments: HBASE-11051.patch
>
>
> Currently checkJavacWarnings doesn't exit QA script in the presence of 
> compilation error.
> Here is one example: 
> https://builds.apache.org/job/PreCommit-HBASE-Build/9360/console .
> checkJavacWarnings should do the following so that it is clear what caused 
> the QA run to fail:
> {code}
>   if [[ $? != 0 ]] ; then
> ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt`
> echo "Trunk compilation is broken?
> {code}$ERR{code}"
> cleanupAndExit 1
>   fi
> {code}



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


[jira] [Updated] (HBASE-11051) checkJavacWarnings in test-patch.sh should bail out early if there is compilation error

2014-04-30 Thread Gustavo Anatoly (JIRA)

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

Gustavo Anatoly updated HBASE-11051:


Attachment: HBASE-11051.patch

> checkJavacWarnings in test-patch.sh should bail out early if there is 
> compilation error
> ---
>
> Key: HBASE-11051
> URL: https://issues.apache.org/jira/browse/HBASE-11051
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Assignee: Gustavo Anatoly
>Priority: Minor
> Attachments: HBASE-11051.patch
>
>
> Currently checkJavacWarnings doesn't exit QA script in the presence of 
> compilation error.
> Here is one example: 
> https://builds.apache.org/job/PreCommit-HBASE-Build/9360/console .
> checkJavacWarnings should do the following so that it is clear what caused 
> the QA run to fail:
> {code}
>   if [[ $? != 0 ]] ; then
> ERR=`$GREP -A 5 'Compilation failure' $PATCH_DIR/trunkJavacWarnings.txt`
> echo "Trunk compilation is broken?
> {code}$ERR{code}"
> cleanupAndExit 1
>   fi
> {code}



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


[jira] [Commented] (HBASE-10942) support parallel request cancellation for multi-get

2014-04-30 Thread Sergey Shelukhin (JIRA)

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

Sergey Shelukhin commented on HBASE-10942:
--

yeah ping?

> support parallel request cancellation for multi-get
> ---
>
> Key: HBASE-10942
> URL: https://issues.apache.org/jira/browse/HBASE-10942
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Sergey Shelukhin
>Assignee: Sergey Shelukhin
> Fix For: hbase-10070
>
> Attachments: HBASE-10942.01.patch, HBASE-10942.patch
>
>




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


[jira] [Assigned] (HBASE-11104) IntegrationTestImportTsv#testRunFromOutputCommitter misses credential initialization

2014-04-30 Thread Ted Yu (JIRA)

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

Ted Yu reassigned HBASE-11104:
--

Assignee: Ted Yu

> IntegrationTestImportTsv#testRunFromOutputCommitter misses credential 
> initialization
> 
>
> Key: HBASE-11104
> URL: https://issues.apache.org/jira/browse/HBASE-11104
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Assignee: Ted Yu
>Priority: Minor
> Attachments: 11104-v1.txt
>
>
> IntegrationTestImportTsv#testRunFromOutputCommitter a parent job that ships 
> the HBase dependencies.
> However, call to TableMapReduceUtil.initCredentials(job) is missing - making 
> this test fail on a secure cluster.



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


[jira] [Updated] (HBASE-10184) [Online Schema Change]: Add additional tests for online schema change

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10184:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> [Online Schema Change]: Add additional tests for online schema change
> -
>
> Key: HBASE-10184
> URL: https://issues.apache.org/jira/browse/HBASE-10184
> Project: HBase
>  Issue Type: Task
>  Components: test
>Affects Versions: 0.96.1, 0.99.0
>Reporter: Aleksandr Shulman
>Assignee: Aleksandr Shulman
>  Labels: online_schema_change
> Fix For: 0.99.0, 0.98.3
>
> Attachments: 10184-4.patch, 10184.addendum, HBASE-10184-trunk.diff
>
>
> There are some gaps in testing for Online Schema Change:
> Examples of some tests that should be added:
> 1. Splits with online schema change
> 2. Merge during online schema change
> 3. MR over HBase during online schema change
> 4. Bulk Load during online schema change
> 5. Online change table owner
> 6. Online Replication scope change
> 7. Online Bloom Filter change
> 8. Snapshots during online schema change (HBASE-10136)



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


[jira] [Updated] (HBASE-10052) use HDFS advisory caching to avoid caching HFiles that are not going to be read again (because they are being compacted)

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10052:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> use HDFS advisory caching to avoid caching HFiles that are not going to be 
> read again (because they are being compacted)
> 
>
> Key: HBASE-10052
> URL: https://issues.apache.org/jira/browse/HBASE-10052
> Project: HBase
>  Issue Type: Improvement
>Reporter: Colin Patrick McCabe
>Priority: Minor
> Fix For: 0.99.0, 0.98.3
>
>
> HBase can benefit from doing dropbehind during compaction since compacted 
> files are not read again.  HDFS advisory caching, introduced in HDFS-4817, 
> can help here.  The right API here is {{DataInputStream#setDropBehind}}.



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


[jira] [Updated] (HBASE-5554) "hadoop.native.lib" config is deprecated

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-5554:
--

Fix Version/s: (was: 0.98.3)
   (was: 0.96.3)
   (was: 0.99.0)

> "hadoop.native.lib" config is deprecated
> 
>
> Key: HBASE-5554
> URL: https://issues.apache.org/jira/browse/HBASE-5554
> Project: HBase
>  Issue Type: Task
>Reporter: Ted Yu
>Assignee: Esteban Gutierrez
> Attachments: HBASE-5554.v0.patch
>
>
> When using HBase shell, we see:
> {code}
> 12/03/09 09:06:58 WARN conf.Configuration: hadoop.native.lib is deprecated. 
> Instead, use io.native.lib.available
> {code}
> "io.native.lib.available" should be used.



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


[jira] [Updated] (HBASE-10844) Coprocessor failure during batchmutation leaves the memstore datastructs in an inconsistent state

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10844:
---

Fix Version/s: (was: 0.94.20)
   (was: 0.96.3)
   (was: 0.98.2)
   (was: 0.99.0)

> Coprocessor failure during batchmutation leaves the memstore datastructs in 
> an inconsistent state
> -
>
> Key: HBASE-10844
> URL: https://issues.apache.org/jira/browse/HBASE-10844
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Reporter: Devaraj Das
>Assignee: Devaraj Das
> Attachments: 10844-1.txt
>
>
> Observed this in the testing with Phoenix. The test in Phoenix - 
> MutableIndexFailureIT deliberately fails the batchmutation call via the 
> installed coprocessor. But the update is not rolled back. That leaves the 
> memstore inconsistent. In particular, I observed that getFlushableSize is 
> updated before the coprocessor was called but the update is not rolled back. 
> When the region is being closed at some later point, the assert introduced in 
> HBASE-10514 in the HRegion.doClose() causes the RegionServer to shutdown 
> abnormally.



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


[jira] [Updated] (HBASE-10883) Restrict the universe of labels and authorizations

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10883:
---

Fix Version/s: (was: 0.98.3)
   0.98.2

> Restrict the universe of labels and authorizations
> --
>
> Key: HBASE-10883
> URL: https://issues.apache.org/jira/browse/HBASE-10883
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10883.patch, HBASE-10883_1.patch, 
> HBASE-10883_2.patch, HBASE-10883_3.patch, HBASE-10883_4.patch, 
> HBASE-10883_5.patch, HBASE-10883_6.patch, HBASE-10883_7.patch
>
>
> Currently we allow any string as visibility label or request authorization. 
> However as seen on HBASE-10878, we accept for authorizations strings that 
> would not work if provided as labels in visibility expressions. We should 
> throw an exception at least in cases where someone tries to define or use a 
> label or authorization including visibility expression operators '&', '|', 
> '!', '(', ')'.



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


[jira] [Commented] (HBASE-11048) Support setting custom priority per client RPC

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11048:


This missed 0.98.2. Perhaps for 0.98.3 next month?

> Support setting custom priority per client RPC
> --
>
> Key: HBASE-11048
> URL: https://issues.apache.org/jira/browse/HBASE-11048
> Project: HBase
>  Issue Type: Improvement
>  Components: Client
>Affects Versions: 0.99.0, 0.98.2
>Reporter: Jesse Yates
>Assignee: Jesse Yates
>  Labels: Phoenix
> Fix For: 0.99.0, 0.98.3
>
> Attachments: hbase-11048-trunk-v0.patch
>
>
> Servers have the ability to handle custom rpc priority levels, but currently 
> we are only using it to differentiate META/ROOT updates from replication and 
> other 'priority' updates (as specified by annotation tags per RS method). 
> However, some clients need the ability to create custom handlers (e.g. 
> PHOENIX-938) which can really only be cleanly tied together to requests by 
> the request priority. The disconnect is in that there is no way for the 
> client to overwrite the priority per table - the PayloadCarryingRpcController 
> will always just set priority per ROOT/META and otherwise just use the 
> generic priority.



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


[jira] [Resolved] (HBASE-10883) Restrict the universe of labels and authorizations

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-10883.


  Resolution: Fixed
Hadoop Flags: Reviewed

This was committed.

> Restrict the universe of labels and authorizations
> --
>
> Key: HBASE-10883
> URL: https://issues.apache.org/jira/browse/HBASE-10883
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0, 0.98.2
>
> Attachments: HBASE-10883.patch, HBASE-10883_1.patch, 
> HBASE-10883_2.patch, HBASE-10883_3.patch, HBASE-10883_4.patch, 
> HBASE-10883_5.patch, HBASE-10883_6.patch, HBASE-10883_7.patch
>
>
> Currently we allow any string as visibility label or request authorization. 
> However as seen on HBASE-10878, we accept for authorizations strings that 
> would not work if provided as labels in visibility expressions. We should 
> throw an exception at least in cases where someone tries to define or use a 
> label or authorization including visibility expression operators '&', '|', 
> '!', '(', ')'.



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


[jira] [Commented] (HBASE-11048) Support setting custom priority per client RPC

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11048:


This missed 0.98.2. Perhaps for 0.98.3 next month?

> Support setting custom priority per client RPC
> --
>
> Key: HBASE-11048
> URL: https://issues.apache.org/jira/browse/HBASE-11048
> Project: HBase
>  Issue Type: Improvement
>  Components: Client
>Affects Versions: 0.99.0, 0.98.2
>Reporter: Jesse Yates
>Assignee: Jesse Yates
>  Labels: Phoenix
> Fix For: 0.99.0, 0.98.3
>
> Attachments: hbase-11048-trunk-v0.patch
>
>
> Servers have the ability to handle custom rpc priority levels, but currently 
> we are only using it to differentiate META/ROOT updates from replication and 
> other 'priority' updates (as specified by annotation tags per RS method). 
> However, some clients need the ability to create custom handlers (e.g. 
> PHOENIX-938) which can really only be cleanly tied together to requests by 
> the request priority. The disconnect is in that there is no way for the 
> client to overwrite the priority per table - the PayloadCarryingRpcController 
> will always just set priority per ROOT/META and otherwise just use the 
> generic priority.



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


[jira] [Updated] (HBASE-11070) [AccessController] Restore early-out access denial if the user has no access at the table or CF level

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11070:
---

Fix Version/s: (was: 0.98.3)
   (was: 0.99.0)

> [AccessController] Restore early-out access denial if the user has no access 
> at the table or CF level
> -
>
> Key: HBASE-11070
> URL: https://issues.apache.org/jira/browse/HBASE-11070
> Project: HBase
>  Issue Type: Task
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>
> We want to support two different use cases for cell ACLs:
> 1. The user can see all cells in a table or CF unless a cell ACL denies access
> 2. The user cannot see any cells in a table or CF unless a cell ACL grants 
> access
> For the sake of flexibility we made it a toggle on an operation by operation 
> basis. However this changed the behavior of the AccessController with respect 
> to how requests for which a user has no grant at the table or CF level are 
> handled. Prior to the cell ACL changes if a user had no grant at the table or 
> CF level, they would see an AccessDeniedException. We can't do that if we 
> want cell ACLs to provide exceptional access. Subsequent to the cell ACL 
> changes if a user has no grant at the table or CF level, there is no 
> exception, they simply won't see any cells except those granting exceptional 
> access at the cell level. This also brings the AccessController semantics in 
> line with those of the new VisibilityController. 
> Feedback on dev@ is this change is a bridge too far for at least three 
> reasons. First, it is surprising (Enis and Vandana). Second, the audit trail 
> is affected or missing (Enis). Third, it allows any user on the cluster to 
> mount targeted queries against all tables looking for timing differences, 
> that depending on schema design could possibly leak the existence in row keys 
> of sensitive information, or leak the size of the table (Todd). Although we 
> can't prevent timing attacks in general we can limit the scope of what a user 
> can explore by restoring early-out access denial if the user has no access at 
> the table or CF level.
> We can make early-out access denial if the user has no access at the table or 
> CF level configurable on a per table basis. Setting the default to "false", 
> with a release note and paragraph in the security guide explaining how to 
> reintroduce the old behavior, would address the above and not introduce 
> another surprising change among 0.98 releases. If the consensus is 
> (presumably a milder) surprise due to this change is fine, then the default 
> could be "true"



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


[jira] [Updated] (HBASE-9445) Snapshots should create column family dirs for empty regions

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-9445:
--

Fix Version/s: (was: 0.98.2)
   0.98.3

> Snapshots should create column family dirs for empty regions
> 
>
> Key: HBASE-9445
> URL: https://issues.apache.org/jira/browse/HBASE-9445
> Project: HBase
>  Issue Type: Bug
>  Components: snapshots
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: 0.99.0, 0.98.3
>
> Attachments: hbase-9445_v1.patch, hbase-9445_v2.patch, 
> hbase-9445_v3.patch, hbase-9445_v4.patch
>
>
> Currently, taking a snapshot will not create the family directory under a 
> region if the family does not have any files in it. 
> Subsequent verification fails because of this. There is some logic in the 
> SnapshotTestingUtils.confirmSnapshotValid() to deal with empty family 
> directories, but I think we should create the family directories regardless 
> of whether there are any hfiles referencing them. 
> {code}
> 2013-09-05 11:07:21,566 DEBUG [Thread-208] util.FSUtils(1687): |-data/
> 2013-09-05 11:07:21,567 DEBUG [Thread-208] util.FSUtils(1687): |default/
> 2013-09-05 11:07:21,568 DEBUG [Thread-208] util.FSUtils(1687): |---test/
> 2013-09-05 11:07:21,569 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tabledesc/
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.tableinfo.01
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tmp/
> 2013-09-05 11:07:21,571 DEBUG [Thread-208] util.FSUtils(1687): 
> |--accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.regioninfo
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1687): 
> |-fam/
> 2013-09-05 11:07:21,555 DEBUG [Thread-208] util.FSUtils(1687): 
> |-.hbase-snapshot/
> 2013-09-05 11:07:21,556 DEBUG [Thread-208] util.FSUtils(1687): |.tmp/
> 2013-09-05 11:07:21,557 DEBUG [Thread-208] util.FSUtils(1687): 
> |offlineTableSnapshot/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |---.snapshotinfo
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1687): 
> |---.tabledesc/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.tableinfo.01
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): |---.tmp/
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): 
> |---accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,560 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.regioninfo
> {code}
> I think this is important for 0.96.0. 



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


[jira] [Updated] (HBASE-10536) ImportTsv should fail fast if any of the column family passed to the job is not present in the table

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10536:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> ImportTsv should fail fast if any of the column family passed to the job is 
> not present in the table
> 
>
> Key: HBASE-10536
> URL: https://issues.apache.org/jira/browse/HBASE-10536
> Project: HBase
>  Issue Type: Bug
>  Components: mapreduce
>Affects Versions: 0.98.0
>Reporter: rajeshbabu
>Assignee: rajeshbabu
> Fix For: 0.99.0, 0.96.3, 0.94.20, 0.98.3
>
>
> While checking 0.98 rc, running bulkload tools. By mistake passed wrong 
> column family to importtsv. LoadIncrementalHfiles failed with following 
> exception
> {code}
> Exception in thread "main" java.io.IOException: Unmatched family names found: 
> unmatched family names in HFiles to be bulkloaded: [f1]; valid family names 
> of table test are: [f]
> at 
> org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.doBulkLoad(LoadIncrementalHFiles.java:241)
> at 
> org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.run(LoadIncrementalHFiles.java:823)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
> at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
> at 
> org.apache.hadoop.hbase.mapreduce.LoadIncrementalHFiles.main(LoadIncrementalHFiles.java:828)
> {code}
>  
> Its better to fail fast if any of the passed column family is not present in 
> table.



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


[jira] [Updated] (HBASE-10414) Distributed replay should re-encode WAL entries with its own RPC codec

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10414:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Distributed replay should re-encode WAL entries with its own RPC codec
> --
>
> Key: HBASE-10414
> URL: https://issues.apache.org/jira/browse/HBASE-10414
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.0, 0.99.0
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0, 0.98.3
>
>
> HBASE-10412 allows distributed replay to send WAL entries with tags intact 
> between RegionServers by substituting a WALCodec directly for the RPC codec. 
> We should instead have distributed replay handle WAL entries including tags 
> with its own tag-aware RPC codec and drop the direct use of WALCodecs for 
> that purpose. 



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


[jira] [Updated] (HBASE-10560) Per cell TTLs

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10560:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Per cell TTLs
> -
>
> Key: HBASE-10560
> URL: https://issues.apache.org/jira/browse/HBASE-10560
> Project: HBase
>  Issue Type: New Feature
>Affects Versions: 0.98.0
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
> Fix For: 0.99.0, 0.98.3
>
>
> Now that we have cell tags, we can optionally store TTLs per cell. 



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


[jira] [Updated] (HBASE-10499) In write heavy scenario one of the regions does not get flushed causing RegionTooBusyException

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10499:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> In write heavy scenario one of the regions does not get flushed causing 
> RegionTooBusyException
> --
>
> Key: HBASE-10499
> URL: https://issues.apache.org/jira/browse/HBASE-10499
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.98.0
>Reporter: ramkrishna.s.vasudevan
>Assignee: ramkrishna.s.vasudevan
>Priority: Critical
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-10499.patch, 
> hbase-root-master-ip-10-157-0-229.zip, 
> hbase-root-regionserver-ip-10-93-128-92.zip, master_4e39.log, 
> master_576f.log, rs_4e39.log, rs_576f.log, t1.dump, t2.dump, 
> workloada_0.98.dat
>
>
> I got this while testing 0.98RC.  But am not sure if it is specific to this 
> version.  Doesn't seem so to me.  
> Also it is something similar to HBASE-5312 and HBASE-5568.
> Using 10 threads i do writes to 4 RS using YCSB. The table created has 200 
> regions.  In one of the run with 0.98 server and 0.98 client I faced this 
> problem like the hlogs became more and the system requested flushes for those 
> many regions.
> One by one everything was flushed except one and that one thing remained 
> unflushed.  The ripple effect of this on the client side
> {code}
> com.yahoo.ycsb.DBException: 
> org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 
> 54 actions: RegionTooBusyException: 54 times,
> at com.yahoo.ycsb.db.HBaseClient.cleanup(HBaseClient.java:245)
> at com.yahoo.ycsb.DBWrapper.cleanup(DBWrapper.java:73)
> at com.yahoo.ycsb.ClientThread.run(Client.java:307)
> Caused by: 
> org.apache.hadoop.hbase.client.RetriesExhaustedWithDetailsException: Failed 
> 54 actions: RegionTooBusyException: 54 times,
> at 
> org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.makeException(AsyncProcess.java:187)
> at 
> org.apache.hadoop.hbase.client.AsyncProcess$BatchErrors.access$500(AsyncProcess.java:171)
> at 
> org.apache.hadoop.hbase.client.AsyncProcess.getErrors(AsyncProcess.java:897)
> at 
> org.apache.hadoop.hbase.client.HTable.backgroundFlushCommits(HTable.java:961)
> at 
> org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1225)
> at com.yahoo.ycsb.db.HBaseClient.cleanup(HBaseClient.java:232)
> ... 2 more
> {code}
> On one of the RS
> {code}
> 2014-02-11 08:45:58,714 INFO  [regionserver60020.logRoller] wal.FSHLog: Too 
> many hlogs: logs=38, maxlogs=32; forcing flush of 23 regions(s): 
> 97d8ae2f78910cc5ded5fbb1ddad8492, d396b8a1da05c871edcb68a15608fdf2, 
> 01a68742a1be3a9705d574ad68fec1d7, 1250381046301e7465b6cf398759378e, 
> 127c133f47d0419bd5ab66675aff76d4, 9f01c5d25ddc6675f750968873721253, 
> 29c055b5690839c2fa357cd8e871741e, ca4e33e3eb0d5f8314ff9a870fc43463, 
> acfc6ae756e193b58d956cb71ccf0aa3, 187ea304069bc2a3c825bc10a59c7e84, 
> 0ea411edc32d5c924d04bf126fa52d1e, e2f9331fc7208b1b230a24045f3c869e, 
> d9309ca864055eddf766a330352efc7a, 1a71bdf457288d449050141b5ff00c69, 
> 0ba9089db28e977f86a27f90bbab9717, fdbb3242d3b673bbe4790a47bc30576f, 
> bbadaa1f0e62d8a8650080b824187850, b1a5de30d8603bd5d9022e09c574501b, 
> cc6a9fabe44347ed65e7c325faa72030, 313b17dbff2497f5041b57fe13fa651e, 
> 6b788c498503ddd3e1433a4cd3fb4e39, 3d71274fe4f815882e9626e1cfa050d1, 
> acc43e4b42c1a041078774f4f20a3ff5
> ..
> 2014-02-11 08:47:49,580 INFO  [regionserver60020.logRoller] wal.FSHLog: Too 
> many hlogs: logs=53, maxlogs=32; forcing flush of 2 regions(s): 
> fdbb3242d3b673bbe4790a47bc30576f, 6b788c498503ddd3e1433a4cd3fb4e39
> {code}
> {code}
> 2014-02-11 09:42:44,237 INFO  [regionserver60020.periodicFlusher] 
> regionserver.HRegionServer: regionserver60020.periodicFlusher requesting 
> flush for region 
> usertable,user3654,1392107806977.fdbb3242d3b673bbe4790a47bc30576f. after a 
> delay of 16689
> 2014-02-11 09:42:44,237 INFO  [regionserver60020.periodicFlusher] 
> regionserver.HRegionServer: regionserver60020.periodicFlusher requesting 
> flush for region 
> usertable,user6264,1392107806983.6b788c498503ddd3e1433a4cd3fb4e39. after a 
> delay of 15868
> 2014-02-11 09:42:54,238 INFO  [regionserver60020.periodicFlusher] 
> regionserver.HRegionServer: regionserver60020.periodicFlusher requesting 
> flush for region 
> usertable,user3654,1392107806977.fdbb3242d3b673bbe4790a47bc30576f. after a 
> delay of 20847
> 2014-02-11 09:42:54,238 INFO  [regionserver60020.periodicFlusher] 
> regionserver.HRegionServer: regionserver60020.periodicFlusher requesting 
> flush for region 
> usertable,user6264,1392107806983.6b788c498503dd

[jira] [Updated] (HBASE-8039) Make HDFS replication number configurable for a column family

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-8039:
--

Fix Version/s: (was: 0.98.2)
   0.98.3

> Make HDFS replication number configurable for a column family
> -
>
> Key: HBASE-8039
> URL: https://issues.apache.org/jira/browse/HBASE-8039
> Project: HBase
>  Issue Type: Improvement
>  Components: HFile
>Reporter: Maryann Xue
>Priority: Minor
> Fix For: 0.99.0, 0.98.3
>
>
> To allow users to decide which column family's data is more important and 
> which is less important by specifying a replica number instead of using the 
> default replica number.



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


[jira] [Updated] (HBASE-9804) Startup option for holding user table deployment

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-9804:
--

Fix Version/s: (was: 0.98.2)
   0.98.3

> Startup option for holding user table deployment
> 
>
> Key: HBASE-9804
> URL: https://issues.apache.org/jira/browse/HBASE-9804
> Project: HBase
>  Issue Type: New Feature
>Affects Versions: 0.98.0
>Reporter: Andrew Purtell
>Priority: Minor
> Fix For: 0.99.0, 0.98.3
>
>
> Introduce a boolean configuration option, false by default, that if set to 
> 'true' will cause the master to set all user tables to disabled state at 
> startup. From there, individual tables can be onlined as normal. Add a new 
> admin method HBA#enableAll for convenience, also a new HBA#disableAll for 
> symmetry. Add shell support for sending those new admin commands.



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


[jira] [Updated] (HBASE-9845) Add MR support for cell ACLs

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-9845:
--

Fix Version/s: (was: 0.98.2)
   0.98.3

> Add MR support for cell ACLs
> 
>
> Key: HBASE-9845
> URL: https://issues.apache.org/jira/browse/HBASE-9845
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.0
>Reporter: Andrew Purtell
> Fix For: 0.98.3
>
>
> We should support adding cell ACLs through TableOutputFormat and 
> HFileOutputFormat.



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


[jira] [Updated] (HBASE-6581) Build with hadoop.profile=3.0

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-6581:
--

Fix Version/s: (was: 0.98.2)
   0.98.3

> Build with hadoop.profile=3.0
> -
>
> Key: HBASE-6581
> URL: https://issues.apache.org/jira/browse/HBASE-6581
> Project: HBase
>  Issue Type: Bug
>Reporter: Eric Charles
>Assignee: Eric Charles
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-6581-1.patch, HBASE-6581-2.patch, 
> HBASE-6581-20130821.patch, HBASE-6581-3.patch, HBASE-6581-4.patch, 
> HBASE-6581-5.patch, HBASE-6581-6.patch, HBASE-6581-7.patch, 
> HBASE-6581-8-pom.patch, HBASE-6581.diff, HBASE-6581.diff
>
>
> Building trunk with hadoop.profile=3.0 gives exceptions (see [1]) due to 
> change in the hadoop maven modules naming (and also usage of 3.0-SNAPSHOT 
> instead of 3.0.0-SNAPSHOT in hbase-common).
> I can provide a patch that would move most of hadoop dependencies in their 
> respective profiles and will define the correct hadoop deps in the 3.0 
> profile.
> Please tell me if that's ok to go this way.
> Thx, Eric
> [1]
> $ mvn clean install -Dhadoop.profile=3.0
> [INFO] Scanning for projects...
> [ERROR] The build could not read 3 projects -> [Help 1]
> [ERROR]   
> [ERROR]   The project org.apache.hbase:hbase-server:0.95-SNAPSHOT 
> (/d/hbase.svn/hbase-server/pom.xml) has 3 errors
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-common:jar is missing. @ line 655, column 21
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-annotations:jar is missing. @ line 659, column 21
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-minicluster:jar is missing. @ line 663, column 21
> [ERROR]   
> [ERROR]   The project org.apache.hbase:hbase-common:0.95-SNAPSHOT 
> (/d/hbase.svn/hbase-common/pom.xml) has 3 errors
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-common:jar is missing. @ line 170, column 21
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-annotations:jar is missing. @ line 174, column 21
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-minicluster:jar is missing. @ line 178, column 21
> [ERROR]   
> [ERROR]   The project org.apache.hbase:hbase-it:0.95-SNAPSHOT 
> (/d/hbase.svn/hbase-it/pom.xml) has 3 errors
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-common:jar is missing. @ line 220, column 18
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-annotations:jar is missing. @ line 224, column 21
> [ERROR] 'dependencies.dependency.version' for 
> org.apache.hadoop:hadoop-minicluster:jar is missing. @ line 228, column 21
> [ERROR] 



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


[jira] [Updated] (HBASE-9527) Review all old api that takes a table name as a byte array and ensure none can pass ns + tablename

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-9527:
--

Fix Version/s: (was: 0.98.2)
   0.98.3

> Review all old api that takes a table name as a byte array and ensure none 
> can pass ns + tablename
> --
>
> Key: HBASE-9527
> URL: https://issues.apache.org/jira/browse/HBASE-9527
> Project: HBase
>  Issue Type: Bug
>Reporter: stack
>Priority: Critical
> Fix For: 0.99.0, 0.98.3
>
>
> Go over all old APIs that take a table name and ensure that it is not 
> possible to pass in a byte array that is a namespace + tablename; instead 
> throw an exception.



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


[jira] [Updated] (HBASE-10561) Forward port: HBASE-10212 New rpc metric: number of active handler

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10561:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Forward port: HBASE-10212 New rpc metric: number of active handler
> --
>
> Key: HBASE-10561
> URL: https://issues.apache.org/jira/browse/HBASE-10561
> Project: HBase
>  Issue Type: Sub-task
>  Components: IPC/RPC
>Reporter: Lars Hofhansl
> Fix For: 0.99.0, 0.96.3, 0.98.3
>
>
> The metrics implementation has changed a lot in 0.96.
> Forward port HBASE-10212 to 0.96 and later.



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


[jira] [Updated] (HBASE-10507) Proper filter tests for TestImportExport

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10507:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Proper filter tests for TestImportExport
> 
>
> Key: HBASE-10507
> URL: https://issues.apache.org/jira/browse/HBASE-10507
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Lars Hofhansl
> Fix For: 0.99.0, 0.96.3, 0.94.20, 0.98.3
>
>
> See parent. TestImportExport.testWithFilter used to passed by accident (until 
> parent is fixed and until very recently also in trunk).
> This is as simple as just added some non-matching rows to the tests. Other 
> than parent that should be added to all branches.



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


[jira] [Updated] (HBASE-10613) Discuss WAL device tiering in the Security section of the online manual

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10613:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Discuss WAL device tiering in the Security section of the online manual
> ---
>
> Key: HBASE-10613
> URL: https://issues.apache.org/jira/browse/HBASE-10613
> Project: HBase
>  Issue Type: Task
>Affects Versions: 0.98.0
>Reporter: Andrew Purtell
>Assignee: Andrew Purtell
>Priority: Minor
> Fix For: 0.99.0, 0.98.3
>
>
> Add text to the Security section of the online manual that discusses how the 
> WAL can be provisioned to a separate device tier, and how tiers can be 
> managed with different sensitivity considerations, with and without WAL 
> encryption.
> Something to call out and discuss. This issue is a reminder for me to do that 
> before spinning 0.98.1.
> After HBASE-10077, the new section can be updated.



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


[jira] [Updated] (HBASE-10758) TestAdmin runs too long

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10758:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> TestAdmin runs too long
> ---
>
> Key: HBASE-10758
> URL: https://issues.apache.org/jira/browse/HBASE-10758
> Project: HBase
>  Issue Type: Test
>Affects Versions: 0.98.0
> Environment: Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
> HotSpot(TM) 64-Bit Server VM (build 24.45-b08, mixed mode)
>Reporter: Andrew Purtell
> Fix For: 0.99.0, 0.98.3
>
>
> About ~430 seconds here. 
> {noformat}
> ---
>  T E S T S
> ---
> Running org.apache.hadoop.hbase.client.TestAdmin
> Tests run: 44, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 427.247 sec
> Results :
> Tests run: 44, Failures: 0, Errors: 0, Skipped: 0
> {noformat}



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


[jira] [Updated] (HBASE-11063) Normalize logging between AccessController and VisibilityController

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11063:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Normalize logging between AccessController and VisibilityController
> ---
>
> Key: HBASE-11063
> URL: https://issues.apache.org/jira/browse/HBASE-11063
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
> Fix For: 0.99.0, 0.98.3
>
>
> The AccessController and VisibilityController should log auditable events 
> using a format parsable with the same regular expression. 



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


[jira] [Updated] (HBASE-10883) Restrict the universe of labels and authorizations

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10883:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Restrict the universe of labels and authorizations
> --
>
> Key: HBASE-10883
> URL: https://issues.apache.org/jira/browse/HBASE-10883
> Project: HBase
>  Issue Type: Improvement
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE-10883.patch, HBASE-10883_1.patch, 
> HBASE-10883_2.patch, HBASE-10883_3.patch, HBASE-10883_4.patch, 
> HBASE-10883_5.patch, HBASE-10883_6.patch, HBASE-10883_7.patch
>
>
> Currently we allow any string as visibility label or request authorization. 
> However as seen on HBASE-10878, we accept for authorizations strings that 
> would not work if provided as labels in visibility expressions. We should 
> throw an exception at least in cases where someone tries to define or use a 
> label or authorization including visibility expression operators '&', '|', 
> '!', '(', ')'.



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


[jira] [Updated] (HBASE-10831) IntegrationTestIngestWithACL is not setting up LoadTestTool correctly

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10831:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> IntegrationTestIngestWithACL is not setting up LoadTestTool correctly
> -
>
> Key: HBASE-10831
> URL: https://issues.apache.org/jira/browse/HBASE-10831
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Assignee: ramkrishna.s.vasudevan
> Fix For: 0.99.0, 0.98.3
>
>
> IntegrationTestIngestWithACL is not setting up LoadTestTool correctly.
> {noformat}
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 601.709 sec 
> <<< FAILURE!
> testIngest(org.apache.hadoop.hbase.IntegrationTestIngestWithACL)  Time 
> elapsed: 601.489 sec  <<< FAILURE!
> java.lang.AssertionError: Failed to initialize LoadTestTool expected:<0> but 
> was:<1>
> at org.junit.Assert.fail(Assert.java:88)
> at org.junit.Assert.failNotEquals(Assert.java:743)
> at org.junit.Assert.assertEquals(Assert.java:118)
> at org.junit.Assert.assertEquals(Assert.java:555)
> at 
> org.apache.hadoop.hbase.IntegrationTestIngest.initTable(IntegrationTestIngest.java:74)
> at 
> org.apache.hadoop.hbase.IntegrationTestIngest.setUpCluster(IntegrationTestIngest.java:69)
> at 
> org.apache.hadoop.hbase.IntegrationTestIngestWithACL.setUpCluster(IntegrationTestIngestWithACL.java:58)
> at 
> org.apache.hadoop.hbase.IntegrationTestBase.setUp(IntegrationTestBase.java:89)
> {noformat}
> Could be related to HBASE-10675?



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


[jira] [Updated] (HBASE-11036) Online schema change with region merge may cause data loss

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11036:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Online schema change with region merge may cause data loss 
> ---
>
> Key: HBASE-11036
> URL: https://issues.apache.org/jira/browse/HBASE-11036
> Project: HBase
>  Issue Type: Bug
>Reporter: Enis Soztutar
> Fix For: 0.99.0, 0.98.3
>
>
> We have found out that online schema change and region merges may still cause 
> issues about merged regions coming back online, and thus causing data loss. 
> Recently ITBLL failed reporting 800K missing rows out of 720M. We've been 
> running this test for some extended period of time, and this is the first we 
> are seeing it, meaning that it is more rare. But it is still concerning. 
> From master's log:
> The merge has happened:
> {code}
> 2014-04-16 18:26:37,247 INFO  [AM.ZK.Worker-pool2-t73] 
> master.AssignmentManager: Handled MERGED event; 
> merged=IntegrationTestBigLinkedList,\xB2\xFE\x03s,1397672795119.80159738a0167e20a2e29fb2c46702f2.,
>  
>   
> region_a=IntegrationTestBigLinkedList,\xB2\xFE\x03s,1397670978959.0ac116e4d7da87922d3a8f218ca21079.,
>  
>   
> region_b=IntegrationTestBigLinkedList,\xB8\x03\x94\x15,1397672587456.1265d06478082ced65dd9a0c1c2b63c2.,
>  on hor13n03.gq1.ygridcore.net,60020,1397672668647
> {code}
> The region server shows the merge is complete: 
> {code}
> 2014-04-16 18:26:37,352 INFO  [regionserver60020-merges-1397672794972] 
> regionserver.RegionMergeRequest: Regions merged, hbase:meta updated, and 
> report to master. 
> region_a=IntegrationTestBigLinkedList,\xB2\xFE\x03s,1397670978959.0ac116e4d7da87922d3a8f218ca21079.,
>  
> region_b=IntegrationTestBigLinkedList,\xB8\x03\x94\x15,1397672587456.1265d06478082ced65dd9a0c1c2b63c2..
>  Region merge took 2sec
> {code}
> The new region was online on the region server for some time: 
> {code}
> 2014-04-16 18:31:22,858 DEBUG [RS_OPEN_REGION-hor13n03:60020-1] 
> handler.OpenRegionHandler: Opened 
> IntegrationTestBigLinkedList,\xB2\xFE\x03s,1397672795119.80159738a0167e20a2e29fb2c46702f2.
>  on hor13n03.gq1.ygridcore.net,60020,1397672668647
> {code}
> Then the region server was killed around 2014-04-16 18:31:26,254. 
> The master started log splitting etc for the dead RS:
> {code}
> 2014-04-16 18:31:28,942 INFO  [MASTER_SERVER_OPERATIONS-hor13n02:6-3] 
> handler.ServerShutdownHandler: Splitting logs for 
> hor13n03.gq1.ygridcore.net,60020,1397672668647 before assignment.
> ..
> 2014-04-16 18:31:40,887 INFO  [MASTER_SERVER_OPERATIONS-hor13n02:6-3] 
> master.RegionStates: Transitioned {80159738a0167e20a2e29fb2c46702f2 
> state=OPEN, ts=1397673082874, 
> server=hor13n03.gq1.ygridcore.net,60020,1397672668647} to 
> {80159738a0167e20a2e29fb
> 2014-04-16 18:31:40,887 INFO  [MASTER_SERVER_OPERATIONS-hor13n02:6-3] 
> master.RegionStates: Offlined 80159738a0167e20a2e29fb2c46702f2 from 
> hor13n03.gq1.ygridcore.net,60020,1397672668647
> {code}
> But this region was not assigned again at all. Instead, the master restarted 
> shortly after, and reassigned the regions that were merged already: 
> {code}
> 2014-04-16 18:34:02,569 INFO  [master:hor13n02:6] 
> master.ActiveMasterManager: Registered Active 
> Master=hor13n02.gq1.ygridcore.net,6,1397673241215
> ...
> 2014-04-16 18:34:10,412 INFO  [master:hor13n02:6] 
> master.AssignmentManager: Found regions out on cluster or in RIT; presuming 
> failover
> 2014-04-16 18:34:10,412 WARN  [master:hor13n02:6] master.ServerManager: 
> Expiration of hor13n03.gq1.ygridcore.net,60020,1397671753021 but server not 
> online
> ..
> 2014-04-16 18:34:10,880 INFO  [MASTER_SERVER_OPERATIONS-hor13n02:6-3] 
> master.AssignmentManager: Bulk assigning 28 region(s) across 4 server(s), 
> round-robin=true
> ..
> 2014-04-16 18:34:10,882 DEBUG 
> [hor13n02.gq1.ygridcore.net,6,1397673241215-GeneralBulkAssigner-1] 
> zookeeper.ZKAssign: master:6-0x2456a4863640255, 
> quorum=hor13n04.gq1.ygridcore.net:2181,hor13n03.gq1.ygridcore.net:2181,hor13n20.gq1.ygridcore.net:2181,
>  baseZNode=/hbase Async create of unassigned node 0ac116e4d7da8792..
> ..
> 2014-04-16 18:34:13,077 INFO  [AM.ZK.Worker-pool2-t7] master.RegionStates: 
> Onlined 0ac116e4d7da87922d3a8f218ca21079 on 
> hor13n04.gq1.ygridcore.net,60020,1397672685370
> {code}
> Before the master went down, there were other logs that indicate something 
> funky: 
> {code}
> 2014-04-16 18:32:42,113 DEBUG 
> [hor13n02.gq1.ygridcore.net,6,1397672191204-org.apache.hadoop.hbase.master.BulkReOpen-0]
>  master.AssignmentManager: Starting unassign of 
> IntegrationTestBigLinkedList,\xB2\xFE\x03s,1397670978959.0ac116e4d7da87922d3a8f218ca
> 2014-04-16 18:32:42,113 INFO  
> [hor13n02.gq1.ygridcore.net,600

[jira] [Updated] (HBASE-11048) Support setting custom priority per client RPC

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11048:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Support setting custom priority per client RPC
> --
>
> Key: HBASE-11048
> URL: https://issues.apache.org/jira/browse/HBASE-11048
> Project: HBase
>  Issue Type: Improvement
>  Components: Client
>Affects Versions: 0.99.0, 0.98.2
>Reporter: Jesse Yates
>Assignee: Jesse Yates
>  Labels: Phoenix
> Fix For: 0.99.0, 0.98.3
>
> Attachments: hbase-11048-trunk-v0.patch
>
>
> Servers have the ability to handle custom rpc priority levels, but currently 
> we are only using it to differentiate META/ROOT updates from replication and 
> other 'priority' updates (as specified by annotation tags per RS method). 
> However, some clients need the ability to create custom handlers (e.g. 
> PHOENIX-938) which can really only be cleanly tied together to requests by 
> the request priority. The disconnect is in that there is no way for the 
> client to overwrite the priority per table - the PayloadCarryingRpcController 
> will always just set priority per ROOT/META and otherwise just use the 
> generic priority.



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


[jira] [Updated] (HBASE-10820) Bulkload: something is going bananas with '_tmp'

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10820:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> Bulkload: something is going bananas with '_tmp'
> 
>
> Key: HBASE-10820
> URL: https://issues.apache.org/jira/browse/HBASE-10820
> Project: HBase
>  Issue Type: Bug
>  Components: regionserver
>Affects Versions: 0.98.0, 0.99.0
>Reporter: Nick Dimiduk
>Priority: Minor
> Fix For: 0.99.0, 0.98.3
>
>
> While working on HBASE-10818, I noted the following in my logs
> {noformat}
> 2014-03-24 15:26:25,283 INFO  [RpcServer.handler=24,port=52056] 
> regionserver.HStore: Successfully loaded store file 
> file:/Users/ndimiduk/repos/hbase/target/test-data/8e203abb-90b4-4284-9816-963ce3461d5f/IntegrationTestBulkLoad-2/L/_tmp/_tmp/_tmp/_tmp/_tmp/_tmp/_tmp/_tmp/_tmp/_tmp/IntegrationTestBulkLoad,119.bottom
>  into store L (new location: 
> file:/var/folders/b8/n5n91drd7xg0rlt5n6fgsjtwgn/T/hbase-ndimiduk/hbase/data/default/IntegrationTestBulkLoad/42e004b8909307e2d983ddbe59276638/L/6443c445f00d453dbdb0b41f925efdb5_SeqId_9_)
> {noformat}
> Something is going overboard with the temp directory path. Worth 
> investigating.



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


[jira] [Updated] (HBASE-11041) HBaseTestingUtil.createMultiRegions deals incorrectly with missing column family

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-11041:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> HBaseTestingUtil.createMultiRegions deals incorrectly with missing column 
> family
> 
>
> Key: HBASE-11041
> URL: https://issues.apache.org/jira/browse/HBASE-11041
> Project: HBase
>  Issue Type: Bug
>Reporter: Lars Hofhansl
> Fix For: 0.99.0, 0.96.3, 0.94.20, 0.98.3
>
>
> Just found a test failing like this:
> {code}
> Error Message
> HTableDescriptor is read-only
> Stacktrace
> java.lang.UnsupportedOperationException: HTableDescriptor is read-only
>   at 
> org.apache.hadoop.hbase.client.UnmodifyableHTableDescriptor.addFamily(UnmodifyableHTableDescriptor.java:64)
>   at 
> org.apache.hadoop.hbase.HBaseTestingUtility.createMultiRegions(HBaseTestingUtility.java:1302)
>   at 
> org.apache.hadoop.hbase.HBaseTestingUtility.createMultiRegions(HBaseTestingUtility.java:1291)
>   at 
> org.apache.hadoop.hbase.HBaseTestingUtility.createMultiRegions(HBaseTestingUtility.java:1286)
>   at 
> org.apache.hadoop.hbase.master.TestDistributedLogSplitting.installTable(TestDistributedLogSplitting.java:485)
>   at 
> org.apache.hadoop.hbase.master.TestDistributedLogSplitting.testMasterStartsUpWithLogSplittingWork(TestDistributedLogSplitting.java:282)
> {code}
> The code that causes this looks like this:
> {code}
> HTableDescriptor htd = table.getTableDescriptor();
> if(!htd.hasFamily(columnFamily)) {
>   HColumnDescriptor hcd = new HColumnDescriptor(columnFamily);
>   htd.addFamily(hcd);
> }
> {code}
> But note that table.getTableDescriptor() returns an 
> UnmodifyableHTableDescriptor, so the add would *always* fail.
> The specific test that failed was 
> TestDistributedLogSplitting.testMasterStartsUpWithLogSplittingWork.
> Looks like the HMaster did not have the last table descriptor state, yet.



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


[jira] [Updated] (HBASE-10761) StochasticLoadBalancer still uses SimpleLoadBalancer's needBalance logic

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10761:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> StochasticLoadBalancer still uses SimpleLoadBalancer's needBalance logic
> 
>
> Key: HBASE-10761
> URL: https://issues.apache.org/jira/browse/HBASE-10761
> Project: HBase
>  Issue Type: Bug
>  Components: Balancer
>Affects Versions: 0.98.0
>Reporter: Victor Xu
> Fix For: 0.99.0, 0.98.3
>
> Attachments: HBASE_10761.patch, HBASE_10761_v2.patch
>
>
> StochasticLoadBalancer has become the default balancer since 0.98.0. But its 
> balanceCluster method still uses the BaseLoadBalancer.needBalance() which is 
> originally designed for SimpleLoadBalancer. It's all based on the number of 
> regions on the regionservers.
> This can cause such a problem: when the cluster has some Hot Spot Region, the 
> balance process may not be triggered because the numbers of regions on the 
> RegionServers are averaged.



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


[jira] [Updated] (HBASE-10832) IntegrationTestIngestStripeCompactions timed out

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10832:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> IntegrationTestIngestStripeCompactions timed out
> 
>
> Key: HBASE-10832
> URL: https://issues.apache.org/jira/browse/HBASE-10832
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.98.1
>Reporter: Andrew Purtell
>Priority: Minor
> Fix For: 0.99.0, 0.98.3
>
>
> IntegrationTestIngestStripeCompactions timed out when executing in local 
> mode, failed to shut down cleanly (LoadTestTool worker threads were trying to 
> finish, master's catalog scanner was trying to scan a meta table that had 
> gone away, etc.), and became a zombie. 



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


[jira] [Updated] (HBASE-10664) TestImportExport runs too long

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-10664:
---

Fix Version/s: (was: 0.98.2)
   0.98.3

> TestImportExport runs too long
> --
>
> Key: HBASE-10664
> URL: https://issues.apache.org/jira/browse/HBASE-10664
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.98.0
>Reporter: Andrew Purtell
> Fix For: 0.99.0, 0.98.3
>
>
> Debugging with -Dsurefire.firstPartForkMode=always 
> -Dsurefire.secondPartForkMode=always looking for a hanging test. 
> 388 seconds.
> {noformat}
> Forking command line: /bin/sh -c cd /data/src/hbase/hbase-server && 
> /usr/lib/jvm/java-1.7.0.45-oracle-amd64/jre/bin/java -enableassertions 
> -Xmx1900m -XX:MaxPermSize=100m -Djava.security.egd=file:/dev/./urandom 
> -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -jar 
> /data/src/hbase/hbase-server/target/surefire/surefirebooter7637958208277391169.jar
>  /data/src/hbase/hbase-server/target/surefire/surefire6877889026110956843tmp 
> /data/src/hbase/hbase-server/target/surefire/surefire_1907837210788480451831tmp
> Running org.apache.hadoop.hbase.mapreduce.TestImportExport
> Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 388.246 sec
> {noformat}
> Slim down or break it up.



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


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

2014-04-30 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:
---

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

What I committed to trunk and 0.98. Thanks for the reviews and feedback all!

> [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-0.98.patch, HBASE-11077.patch, 
> HBASE-11077.patch, 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-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 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-0.98.patch
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-0.98.patch, HBASE-11077.patch, 
> HBASE-11077.patch, 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-10810) LoadTestTool should share the connection and connection pool

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-10810:
---

Thanks Nick for the review. 
bq. What's unclear to me is how the 100 reader threads will contend for the (up 
to) 256 threads in the shared pool used by all HTables for the connection
In case this becomes a problem, we can increase the default pool side that the 
LTT connection is using.

> LoadTestTool should share the connection and connection pool
> 
>
> Key: HBASE-10810
> URL: https://issues.apache.org/jira/browse/HBASE-10810
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: hbase-10070
>
> Attachments: hbase-10810_v1.patch
>
>
> While running the IT test from HBASE-10572, we've noticed that the number of 
> threads jumps to 4K's when CM actions are going on. 
> Our [~ndimiduk] summarizes the problem quite good: 
> MultiThreadedReader creates this pool for each HTable:
> {code}
> ThreadPoolExecutor pool = new ThreadPoolExecutor(1, maxThreads, 
> keepAliveTime, TimeUnit.SECONDS,
> new SynchronousQueue(), 
> Threads.newDaemonThreadFactory("htable"));
> {code}
> This comes from the HTable creation
> {code}  
> public HTable(Configuration conf, final TableName tableName)
> {code}
> As well the javadoc says Recommended.
> This is wrong.
> In this issue we can change the LTT sub classes to use the shared connection 
> object and initialize their tables using HConnection.getTable() rather than 
> new HTable(). 
> This is relevant to trunk as well, but there since there is only one 
> outstanding RPC per thread, it is not such a big problem. 



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


[jira] [Updated] (HBASE-10661) TestStochasticLoadBalancer.testRegionReplicationOnMidClusterWithRacks() is flaky

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-10661:
--

Attachment: hbase-10661_v6.patch

[~devaraj] can you review the latest version as well. The tests have been more 
stable after this for some time. v6 should make it even more so. 

> TestStochasticLoadBalancer.testRegionReplicationOnMidClusterWithRacks() is 
> flaky
> 
>
> Key: HBASE-10661
> URL: https://issues.apache.org/jira/browse/HBASE-10661
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: hbase-10070
>
> Attachments: hbase-10661_v1.patch, hbase-10661_v2.patch, 
> hbase-10661_v3.patch, hbase-10661_v4.patch, hbase-10661_v5.patch, 
> hbase-10661_v6.patch
>
>
> One of the tests introduced in HBASE-10351 seems to be flaky. The LB cannot 
> compute the fully assignment plan in time when there are racks and region 
> replicas for the test, so it is failing sometimes. 
> We can reduce the computation amount, and increase the LB runtime to make the 
> test stable. 



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


[jira] [Resolved] (HBASE-11065) hbase 0.94

2014-04-30 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl resolved HBASE-11065.
---

   Resolution: Invalid
Fix Version/s: (was: 0.94.20)

Thanks [~dougc3].

I just build mvn site successfully on my local machine. The jenkins builds also 
do not complain.

If this problem persists for you, it's usually best to ask on the mailing lists.

> hbase 0.94
> --
>
> Key: HBASE-11065
> URL: https://issues.apache.org/jira/browse/HBASE-11065
> Project: HBase
>  Issue Type: Bug
>  Components: documentation
>Affects Versions: 0.94.18
> Environment: centos 6.4
>Reporter: doug chang
>Priority: Minor
> Attachments: HBASE-11065.patch
>
>
> mvn site fails
> [ERROR] Failed to execute goal 
> org.apache.maven.plugins:maven-site-plugin:3.2:site (default-site) on project 
> hbase: SiteToolException: ArtifactResolutionException: Unable to find skin: 
> Could not transfer artifact org.apache.maven.skins:maven-stylus-skin:jar:1.5 
> from/to central (http//repo.maven.apache.org/maven2/): No connector available 
> to access repository central (http//repo.maven.apache.org/maven2/) of type 
> default using the available factories WagonRepositoryConnectorFactory
> [ERROR] org.apache.maven.skins:maven-stylus-skin:jar:RELEASE



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


[jira] [Updated] (HBASE-11104) IntegrationTestImportTsv#testRunFromOutputCommitter misses credential initialization

2014-04-30 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-11104:
---

Attachment: 11104-v1.txt

> IntegrationTestImportTsv#testRunFromOutputCommitter misses credential 
> initialization
> 
>
> Key: HBASE-11104
> URL: https://issues.apache.org/jira/browse/HBASE-11104
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Priority: Minor
> Attachments: 11104-v1.txt
>
>
> IntegrationTestImportTsv#testRunFromOutputCommitter a parent job that ships 
> the HBase dependencies.
> However, call to TableMapReduceUtil.initCredentials(job) is missing - making 
> this test fail on a secure cluster.



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


[jira] [Updated] (HBASE-11104) IntegrationTestImportTsv#testRunFromOutputCommitter misses credential initialization

2014-04-30 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-11104:
---

Attachment: (was: 11104-v1.txt)

> IntegrationTestImportTsv#testRunFromOutputCommitter misses credential 
> initialization
> 
>
> Key: HBASE-11104
> URL: https://issues.apache.org/jira/browse/HBASE-11104
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Priority: Minor
> Attachments: 11104-v1.txt
>
>
> IntegrationTestImportTsv#testRunFromOutputCommitter a parent job that ships 
> the HBase dependencies.
> However, call to TableMapReduceUtil.initCredentials(job) is missing - making 
> this test fail on a secure cluster.



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


[jira] [Commented] (HBASE-10942) support parallel request cancellation for multi-get

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-10942:
---

[~nkeywal] it seems that this is your area of expertise. 

> support parallel request cancellation for multi-get
> ---
>
> Key: HBASE-10942
> URL: https://issues.apache.org/jira/browse/HBASE-10942
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Sergey Shelukhin
>Assignee: Sergey Shelukhin
> Fix For: hbase-10070
>
> Attachments: HBASE-10942.01.patch, HBASE-10942.patch
>
>




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


[jira] [Commented] (HBASE-10958) [dataloss] Bulk loading with seqids can prevent some log entries from being replayed

2014-04-30 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-10958:
---

You 'd man.

> [dataloss] Bulk loading with seqids can prevent some log entries from being 
> replayed
> 
>
> Key: HBASE-10958
> URL: https://issues.apache.org/jira/browse/HBASE-10958
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.18
>Reporter: Jean-Daniel Cryans
>Assignee: Jean-Daniel Cryans
>Priority: Blocker
> Fix For: 0.99.0, 0.98.2, 0.96.3, 0.94.20
>
> Attachments: HBASE-10958-0.94.patch, 
> HBASE-10958-less-intrusive-hack-0.96.patch, 
> HBASE-10958-quick-hack-0.96.patch, HBASE-10958-v2.patch, 
> HBASE-10958-v3.patch, HBASE-10958.patch
>
>
> We found an issue with bulk loads causing data loss when assigning sequence 
> ids (HBASE-6630) that is triggered when replaying recovered edits. We're 
> nicknaming this issue *Blindspot*.
> The problem is that the sequence id given to a bulk loaded file is higher 
> than those of the edits in the region's memstore. When replaying recovered 
> edits, the rule to skip some of them is that they have to be _lower than the 
> highest sequence id_. In other words, the edits that have a sequence id lower 
> than the highest one in the store files *should* have also been flushed. This 
> is not the case with bulk loaded files since we now have an HFile with a 
> sequence id higher than unflushed edits.
> The log recovery code takes this into account by simply skipping the bulk 
> loaded files, but this "bulk loaded status" is *lost* on compaction. The 
> edits in the logs that have a sequence id lower than the bulk loaded file 
> that got compacted are put in a blind spot and are skipped during replay.
> Here's the easiest way to recreate this issue:
>  - Create an empty table
>  - Put one row in it (let's say it gets seqid 1)
>  - Bulk load one file (it gets seqid 2). I used ImporTsv and set 
> hbase.mapreduce.bulkload.assign.sequenceNumbers.
>  - Bulk load a second file the same way (it gets seqid 3).
>  - Major compact the table (the new file has seqid 3 and isn't considered 
> bulk loaded).
>  - Kill the region server that holds the table's region.
>  - Scan the table once the region is made available again. The first row, at 
> seqid 1, will be missing since the HFile with seqid 3 makes us believe that 
> everything that came before it was flushed.



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


[jira] [Created] (HBASE-11105) Add bandwidth limit documentation to snapshot export section of refguide

2014-04-30 Thread Ted Yu (JIRA)
Ted Yu created HBASE-11105:
--

 Summary: Add bandwidth limit documentation to snapshot export 
section of refguide
 Key: HBASE-11105
 URL: https://issues.apache.org/jira/browse/HBASE-11105
 Project: HBase
  Issue Type: Task
Reporter: Ted Yu
Priority: Minor


http://hbase.apache.org/book.html#ops.snapshots.export lists command line 
arguments for ExportSnapshot

Parameters for bandwidth limitation (HBASE-11083) should be documented.



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


[jira] [Updated] (HBASE-9445) Snapshots should create column family dirs for empty regions

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-9445:
-

Status: Open  (was: Patch Available)

> Snapshots should create column family dirs for empty regions
> 
>
> Key: HBASE-9445
> URL: https://issues.apache.org/jira/browse/HBASE-9445
> Project: HBase
>  Issue Type: Bug
>  Components: snapshots
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: 0.99.0, 0.98.2
>
> Attachments: hbase-9445_v1.patch, hbase-9445_v2.patch, 
> hbase-9445_v3.patch, hbase-9445_v4.patch
>
>
> Currently, taking a snapshot will not create the family directory under a 
> region if the family does not have any files in it. 
> Subsequent verification fails because of this. There is some logic in the 
> SnapshotTestingUtils.confirmSnapshotValid() to deal with empty family 
> directories, but I think we should create the family directories regardless 
> of whether there are any hfiles referencing them. 
> {code}
> 2013-09-05 11:07:21,566 DEBUG [Thread-208] util.FSUtils(1687): |-data/
> 2013-09-05 11:07:21,567 DEBUG [Thread-208] util.FSUtils(1687): |default/
> 2013-09-05 11:07:21,568 DEBUG [Thread-208] util.FSUtils(1687): |---test/
> 2013-09-05 11:07:21,569 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tabledesc/
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.tableinfo.01
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tmp/
> 2013-09-05 11:07:21,571 DEBUG [Thread-208] util.FSUtils(1687): 
> |--accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.regioninfo
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1687): 
> |-fam/
> 2013-09-05 11:07:21,555 DEBUG [Thread-208] util.FSUtils(1687): 
> |-.hbase-snapshot/
> 2013-09-05 11:07:21,556 DEBUG [Thread-208] util.FSUtils(1687): |.tmp/
> 2013-09-05 11:07:21,557 DEBUG [Thread-208] util.FSUtils(1687): 
> |offlineTableSnapshot/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |---.snapshotinfo
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1687): 
> |---.tabledesc/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.tableinfo.01
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): |---.tmp/
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): 
> |---accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,560 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.regioninfo
> {code}
> I think this is important for 0.96.0. 



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


[jira] [Updated] (HBASE-9445) Snapshots should create column family dirs for empty regions

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-9445:
-

Status: Patch Available  (was: Open)

> Snapshots should create column family dirs for empty regions
> 
>
> Key: HBASE-9445
> URL: https://issues.apache.org/jira/browse/HBASE-9445
> Project: HBase
>  Issue Type: Bug
>  Components: snapshots
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: 0.99.0, 0.98.2
>
> Attachments: hbase-9445_v1.patch, hbase-9445_v2.patch, 
> hbase-9445_v3.patch, hbase-9445_v4.patch
>
>
> Currently, taking a snapshot will not create the family directory under a 
> region if the family does not have any files in it. 
> Subsequent verification fails because of this. There is some logic in the 
> SnapshotTestingUtils.confirmSnapshotValid() to deal with empty family 
> directories, but I think we should create the family directories regardless 
> of whether there are any hfiles referencing them. 
> {code}
> 2013-09-05 11:07:21,566 DEBUG [Thread-208] util.FSUtils(1687): |-data/
> 2013-09-05 11:07:21,567 DEBUG [Thread-208] util.FSUtils(1687): |default/
> 2013-09-05 11:07:21,568 DEBUG [Thread-208] util.FSUtils(1687): |---test/
> 2013-09-05 11:07:21,569 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tabledesc/
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.tableinfo.01
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tmp/
> 2013-09-05 11:07:21,571 DEBUG [Thread-208] util.FSUtils(1687): 
> |--accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.regioninfo
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1687): 
> |-fam/
> 2013-09-05 11:07:21,555 DEBUG [Thread-208] util.FSUtils(1687): 
> |-.hbase-snapshot/
> 2013-09-05 11:07:21,556 DEBUG [Thread-208] util.FSUtils(1687): |.tmp/
> 2013-09-05 11:07:21,557 DEBUG [Thread-208] util.FSUtils(1687): 
> |offlineTableSnapshot/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |---.snapshotinfo
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1687): 
> |---.tabledesc/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.tableinfo.01
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): |---.tmp/
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): 
> |---accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,560 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.regioninfo
> {code}
> I think this is important for 0.96.0. 



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


[jira] [Updated] (HBASE-9445) Snapshots should create column family dirs for empty regions

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar updated HBASE-9445:
-

Attachment: hbase-9445_v4.patch

Rebased the patch, and added the test from v1. [~mbertozzi] would you mind 
taking a look. 

> Snapshots should create column family dirs for empty regions
> 
>
> Key: HBASE-9445
> URL: https://issues.apache.org/jira/browse/HBASE-9445
> Project: HBase
>  Issue Type: Bug
>  Components: snapshots
>Reporter: Enis Soztutar
>Assignee: Enis Soztutar
> Fix For: 0.99.0, 0.98.2
>
> Attachments: hbase-9445_v1.patch, hbase-9445_v2.patch, 
> hbase-9445_v3.patch, hbase-9445_v4.patch
>
>
> Currently, taking a snapshot will not create the family directory under a 
> region if the family does not have any files in it. 
> Subsequent verification fails because of this. There is some logic in the 
> SnapshotTestingUtils.confirmSnapshotValid() to deal with empty family 
> directories, but I think we should create the family directories regardless 
> of whether there are any hfiles referencing them. 
> {code}
> 2013-09-05 11:07:21,566 DEBUG [Thread-208] util.FSUtils(1687): |-data/
> 2013-09-05 11:07:21,567 DEBUG [Thread-208] util.FSUtils(1687): |default/
> 2013-09-05 11:07:21,568 DEBUG [Thread-208] util.FSUtils(1687): |---test/
> 2013-09-05 11:07:21,569 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tabledesc/
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.tableinfo.01
> 2013-09-05 11:07:21,570 DEBUG [Thread-208] util.FSUtils(1687): 
> |--.tmp/
> 2013-09-05 11:07:21,571 DEBUG [Thread-208] util.FSUtils(1687): 
> |--accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1690): 
> |-.regioninfo
> 2013-09-05 11:07:21,572 DEBUG [Thread-208] util.FSUtils(1687): 
> |-fam/
> 2013-09-05 11:07:21,555 DEBUG [Thread-208] util.FSUtils(1687): 
> |-.hbase-snapshot/
> 2013-09-05 11:07:21,556 DEBUG [Thread-208] util.FSUtils(1687): |.tmp/
> 2013-09-05 11:07:21,557 DEBUG [Thread-208] util.FSUtils(1687): 
> |offlineTableSnapshot/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |---.snapshotinfo
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1687): 
> |---.tabledesc/
> 2013-09-05 11:07:21,558 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.tableinfo.01
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): |---.tmp/
> 2013-09-05 11:07:21,559 DEBUG [Thread-208] util.FSUtils(1687): 
> |---accd6e55887057888de758df44dacda7/
> 2013-09-05 11:07:21,560 DEBUG [Thread-208] util.FSUtils(1690): 
> |--.regioninfo
> {code}
> I think this is important for 0.96.0. 



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


[jira] [Updated] (HBASE-11104) IntegrationTestImportTsv#testRunFromOutputCommitter misses credential initialization

2014-04-30 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-11104:
---

Attachment: 11104-v1.txt

> IntegrationTestImportTsv#testRunFromOutputCommitter misses credential 
> initialization
> 
>
> Key: HBASE-11104
> URL: https://issues.apache.org/jira/browse/HBASE-11104
> Project: HBase
>  Issue Type: Test
>Reporter: Ted Yu
>Priority: Minor
> Attachments: 11104-v1.txt
>
>
> IntegrationTestImportTsv#testRunFromOutputCommitter a parent job that ships 
> the HBase dependencies.
> However, call to TableMapReduceUtil.initCredentials(job) is missing - making 
> this test fail on a secure cluster.



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


[jira] [Created] (HBASE-11104) IntegrationTestImportTsv#testRunFromOutputCommitter misses credential initialization

2014-04-30 Thread Ted Yu (JIRA)
Ted Yu created HBASE-11104:
--

 Summary: IntegrationTestImportTsv#testRunFromOutputCommitter 
misses credential initialization
 Key: HBASE-11104
 URL: https://issues.apache.org/jira/browse/HBASE-11104
 Project: HBase
  Issue Type: Test
Reporter: Ted Yu
Priority: Minor


IntegrationTestImportTsv#testRunFromOutputCommitter a parent job that ships the 
HBase dependencies.
However, call to TableMapReduceUtil.initCredentials(job) is missing - making 
this test fail on a secure cluster.



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


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

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-11077:
---

bq. I will do that and add a patch here for the 0.98 version unless objection.
Sounds good. 
bq. If there isn't any take up of the per-operation strategy toggle, we could 
drop it in 0.99+ ?
It seems to me that the strategy should be a table level property (a part of 
the param this patch adds) or baked into the priviledge (like the 
READ_INVISIBLE) we were talking about.

Another argument for defaulting to a behavior for disallowing scans without 
read perm by default is that, we do not want a user to DOS the table by 
launching scanners against it although with no read permission. 

> [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, 
> 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-11102) Document JDK versions supported by each release

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11102:


bq. There has been some work to support JDK8. We can also document that.

Running on a Java 8 runtime "just works" with 0.98 today, but I can't say that 
I know of any scale testing so consider that.

Building with JDK8 would require the removal of a deprecated method that causes 
a compile time error with this version, a trivial change:
{code}
diff --git hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java 
index 7283831..5326de4 100644
--- hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java
+++ hbase-client/src/main/java/org/apache/hadoop/hbase/util/PoolMap.java
@@ -93,14 +93,6 @@ public class PoolMap implements Map {
 return null;
   }
 
-  /**
-   * @deprecated Will be removed for Java 8, use {@link #removeValue} instead
-   */
-  @Deprecated
-  public boolean remove(K key, V value) {
-return removeValue(key, value);
-  }
-
   public boolean removeValue(K key, V value) {
 Pool pool = pools.get(key);
 boolean res = false;
{code}


> Document JDK versions supported by each release
> ---
>
> Key: HBASE-11102
> URL: https://issues.apache.org/jira/browse/HBASE-11102
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Enis Soztutar
> Fix For: 0.99.0
>
>
> We can make use of a JDK version x HBase version matrix to explain which JDK 
> version is supported and required. 
> 0.94, 0.96, and 0.98 releases all support JDK6 and JDK7. For 1.0, there is a 
> discussion thread to decide whether to drop JDK6 support. 
> There has been some work to support JDK8. We can also document that. 



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


[jira] [Updated] (HBASE-11008) Align bulk load, flush, and compact to require Action.CREATE

2014-04-30 Thread Jean-Daniel Cryans (JIRA)

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

Jean-Daniel Cryans updated HBASE-11008:
---

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

And committed to 0.94, thanks everyone.

> Align bulk load, flush, and compact to require Action.CREATE
> 
>
> Key: HBASE-11008
> URL: https://issues.apache.org/jira/browse/HBASE-11008
> Project: HBase
>  Issue Type: Improvement
>  Components: security
>Reporter: Jean-Daniel Cryans
>Assignee: Jean-Daniel Cryans
> Fix For: 0.99.0, 0.98.2, 0.96.3, 0.94.20
>
> Attachments: HBASE-11008-0.94.patch, HBASE-11008-v2.patch, 
> HBASE-11008-v3.patch, HBASE-11008.patch
>
>
> Over in HBASE-10958 we noticed that it might make sense to require 
> Action.CREATE for bulk load, flush, and compact since it is also required for 
> things like enable and disable.
> This means the following changes:
>  - preBulkLoadHFile goes from WRITE to CREATE
>  - compact/flush go from ADMIN to ADMIN or CREATE



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


[jira] [Updated] (HBASE-10958) [dataloss] Bulk loading with seqids can prevent some log entries from being replayed

2014-04-30 Thread Jean-Daniel Cryans (JIRA)

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

Jean-Daniel Cryans updated HBASE-10958:
---

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

Now committed to 0.94 (took some time because I wanted to double check the 
tests I modified were all green). Thanks everyone.

> [dataloss] Bulk loading with seqids can prevent some log entries from being 
> replayed
> 
>
> Key: HBASE-10958
> URL: https://issues.apache.org/jira/browse/HBASE-10958
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.18
>Reporter: Jean-Daniel Cryans
>Assignee: Jean-Daniel Cryans
>Priority: Blocker
> Fix For: 0.99.0, 0.98.2, 0.96.3, 0.94.20
>
> Attachments: HBASE-10958-0.94.patch, 
> HBASE-10958-less-intrusive-hack-0.96.patch, 
> HBASE-10958-quick-hack-0.96.patch, HBASE-10958-v2.patch, 
> HBASE-10958-v3.patch, HBASE-10958.patch
>
>
> We found an issue with bulk loads causing data loss when assigning sequence 
> ids (HBASE-6630) that is triggered when replaying recovered edits. We're 
> nicknaming this issue *Blindspot*.
> The problem is that the sequence id given to a bulk loaded file is higher 
> than those of the edits in the region's memstore. When replaying recovered 
> edits, the rule to skip some of them is that they have to be _lower than the 
> highest sequence id_. In other words, the edits that have a sequence id lower 
> than the highest one in the store files *should* have also been flushed. This 
> is not the case with bulk loaded files since we now have an HFile with a 
> sequence id higher than unflushed edits.
> The log recovery code takes this into account by simply skipping the bulk 
> loaded files, but this "bulk loaded status" is *lost* on compaction. The 
> edits in the logs that have a sequence id lower than the bulk loaded file 
> that got compacted are put in a blind spot and are skipped during replay.
> Here's the easiest way to recreate this issue:
>  - Create an empty table
>  - Put one row in it (let's say it gets seqid 1)
>  - Bulk load one file (it gets seqid 2). I used ImporTsv and set 
> hbase.mapreduce.bulkload.assign.sequenceNumbers.
>  - Bulk load a second file the same way (it gets seqid 3).
>  - Major compact the table (the new file has seqid 3 and isn't considered 
> bulk loaded).
>  - Kill the region server that holds the table's region.
>  - Scan the table once the region is made available again. The first row, at 
> seqid 1, will be missing since the HFile with seqid 3 makes us believe that 
> everything that came before it was flushed.



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


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

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


bq. Maybe default to false on 0.98, but true on trunk.

Ok. It's a discontinuity on the one hand, but 0.98 is explicitly a laboratory 
for this stuff. I will do that and add a patch here for the 0.98 version unless 
objection.

bq. Can we reduce that to at least two?

If there isn't any take up of the per-operation strategy toggle, we could drop 
it in 0.99+ ? 

> [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, 
> 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-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


I added another subtask to the parent for capturing the configuration space and 
nuances (with use case examples) into the security section of the manual as 
HBASE-11103

> [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, 
> 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-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-11077:
---

bq. Then we break compatibility from 0.98.1 to 0.98.2, in that default behavior 
prior to 0.98.2 in the 0.98 release line is quite different
Maybe default to false on 0.98, but true on trunk. 
bq. unfortunately cell ACLs would become largely useless, unless the admin 
research the feature and flip the attribute to "false", because when we early 
out at CF checks to retain pre-0.98 behavior the cell ACLs that would otherwise 
grant exceptional access won't be visited, unless using the cell-first strategy
Surely we do not want to make the model complex, but at the same time allow 
both of the use cases. If we have table privs + config option + per-operation 
cell-first strategy it is already three dimensions. Can we reduce that to at 
least two? Can we get away with per-operation strategy or the config option? 

> [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, 
> 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] [Created] (HBASE-11103) [AccessController] Enhance the cell ACL documentation in the security section of the online manual

2014-04-30 Thread Andrew Purtell (JIRA)
Andrew Purtell created HBASE-11103:
--

 Summary: [AccessController] Enhance the cell ACL documentation in 
the security section of the online manual
 Key: HBASE-11103
 URL: https://issues.apache.org/jira/browse/HBASE-11103
 Project: HBase
  Issue Type: Sub-task
Reporter: Andrew Purtell
 Fix For: 0.99.0, 0.98.3


We should capture the configuration space and the nuances involved wrt cell 
level ACLs, with use case examples, into the security section of the manual.



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


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

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell edited comment on HBASE-11077 at 4/30/14 9:53 PM:
-

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2, in that default behavior 
prior to 0.98.2 in the 0.98 release line is quite different. And, unfortunately 
cell ACLs would become largely useless, unless the admin research the feature 
and flip the attribute to "false", because when we early out at CF checks to 
retain pre-0.98 behavior the cell ACLs that would otherwise grant exceptional 
access won't be visited, unless using the cell-first strategy, which has the 
drawback of requiring the cell grant access. 

bq. Did you stop pursuing the READ_INVISIBLE priv aproach?

Check out the other subtask and let's figure out what makes sense for 0.99+. 

Edits: Clarity, sorry for the multiple changes.


was (Author: apurtell):
bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2. And, cell ACLs become 
largely useless, since we early out at CF checks, they can't grant exceptional 
access unless using the cell-first strategy, which has the drawback of 
requiring the cell grant access. 

bq. Did you stop pursuing the READ_INVISIBLE priv aproach?

Check out the other subtask and let's figure out what makes sense for 0.99+. 
It's not a trivial discussion.

> [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, 
> 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-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


There was a reason we changed the behavior when introducing cell ACLs. The 
parent mentions the issues involved, and the release notes on this issue also.

> [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, 
> 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] [Comment Edited] (HBASE-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell edited comment on HBASE-11077 at 4/30/14 9:43 PM:
-

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2. And, cell ACLs become 
largely useless, since we early out at CF checks, they can't grant exceptional 
access unless using the cell-first strategy, which has the drawback of 
requiring the cell grant access. 

bq. Did you stop pursuing the READ_INVISIBLE priv aproach?

Check out the other subtask and let's figure out what makes sense for 0.99+. 
It's not a trivial discussion.


was (Author: apurtell):
bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2. And, cell ACLs become 
largely useless, since we early out at CF checks, they can't grant exception 
access unless using the cell-first strategy, which has the drawback of 
requiring the cell grant access. 

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Check out the other subtask and let's figure out what makes sense for 0.99+. 
It's not a trivial discussion.

> [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, 
> 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] [Comment Edited] (HBASE-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell edited comment on HBASE-11077 at 4/30/14 9:42 PM:
-

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2. And, cell ACLs become 
largely useless, since we early out at CF checks, they can't grant exception 
access unless using the cell-first strategy, which has the drawback of 
requiring the cell grant access. 

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Check out the other subtask and let's figure out what makes sense for 0.99+. 
It's not a trivial discussion.


was (Author: apurtell):
bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2. 

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Check out the other subtask and let's figure out what makes sense for 0.99+. 
It's not a trivial discussion.

> [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, 
> 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-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Then we break compatibility from 0.98.1 to 0.98.2. 

bq. I think early_out should be set to true by default, so that it is least 
surprise to the admin.

Check out the other subtask and let's figure out what makes sense for 0.99+. 
It's not a trivial discussion.

> [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, 
> 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-11077) [AccessController] Restore compatible early-out access denial

2014-04-30 Thread Enis Soztutar (JIRA)

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

Enis Soztutar commented on HBASE-11077:
---

Sorry i missed this, was following the parent jira. 
bq. This setting is AccessControlConstants.CF_ATTRIBUTE_EARLY_OUT 
("hbase.security.access.early_out"), a boolean. Set to "true" for backwards 
compatible behavior.
I think early_out should be set to true by default, so that it is least 
surprise to the admin. Otherwise, she has to know about this particular 
configuration option, and turn this on. In the other case, where you would not 
have perm to table, but some specific cells, then it is fine to require and 
explicit parameter. It should not be a common use case. 
Did you stop pursuing the READ_INVISIBLE priv aproach? 

> [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, 
> 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-10993) Deprioritize long-running scanners

2014-04-30 Thread Matteo Bertozzi (JIRA)

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

Matteo Bertozzi updated HBASE-10993:


Attachment: HBASE-10993-v4.patch

> Deprioritize long-running scanners
> --
>
> Key: HBASE-10993
> URL: https://issues.apache.org/jira/browse/HBASE-10993
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Matteo Bertozzi
>Assignee: Matteo Bertozzi
>Priority: Minor
> Fix For: 0.99.0
>
> Attachments: HBASE-10993-v0.patch, HBASE-10993-v1.patch, 
> HBASE-10993-v2.patch, HBASE-10993-v3.patch, HBASE-10993-v4.patch
>
>
> Currently we have a single call queue that serves all the "normal user"  
> requests, and the requests are executed in FIFO.
> When running map-reduce jobs and user-queries on the same machine, we want to 
> prioritize the user-queries.
> Without changing too much code, and not having the user giving hints, we can 
> add a “vtime” field to the scanner, to keep track from how long is running. 
> And we can replace the callQueue with a priorityQueue. In this way we can 
> deprioritize long-running scans, the longer a scan request lives the less 
> priority it gets.



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


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

2014-04-30 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-11077:


Going to commit in a couple of hours

> [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, 
> 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-8332) Add truncate as HMaster method

2014-04-30 Thread Matteo Bertozzi (JIRA)

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

Matteo Bertozzi updated HBASE-8332:
---

Attachment: HBASE-8332-v4.patch

> Add truncate as HMaster method
> --
>
> Key: HBASE-8332
> URL: https://issues.apache.org/jira/browse/HBASE-8332
> Project: HBase
>  Issue Type: Improvement
>  Components: master
>Reporter: Matteo Bertozzi
>Assignee: Matteo Bertozzi
>Priority: Minor
> Attachments: HBASE-8332-v0.patch, HBASE-8332-v2.patch, 
> HBASE-8332-v3.patch, HBASE-8332-v4.patch, HBASE-8332.draft.patch
>
>
> Currently truncate and truncate_preserve are only shell functions, and 
> implemented as deleteTable() + createTable().
> Using ACLs the user running truncate, must have rights to create a table and 
> only "global granted" users can create tables.
> Add truncate() and truncatePreserve() to HBaseAdmin/HMaster with its own ACL 
> check.
> https://reviews.apache.org/r/15835/



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


[jira] [Created] (HBASE-11102) Document JDK versions supported by each release

2014-04-30 Thread Enis Soztutar (JIRA)
Enis Soztutar created HBASE-11102:
-

 Summary: Document JDK versions supported by each release
 Key: HBASE-11102
 URL: https://issues.apache.org/jira/browse/HBASE-11102
 Project: HBase
  Issue Type: Sub-task
Reporter: Enis Soztutar
 Fix For: 0.99.0


We can make use of a JDK version x HBase version matrix to explain which JDK 
version is supported and required. 

0.94, 0.96, and 0.98 releases all support JDK6 and JDK7. For 1.0, there is a 
discussion thread to decide whether to drop JDK6 support. 

There has been some work to support JDK8. We can also document that. 



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


[jira] [Commented] (HBASE-10958) [dataloss] Bulk loading with seqids can prevent some log entries from being replayed

2014-04-30 Thread Jean-Daniel Cryans (JIRA)

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

Jean-Daniel Cryans commented on HBASE-10958:


Sorry, went to do something else, lemme get that in (with HBASE-11008 first).

> [dataloss] Bulk loading with seqids can prevent some log entries from being 
> replayed
> 
>
> Key: HBASE-10958
> URL: https://issues.apache.org/jira/browse/HBASE-10958
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.18
>Reporter: Jean-Daniel Cryans
>Assignee: Jean-Daniel Cryans
>Priority: Blocker
> Fix For: 0.99.0, 0.98.2, 0.96.3, 0.94.20
>
> Attachments: HBASE-10958-0.94.patch, 
> HBASE-10958-less-intrusive-hack-0.96.patch, 
> HBASE-10958-quick-hack-0.96.patch, HBASE-10958-v2.patch, 
> HBASE-10958-v3.patch, HBASE-10958.patch
>
>
> We found an issue with bulk loads causing data loss when assigning sequence 
> ids (HBASE-6630) that is triggered when replaying recovered edits. We're 
> nicknaming this issue *Blindspot*.
> The problem is that the sequence id given to a bulk loaded file is higher 
> than those of the edits in the region's memstore. When replaying recovered 
> edits, the rule to skip some of them is that they have to be _lower than the 
> highest sequence id_. In other words, the edits that have a sequence id lower 
> than the highest one in the store files *should* have also been flushed. This 
> is not the case with bulk loaded files since we now have an HFile with a 
> sequence id higher than unflushed edits.
> The log recovery code takes this into account by simply skipping the bulk 
> loaded files, but this "bulk loaded status" is *lost* on compaction. The 
> edits in the logs that have a sequence id lower than the bulk loaded file 
> that got compacted are put in a blind spot and are skipped during replay.
> Here's the easiest way to recreate this issue:
>  - Create an empty table
>  - Put one row in it (let's say it gets seqid 1)
>  - Bulk load one file (it gets seqid 2). I used ImporTsv and set 
> hbase.mapreduce.bulkload.assign.sequenceNumbers.
>  - Bulk load a second file the same way (it gets seqid 3).
>  - Major compact the table (the new file has seqid 3 and isn't considered 
> bulk loaded).
>  - Kill the region server that holds the table's region.
>  - Scan the table once the region is made available again. The first row, at 
> seqid 1, will be missing since the HFile with seqid 3 makes us believe that 
> everything that came before it was flushed.



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


[jira] [Commented] (HBASE-10958) [dataloss] Bulk loading with seqids can prevent some log entries from being replayed

2014-04-30 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-10958:
---

Are you waiting for me to commit [~jdcryans]? Just making sure we're not 
mutually waiting.

> [dataloss] Bulk loading with seqids can prevent some log entries from being 
> replayed
> 
>
> Key: HBASE-10958
> URL: https://issues.apache.org/jira/browse/HBASE-10958
> Project: HBase
>  Issue Type: Bug
>Affects Versions: 0.96.2, 0.98.1, 0.94.18
>Reporter: Jean-Daniel Cryans
>Assignee: Jean-Daniel Cryans
>Priority: Blocker
> Fix For: 0.99.0, 0.98.2, 0.96.3, 0.94.20
>
> Attachments: HBASE-10958-0.94.patch, 
> HBASE-10958-less-intrusive-hack-0.96.patch, 
> HBASE-10958-quick-hack-0.96.patch, HBASE-10958-v2.patch, 
> HBASE-10958-v3.patch, HBASE-10958.patch
>
>
> We found an issue with bulk loads causing data loss when assigning sequence 
> ids (HBASE-6630) that is triggered when replaying recovered edits. We're 
> nicknaming this issue *Blindspot*.
> The problem is that the sequence id given to a bulk loaded file is higher 
> than those of the edits in the region's memstore. When replaying recovered 
> edits, the rule to skip some of them is that they have to be _lower than the 
> highest sequence id_. In other words, the edits that have a sequence id lower 
> than the highest one in the store files *should* have also been flushed. This 
> is not the case with bulk loaded files since we now have an HFile with a 
> sequence id higher than unflushed edits.
> The log recovery code takes this into account by simply skipping the bulk 
> loaded files, but this "bulk loaded status" is *lost* on compaction. The 
> edits in the logs that have a sequence id lower than the bulk loaded file 
> that got compacted are put in a blind spot and are skipped during replay.
> Here's the easiest way to recreate this issue:
>  - Create an empty table
>  - Put one row in it (let's say it gets seqid 1)
>  - Bulk load one file (it gets seqid 2). I used ImporTsv and set 
> hbase.mapreduce.bulkload.assign.sequenceNumbers.
>  - Bulk load a second file the same way (it gets seqid 3).
>  - Major compact the table (the new file has seqid 3 and isn't considered 
> bulk loaded).
>  - Kill the region server that holds the table's region.
>  - Scan the table once the region is made available again. The first row, at 
> seqid 1, will be missing since the HFile with seqid 3 makes us believe that 
> everything that came before it was flushed.



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


[jira] [Commented] (HBASE-10993) Deprioritize long-running scanners

2014-04-30 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-10993:
---

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

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

{color:green}+1 tests included{color}.  The patch appears to include 8 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.util.TestBoundedPriorityBlockingQueue

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

This message is automatically generated.

> Deprioritize long-running scanners
> --
>
> Key: HBASE-10993
> URL: https://issues.apache.org/jira/browse/HBASE-10993
> Project: HBase
>  Issue Type: Sub-task
>Reporter: Matteo Bertozzi
>Assignee: Matteo Bertozzi
>Priority: Minor
> Fix For: 0.99.0
>
> Attachments: HBASE-10993-v0.patch, HBASE-10993-v1.patch, 
> HBASE-10993-v2.patch, HBASE-10993-v3.patch
>
>
> Currently we have a single call queue that serves all the "normal user"  
> requests, and the requests are executed in FIFO.
> When running map-reduce jobs and user-queries on the same machine, we want to 
> prioritize the user-queries.
> Without changing too much code, and not having the user giving hints, we can 
> add a “vtime” field to the scanner, to keep track from how long is running. 
> And we can replace the callQueue with a priorityQueue. In this way we can 
> deprioritize long-running scans, the longer a scan request lives the less 
> priority it gets.



--
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-30 Thread stack (JIRA)

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

stack commented on HBASE-11099:
---

Sorry, missed your comments lads. Thanks for clarification.  Let me try and 
make a test to catch the hole so I know I'm putting plug in right place (smile).

> 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-7987) Snapshot Manifest file instead of multiple empty files

2014-04-30 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-7987:
--

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

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

{color:green}+1 tests included{color}.  The patch appears to include 40 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/9434//testReport/
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-protocol.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-thrift.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-client.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop2-compat.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-examples.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-prefix-tree.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-common.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-server.html
Findbugs warnings: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//artifact/trunk/patchprocess/newPatchFindbugsWarningshbase-hadoop-compat.html
Console output: 
https://builds.apache.org/job/PreCommit-HBASE-Build/9434//console

This message is automatically generated.

> Snapshot Manifest file instead of multiple empty files
> --
>
> Key: HBASE-7987
> URL: https://issues.apache.org/jira/browse/HBASE-7987
> Project: HBase
>  Issue Type: Improvement
>  Components: snapshots
>Reporter: Matteo Bertozzi
>Assignee: Matteo Bertozzi
> Fix For: 0.99.0
>
> Attachments: HBASE-7987-v0.patch, HBASE-7987-v1.patch, 
> HBASE-7987-v2.patch, HBASE-7987-v2.sketch, HBASE-7987-v3.patch, 
> HBASE-7987-v4.patch, HBASE-7987-v5.patch, HBASE-7987.sketch
>
>
> Currently taking a snapshot means creating one empty file for each file in 
> the source table directory, plus copying the .regioninfo file for each 
> region, the table descriptor file and a snapshotInfo file.
> during the restore or snapshot verification we traverse the filesystem 
> (fs.listStatus()) to find the snapshot files, and we open the .regioninfo 
> files to get the information.
> to avoid hammering the NameNode and having lots of empty files, we can use a 
> manifest file that contains the list of files and information that we need.
> To keep the RS parallelism that we have, each RS can write its own manifest.
> {code}
> message SnapshotDescriptor {
>   required string name;
>   optional string table;
>   optional int64 creationTime;
>   optional Type type;
>   optional int32 version;
> }
> message SnapshotRegionManifest {
>   optional int32 version;
>   required RegionInfo regionInfo;
>   repeated FamilyFiles familyFiles;
>   message StoreFile {
> required string name;
> optional Reference reference;
>   }
>   message FamilyFiles {
> required bytes familyName;
> repeated StoreFile storeFiles;
>   }
> }
> {code}
> {code}
> /hbase/.snapshot/
> /hbase/.snapshot//snapshotInfo
> /hbase/.snapshot//
> /hbase/.snapshot///tableInfo
> /hbase/.snapshot///regionManifest(.n)
> {code}



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


[jira] [Commented] (HBASE-10926) Use global procedure to flush table memstore cache

2014-04-30 Thread stack (JIRA)

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

stack commented on HBASE-10926:
---

bq. since you have already done the patch, and all the code seems to be 
isolated in procedure/flush i guess is fine if you just use acquireBarrier() to 
do the flush

I'm w/ [~mbertozzi] here.  Can file an issue to refactor once the 'state 
change' notification system goes in.

> Use global procedure to flush table memstore cache
> --
>
> Key: HBASE-10926
> URL: https://issues.apache.org/jira/browse/HBASE-10926
> Project: HBase
>  Issue Type: Improvement
>  Components: Admin
>Affects Versions: 0.96.2, 0.98.1
>Reporter: Jerry He
>Assignee: Jerry He
> Fix For: 0.99.0
>
> Attachments: HBASE-10926-trunk-v1.patch
>
>
> Currently, user can trigger table flush through hbase shell or HBaseAdmin 
> API.  To flush the table cache, each region server hosting the regions is 
> contacted and flushed sequentially, which is less efficient.
> In HBase snapshot global procedure is used to coordinate and flush the 
> regions in a distributed way.
> Let's provide a distributed table flush for general use.



--
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-30 Thread stack (JIRA)

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

stack commented on HBASE-11099:
---

Calling a sync while writes are blocked on this store would not be the end of 
the world.  When the sync comes out the otherside, I know all of my region 
edits have been pushed through ahead of it.  Syncs happen at a rate of many per 
ms -- in last measure over in hbase-10156 it had us syncing over a 15 minute 
period at almost 4 times a ms -- so would be a bit of a speed bump but probably 
not too bad.

> 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)


  1   2   >