[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105093#comment-14105093
 ] 

Lars Hofhansl commented on HBASE-11788:
---

The problem would seem to be in ProtobufUtil.toMutation(...). We set the 
KeyValue type according to type of Mutation passed.

This is not incorrect per se as this is not really the expected use of the 
HBase client API. It's easy to break stuff in subtle ways doing this, from that 
angle the new behavior is better.

That said, if it breaks Hive, let's fix it.


 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to hbase



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


[jira] [Updated] (HBASE-11643) Read and write MOB in HBase

2014-08-21 Thread Jingcheng Du (JIRA)

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

Jingcheng Du updated HBASE-11643:
-

Attachment: HBASE-11643-V8.diff

Merge the latest master code and re-generate the patch to make it pass the 
Hadoop QA.

 Read and write MOB in HBase
 ---

 Key: HBASE-11643
 URL: https://issues.apache.org/jira/browse/HBASE-11643
 Project: HBase
  Issue Type: Sub-task
  Components: regionserver, Scanners
Reporter: Jingcheng Du
Assignee: Jingcheng Du
 Attachments: HBASE-11643-V2.diff, HBASE-11643-V3.diff, 
 HBASE-11643-V4.diff, HBASE-11643-V5.diff, HBASE-11643-V6.diff, 
 HBASE-11643-V7.diff, HBASE-11643-V8.diff, HBase-11643.diff


 The read/write MOB in HBase are implemented in this JIRA. Normally, the Cells 
 are saved in the MemStore, and flushed to the HFiles when necessary. For MOB, 
 the Cells are saved in the MemStore as well, but they're flushed to elsewhere 
 out of HBase in the format of HFiles.



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


[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Lars Hofhansl (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105101#comment-14105101
 ] 

Lars Hofhansl commented on HBASE-11788:
---

toPut would also need to be changed to allow building a Put with delete-type 
KeyValue in it. Possible, but really messy.


 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to hbase



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


[jira] [Commented] (HBASE-11165) Scaling so cluster can host 1M regions and beyond (50M regions?)

2014-08-21 Thread Mikhail Antonov (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11165?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105102#comment-14105102
 ] 

Mikhail Antonov commented on HBASE-11165:
-

bq. Do we need to split this conversation into what to do on master and what to 
do with 0.98?
That makes lot of sense to me.

 Scaling so cluster can host 1M regions and beyond (50M regions?)
 

 Key: HBASE-11165
 URL: https://issues.apache.org/jira/browse/HBASE-11165
 Project: HBase
  Issue Type: Brainstorming
Reporter: stack
 Attachments: HBASE-11165.zip, Region Scalability test.pdf, 
 zk_less_assignment_comparison_2.pdf


 This discussion issue comes out of Co-locate Meta And Master HBASE-10569 
 and comments on the doc posted there.
 A user -- our Francis Liu -- needs to be able to scale a cluster to do 1M 
 regions maybe even 50M later.  This issue is about discussing how we will do 
 that (or if not 50M on a cluster, how otherwise we can attain same end).
 More detail to follow.



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


[jira] [Created] (HBASE-11794) StripeStoreFlusher causes NullPointerException and Region down

2014-08-21 Thread jeongmin kim (JIRA)
jeongmin kim created HBASE-11794:


 Summary: StripeStoreFlusher causes NullPointerException and Region 
down
 Key: HBASE-11794
 URL: https://issues.apache.org/jira/browse/HBASE-11794
 Project: HBase
  Issue Type: Bug
  Components: Compaction
Affects Versions: 0.98.5
Reporter: jeongmin kim
Priority: Critical


StoreFlusher.flushSnapshot() mustn't return null value.
But StripeStoreFlusher.flushSnapshot() does.

It cause NullPointerException at 
org.apache.hadoop.hbase.regionserver.HStore.flushCache(HStore.java:802)
and this makes regions dead after exhaustive retries and no recovery available 
from it.

the code (StripeStoreFlusher:64) has to be changed 
===
from
ListPath result = null 
to
 ListPath result = new ArrayListPath();
 ===
to return a empty list not null value.




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


[jira] [Commented] (HBASE-11787) TestRegionLocations is not categorized

2014-08-21 Thread Nicolas Liochon (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105180#comment-14105180
 ] 

Nicolas Liochon commented on HBASE-11787:
-

bq. TestPutWriteToWAL
It's empty and you're the only committer there. I haven't investigated further 
:-)

bq.  TestCheckTestClasses only checks for hbase-server tests? 
Likely, it was done before the modularization...  I don't know if there is an 
easy fix for this...

 TestRegionLocations is not categorized
 --

 Key: HBASE-11787
 URL: https://issues.apache.org/jira/browse/HBASE-11787
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.99.0, 2.0.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Trivial
 Fix For: 0.99.0, 2.0.0

 Attachments: 11787.v1.patch


 It's actually executed (likely with the large tests), but it's risky.



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


[jira] [Commented] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread ramkrishna.s.vasudevan (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105185#comment-14105185
 ] 

ramkrishna.s.vasudevan commented on HBASE-11591:


[~jeffreyz]
First of all thanks a lot for taking a look at this issue and providing a patch.
I debugged this issue with 2 cases - with my patch and with Jeffrey's patch. 
Observed the following things
- The testcase that was added as part of this testcase is for same KVs in the 
Store file and the bulk loaded Store file and it was specific for that issue.
- After Jeffrey's first patch few testcases failed and those were not having 
this case of same KVs. All were different row keys. Things were working fine 
because it was purely based on row key comparison and no mvcc would have even 
come into it. (I mean even before the patch). I think that exposed some of the 
bug that was inside.

- Another important observation is that when we are scanning the KVs in the 
bulk loaded file (atleast those created new LoadIncrementalHFile cases) there 
is no mvcc info added to the metadata also.  So 
{code}
return new StoreFileScanner(this,
 getScanner(cacheBlocks, pread, isCompaction),
 !isCompaction, reader.hasMVCCInfo(), readPt);
{code}
will say has mvccInfo as false and hence skipNewerThanReadPoint() would never 
be called because 
{code}
if (hasMVCCInfo)
  skipKVsNewerThanReadpoint();
{code}
So before the patch too, the scenario in the failed test case 
TestWALReplay.testCompactedBulkLoadedFiles() though our seqID for the bulk 
loaded files were 5, and the read point for all the scanners created in the 
test case was 4 - we were trying to read the bulk loaded file also.  But we 
were not able to skip the kvs in the bulk loaded file just because hasMvccInfo 
was false.  So the tests were passing.
Ok so what happens after Jeffrey's patch(the first patch without HREgion's 
change) is that on seeing any bulk loaded file we just assign the file's seqid 
to the KV's seqId.  And so after compaction still the read pt is not modified 
to the latest (ie 5) and hence all the KVs that were written to the compacted 
file from the bulk loaded files were missing.
I think the change in HRegion.java to set the write Sequence number is a bug 
fix? I still feel the patch would cause issue in the following scenario after 
the above changes

- Assume a scan started and the read point is 20 at that time
- Bulk load is just getting completed and the scanner heap gets reset.  The 
new bulk loaded file with seqId 22 (for eg) gets added now to the scanner heap. 
But remember that the read point is still 20.
- After this change we would just set the bulk load file's seqId to all its 
KVs  which is 22.  
- Because there is no mvcc info in this bulk loaded file the scan would not be 
able to skipTheKvsWithNewerReadPt() and hence the scan would still see the Kvs 
with 22 as the seqId though the intention is to see only KVs with seqID 20.
I may be wrong. Am I missing something here? I may be wrong because for bulk 
loaded files because there is no mvcc we are allowed to read anything in that 
irrespective of the read pt?

 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, TestBulkload.java, 
 hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 

[jira] [Updated] (HBASE-11647) MOB integration testing

2014-08-21 Thread Jingcheng Du (JIRA)

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

Jingcheng Du updated HBASE-11647:
-

Attachment: HBASE-11647.diff

Add the integration testing for the mob.
The testing reports will be uploaded after they are done. Thanks.

 MOB integration testing
 ---

 Key: HBASE-11647
 URL: https://issues.apache.org/jira/browse/HBASE-11647
 Project: HBase
  Issue Type: Sub-task
  Components: Performance, test
Reporter: Jingcheng Du
Assignee: Jingcheng Du
 Attachments: HBASE-11647.diff


 The integration testings include the integration function testing and 
 performance testing.



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


[jira] [Commented] (HBASE-4955) Use the official versions of surefire junit

2014-08-21 Thread Nicolas Liochon (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105190#comment-14105190
 ] 

Nicolas Liochon commented on HBASE-4955:


bq. I wonder if this should give up and fail if we try for too long?
We could. At the end of the day, it's a surefire bug: it should stop properly 
the process.

bq. Could you be a bit more detailed on the things which we should fix to get 
this through?
On the previous test, we did not generate the final report (iirc it was the 
issue I got as well a few months ago). I don't know how to fix this.
On the test you relaunched, it worked. I don't know if it's linked to this new 
surefire version, and what is the probability to have the issue.

I'm going to commit the patch, we will see and we can always revert.  Guys, 
don't hesitate to revert. I'm leaving the office at 6pm my time today, so if 
there is an issue during the bay area office hours I won't be able to handle it.


 Use the official versions of surefire  junit
 -

 Key: HBASE-4955
 URL: https://issues.apache.org/jira/browse/HBASE-4955
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.0, 0.98.0, 0.96.0, 0.99.0
 Environment: all
Reporter: Nicolas Liochon
Assignee: Alex Newman
Priority: Critical
 Attachments: 4955.v1.patch, 4955.v2.patch, 4955.v2.patch, 
 4955.v2.patch, 4955.v2.patch, 4955.v3.patch, 4955.v3.patch, 4955.v3.patch, 
 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 
 4955.v4.patch, 4955.v5.patch, 4955.v6.patch, 4955.v7.patch, 4955.v7.patch, 
 4955.v8.patch, 4955.v9.patch, 8204.v4.patch, HBASE-4955-v10.patch, 
 HBASE-4955-v10.patch, HBASE-4955-v10.patch


 We currently use private versions for Surefire  JUnit since HBASE-4763.
 This JIRA traks what we need to move to official versions.
 Surefire 2.11 is just out, but, after some tests, it does not contain all 
 what we need.
 JUnit. Could be for JUnit 4.11. Issue to monitor:
 https://github.com/KentBeck/junit/issues/359: fixed in our version, no 
 feedback for an integration on trunk
 Surefire: Could be for Surefire 2.12. Issues to monitor are:
 329 (category support): fixed, we use the official implementation from the 
 trunk
 786 (@Category with forkMode=always): fixed, we use the official 
 implementation from the trunk
 791 (incorrect elapsed time on test failure): fixed, we use the official 
 implementation from the trunk
 793 (incorrect time in the XML report): Not fixed (reopen) on trunk, fixed on 
 our version.
 760 (does not take into account the test method): fixed in trunk, not fixed 
 in our version
 798 (print immediately the test class name): not fixed in trunk, not fixed in 
 our version
 799 (Allow test parallelization when forkMode=always): not fixed in trunk, 
 not fixed in our version
 800 (redirectTestOutputToFile not taken into account): not yet fix on trunk, 
 fixed on our version
 800  793 are the more important to monitor, it's the only ones that are 
 fixed in our version but not on trunk.



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


[jira] [Commented] (HBASE-11339) HBase MOB

2014-08-21 Thread Jingcheng Du (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11339?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105191#comment-14105191
 ] 

Jingcheng Du commented on HBASE-11339:
--

Dear all, the patches for the sub tasks of HBase MOB have been uploaded. Please 
help review and comment. Thanks a lot!

 HBase MOB
 -

 Key: HBASE-11339
 URL: https://issues.apache.org/jira/browse/HBASE-11339
 Project: HBase
  Issue Type: Umbrella
  Components: regionserver, Scanners
Reporter: Jingcheng Du
Assignee: Jingcheng Du
 Attachments: HBase MOB Design-v2.pdf, HBase MOB Design-v3.pdf, HBase 
 MOB Design-v4.pdf, HBase MOB Design.pdf, MOB user guide .docx, 
 hbase-11339-in-dev.patch


   It's quite useful to save the medium binary data like images, documents 
 into Apache HBase. Unfortunately directly saving the binary MOB(medium 
 object) to HBase leads to a worse performance since the frequent split and 
 compaction.
   In this design, the MOB data are stored in an more efficient way, which 
 keeps a high write/read performance and guarantees the data consistency in 
 Apache HBase.



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


[jira] [Updated] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Andrey Stepachev (JIRA)

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

Andrey Stepachev updated HBASE-7767:


Affects Version/s: (was: 0.95.2)
   2.0.0
   Status: Patch Available  (was: In Progress)

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Updated] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Andrey Stepachev (JIRA)

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

Andrey Stepachev updated HBASE-7767:


Attachment: HBASE-7767.patch


Patch is quite big, but what was done.
1. Table state stored in .tableinfo. HTableDescriptor now has TABLE_STATE 
parameter.
2. Added TableState and inner enum State.
3. Added MasterRPC getTableState (which supersedes 
isTableEnabled/isTableDisabled, now getTableState returns enum)
4. TableStateManager removed from public api and become helper private class 
(similar to TableNamespaceManager)
5. TableStateManager caches reads and updates cache on writes. 
6. TableStateManager doesn’t use table locks for modifications, caller should 
ensure, that table locked. That is because TableLocks not reentrant. An option 
is to add boolean, but currently TableStateManager used in master only as 
helper class.
5. Table state also available through HTableDescriptor, but can’t be altered. 
enable/disable RPC call should be used.
6. Removed TableState from ZookeeperProtos.
7. Removed methods for table availability from Registry.
7. Removed TableStateManager from CoordinatedStateManager (now master is 
responsible for table state)

Rationale for additional method: currently getTableDecriptor method wants fully 
initialised HMaster, but table state requests are used before master fully 
initialised. Added method waits only HMaster ’started’ status. 

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Updated] (HBASE-4955) Use the official versions of surefire junit

2014-08-21 Thread Nicolas Liochon (JIRA)

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

Nicolas Liochon updated HBASE-4955:
---

   Resolution: Fixed
Fix Version/s: 2.0.0
 Hadoop Flags: Reviewed
   Status: Resolved  (was: Patch Available)

 Use the official versions of surefire  junit
 -

 Key: HBASE-4955
 URL: https://issues.apache.org/jira/browse/HBASE-4955
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.0, 0.98.0, 0.96.0, 0.99.0
 Environment: all
Reporter: Nicolas Liochon
Assignee: Alex Newman
Priority: Critical
 Fix For: 2.0.0

 Attachments: 4955.v1.patch, 4955.v2.patch, 4955.v2.patch, 
 4955.v2.patch, 4955.v2.patch, 4955.v3.patch, 4955.v3.patch, 4955.v3.patch, 
 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 
 4955.v4.patch, 4955.v5.patch, 4955.v6.patch, 4955.v7.patch, 4955.v7.patch, 
 4955.v8.patch, 4955.v9.patch, 8204.v4.patch, HBASE-4955-v10.patch, 
 HBASE-4955-v10.patch, HBASE-4955-v10.patch


 We currently use private versions for Surefire  JUnit since HBASE-4763.
 This JIRA traks what we need to move to official versions.
 Surefire 2.11 is just out, but, after some tests, it does not contain all 
 what we need.
 JUnit. Could be for JUnit 4.11. Issue to monitor:
 https://github.com/KentBeck/junit/issues/359: fixed in our version, no 
 feedback for an integration on trunk
 Surefire: Could be for Surefire 2.12. Issues to monitor are:
 329 (category support): fixed, we use the official implementation from the 
 trunk
 786 (@Category with forkMode=always): fixed, we use the official 
 implementation from the trunk
 791 (incorrect elapsed time on test failure): fixed, we use the official 
 implementation from the trunk
 793 (incorrect time in the XML report): Not fixed (reopen) on trunk, fixed on 
 our version.
 760 (does not take into account the test method): fixed in trunk, not fixed 
 in our version
 798 (print immediately the test class name): not fixed in trunk, not fixed in 
 our version
 799 (Allow test parallelization when forkMode=always): not fixed in trunk, 
 not fixed in our version
 800 (redirectTestOutputToFile not taken into account): not yet fix on trunk, 
 fixed on our version
 800  793 are the more important to monitor, it's the only ones that are 
 fixed in our version but not on trunk.



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


[jira] [Commented] (HBASE-11787) TestRegionLocations is not categorized

2014-08-21 Thread Nicolas Liochon (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105218#comment-14105218
 ] 

Nicolas Liochon commented on HBASE-11787:
-

It seems hadoop qa didn't run... Retrying.

 TestRegionLocations is not categorized
 --

 Key: HBASE-11787
 URL: https://issues.apache.org/jira/browse/HBASE-11787
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.99.0, 2.0.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Trivial
 Fix For: 0.99.0, 2.0.0

 Attachments: 11787.v1.patch


 It's actually executed (likely with the large tests), but it's risky.



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


[jira] [Commented] (HBASE-8927) Use nano time instead of mili time everywhere

2014-08-21 Thread Nicolas Liochon (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105225#comment-14105225
 ] 

Nicolas Liochon commented on HBASE-8927:


So I'm adding there the comment I wrote in a duplicate jira: Am I the only one 
who would appreciate some extra bits, to have a timestamps + a counter?

 Use nano time instead of mili time everywhere
 -

 Key: HBASE-8927
 URL: https://issues.apache.org/jira/browse/HBASE-8927
 Project: HBase
  Issue Type: Bug
Reporter: stack
  Labels: phoenix
 Attachments: 8927.txt


 Less collisions and we are paying the price of a long anyways so might as 
 well fill it.



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


[jira] [Commented] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Andrey Stepachev (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-7767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105231#comment-14105231
 ] 

Andrey Stepachev commented on HBASE-7767:
-

https://reviews.apache.org/r/24924/

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Commented] (HBASE-11610) Enhance remote meta updates

2014-08-21 Thread Nicolas Liochon (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105239#comment-14105239
 ] 

Nicolas Liochon commented on HBASE-11610:
-

bq. I think we should have an additional processBatch which takes care of that
I agree.

bq. Should we have a JIRA to discuss all this?
As you like. It's not necessary imho, we can do that here. Cleaning up all 
stuff around thread pools would take some time. This jira is a good input for 
this work.

 Enhance remote meta updates
 ---

 Key: HBASE-11610
 URL: https://issues.apache.org/jira/browse/HBASE-11610
 Project: HBase
  Issue Type: Sub-task
Reporter: Jimmy Xiang
Assignee: Virag Kothari
 Attachments: HBASE-11610.patch


 Currently, if the meta region is on a regionserver instead of the master, 
 meta update is synchronized on one HTable instance. We should be able to do 
 better.



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


[jira] [Commented] (HBASE-11763) Move TTL handling into ScanQueryMatcher

2014-08-21 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105274#comment-14105274
 ] 

Hadoop QA commented on HBASE-11763:
---

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

{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 javac{color}.  The applied patch does not increase the 
total number of javac compiler warnings.

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

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 7 
warning messages.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) 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.master.TestRollingRestart

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

This message is automatically generated.

 Move TTL handling into ScanQueryMatcher
 ---

 Key: HBASE-11763
 URL: https://issues.apache.org/jira/browse/HBASE-11763
 Project: HBase
  Issue Type: Sub-task
Reporter: Andrew Purtell
Assignee: Andrew Purtell
 Fix For: 0.99.0, 2.0.0, 0.98.6

 Attachments: HBASE-11763.patch, HBASE-11763.patch






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


[jira] [Commented] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread ramkrishna.s.vasudevan (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105286#comment-14105286
 ] 

ramkrishna.s.vasudevan commented on HBASE-11591:


Another thing is that while doing flush as part of Bulk load if there is 
nothing to be flushed should we still update the mvcc.
{code}
if (this.memstoreSize.get() = 0) {
  // Presume that if there are still no edits in the memstore, then 
there are no edits for
  // this region out in the WAL/HLog subsystem so no need to do any 
trickery clearing out
  // edits in the WAL system. Up the sequence number so the resulting 
flush id is for
  // sure just beyond the last appended region edit (useful as a marker 
when bulk loading,
  // etc.)
  // wal can be null replaying edits.
  return wal != null?
new FlushResult(FlushResult.Result.CANNOT_FLUSH_MEMSTORE_EMPTY,
  getNextSequenceId(wal), Nothing to flush):
new FlushResult(FlushResult.Result.CANNOT_FLUSH_MEMSTORE_EMPTY, 
Nothing to flush);
}
{code}


 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, TestBulkload.java, 
 hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 public int compare(KeyValueScanner left, KeyValueScanner right) {
   int comparison = compare(left.peek(), right.peek());
   if (comparison != 0) {
 return comparison;
   } else {
 // Since both the keys are exactly the same, we break the tie in favor
 // of the key which came latest.
 long leftSequenceID = left.getSequenceID();
 long rightSequenceID = right.getSequenceID();
 if (leftSequenceID  rightSequenceID) {
   return -1;
 } else if (leftSequenceID  rightSequenceID) {
   return 1;
 } else {
   return 0;
 }
   }
 }
 {code}
 Here  in 0.96 case the mvcc of the cell in both the files will have 0 and so 
 the comparison will happen from the else condition .  Where the seq id of the 
 bulk loaded file is greater and would sort out first ensuring that the scan 
 happens from that bulk loaded file.
 In case of 0.98+ as we are retaining the mvcc+seqid we are not making the 
 mvcc as 0 (remains a non zero positive value).  Hence the compare() sorts out 
 the cell in the flushed/compacted file.  Which means though we know the 
 lateset file is the bulk loaded file we don't scan the data.
 Seems to be a behaviour change.  Will check on other corner cases also but we 
 are trying to know the behaviour of bulk load because we are evaluating if it 
 can be used for MOB design.



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


[jira] [Updated] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan updated HBASE-11591:
---

Status: Open  (was: Patch Available)

 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, TestBulkload.java, 
 hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 public int compare(KeyValueScanner left, KeyValueScanner right) {
   int comparison = compare(left.peek(), right.peek());
   if (comparison != 0) {
 return comparison;
   } else {
 // Since both the keys are exactly the same, we break the tie in favor
 // of the key which came latest.
 long leftSequenceID = left.getSequenceID();
 long rightSequenceID = right.getSequenceID();
 if (leftSequenceID  rightSequenceID) {
   return -1;
 } else if (leftSequenceID  rightSequenceID) {
   return 1;
 } else {
   return 0;
 }
   }
 }
 {code}
 Here  in 0.96 case the mvcc of the cell in both the files will have 0 and so 
 the comparison will happen from the else condition .  Where the seq id of the 
 bulk loaded file is greater and would sort out first ensuring that the scan 
 happens from that bulk loaded file.
 In case of 0.98+ as we are retaining the mvcc+seqid we are not making the 
 mvcc as 0 (remains a non zero positive value).  Hence the compare() sorts out 
 the cell in the flushed/compacted file.  Which means though we know the 
 lateset file is the bulk loaded file we don't scan the data.
 Seems to be a behaviour change.  Will check on other corner cases also but we 
 are trying to know the behaviour of bulk load because we are evaluating if it 
 can be used for MOB design.



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


[jira] [Updated] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan updated HBASE-11591:
---

Attachment: HBASE-11591_5.patch

The patch tries to do skipKVsGreaterthanReadPt() even for bulk loaded kvs. 
In the attached patch if we don't do the mvcc thing for no flush result then 
the testBulkLoad will fail.  That is because though the scanner is created 
after bulk load the read pt is still lower than the seqID created as the seqId 
is not added to the mvcc writeentry.  
In the next case testBulkLoadWithParallelScan() the scanner is created before 
bulk load.  And so the expected KV should be the KV that is not from the bulk 
loaded file, though the scanner heap is reset after the bulk load.

 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, HBASE-11591_5.patch, 
 TestBulkload.java, hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 public int compare(KeyValueScanner left, KeyValueScanner right) {
   int comparison = compare(left.peek(), right.peek());
   if (comparison != 0) {
 return comparison;
   } else {
 // Since both the keys are exactly the same, we break the tie in favor
 // of the key which came latest.
 long leftSequenceID = left.getSequenceID();
 long rightSequenceID = right.getSequenceID();
 if (leftSequenceID  rightSequenceID) {
   return -1;
 } else if (leftSequenceID  rightSequenceID) {
   return 1;
 } else {
   return 0;
 }
   }
 }
 {code}
 Here  in 0.96 case the mvcc of the cell in both the files will have 0 and so 
 the comparison will happen from the else condition .  Where the seq id of the 
 bulk loaded file is greater and would sort out first ensuring that the scan 
 happens from that bulk loaded file.
 In case of 0.98+ as we are retaining the mvcc+seqid we are not making the 
 mvcc as 0 (remains a non zero positive value).  Hence the compare() sorts out 
 the cell in the flushed/compacted file.  Which means though we know the 
 lateset file is the bulk loaded file we don't scan the data.
 Seems to be a behaviour change.  Will check on other corner cases also but we 
 are trying to know the behaviour of bulk load because we are evaluating if it 
 can be used for MOB design.



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


[jira] [Updated] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread ramkrishna.s.vasudevan (JIRA)

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

ramkrishna.s.vasudevan updated HBASE-11591:
---

Status: Patch Available  (was: Open)

 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, HBASE-11591_5.patch, 
 TestBulkload.java, hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 public int compare(KeyValueScanner left, KeyValueScanner right) {
   int comparison = compare(left.peek(), right.peek());
   if (comparison != 0) {
 return comparison;
   } else {
 // Since both the keys are exactly the same, we break the tie in favor
 // of the key which came latest.
 long leftSequenceID = left.getSequenceID();
 long rightSequenceID = right.getSequenceID();
 if (leftSequenceID  rightSequenceID) {
   return -1;
 } else if (leftSequenceID  rightSequenceID) {
   return 1;
 } else {
   return 0;
 }
   }
 }
 {code}
 Here  in 0.96 case the mvcc of the cell in both the files will have 0 and so 
 the comparison will happen from the else condition .  Where the seq id of the 
 bulk loaded file is greater and would sort out first ensuring that the scan 
 happens from that bulk loaded file.
 In case of 0.98+ as we are retaining the mvcc+seqid we are not making the 
 mvcc as 0 (remains a non zero positive value).  Hence the compare() sorts out 
 the cell in the flushed/compacted file.  Which means though we know the 
 lateset file is the bulk loaded file we don't scan the data.
 Seems to be a behaviour change.  Will check on other corner cases also but we 
 are trying to know the behaviour of bulk load because we are evaluating if it 
 can be used for MOB design.



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


[jira] [Commented] (HBASE-11777) Find a way to use KV.setSequenceId() on Cells on the server-side read path

2014-08-21 Thread ramkrishna.s.vasudevan (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11777?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105298#comment-14105298
 ] 

ramkrishna.s.vasudevan commented on HBASE-11777:


bq.If one or a few, could be anonymous?
Ya.  It would be few only. Anonymous is fine with me. 
bq.This change would immediately double the allocation rate.
May be this happens only in case of bulk loaded files. Not in all cases. What 
do you think?

 Find a way to use KV.setSequenceId() on Cells on the server-side read path
 --

 Key: HBASE-11777
 URL: https://issues.apache.org/jira/browse/HBASE-11777
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Attachments: CellWithSequenceNumber.java


 Over in HBASE-11591 there was a need to set the sequenceId of the HFile to 
 the bulk loaded KVs.  Since we are trying to use the concept of Cells in the 
 read path if we need to use setSequenceId(), then the Cell has to be 
 converted to KV and only KeyValue impl has the accessor setSequenceId().
 [~anoop.hbase] suggested if we can use a Server side impl of Cell and have 
 these accessors in them.
 This JIRA aims to solve this and see the related code changes that needs to 
 be carried out for this.



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


[jira] [Commented] (HBASE-11643) Read and write MOB in HBase

2014-08-21 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11643?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105344#comment-14105344
 ] 

Hadoop QA commented on HBASE-11643:
---

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

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

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

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

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

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 8 
warning messages.

{color:green}+1 findbugs{color}.  The patch does not introduce any new 
Findbugs (version 2.0.3) 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.master.TestAssignmentManagerOnCluster
  org.apache.hadoop.hbase.replication.TestPerTableCFReplication
  org.apache.hadoop.hbase.TestRegionRebalancing

 {color:red}-1 core zombie tests{color}.  There are 1 zombie test(s):   
at 
org.apache.hadoop.hbase.regionserver.wal.TestLogRolling.testCompactionRecordDoesntBlockRolling(TestLogRolling.java:618)

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

This message is automatically generated.

 Read and write MOB in HBase
 ---

 Key: HBASE-11643
 URL: https://issues.apache.org/jira/browse/HBASE-11643
 Project: HBase
  Issue Type: Sub-task
  Components: regionserver, Scanners
Reporter: Jingcheng Du
Assignee: Jingcheng Du
 Attachments: HBASE-11643-V2.diff, HBASE-11643-V3.diff, 
 HBASE-11643-V4.diff, HBASE-11643-V5.diff, HBASE-11643-V6.diff, 
 HBASE-11643-V7.diff, HBASE-11643-V8.diff, HBase-11643.diff


 The read/write MOB in HBase are implemented in this JIRA. Normally, the Cells 
 are saved in the MemStore, and flushed to the HFiles when necessary. For MOB, 
 the Cells are saved in the MemStore as well, but they're flushed to elsewhere 
 out of HBase in the format of HFiles.



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


[jira] [Commented] (HBASE-11729) Document HFile v3

2014-08-21 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105347#comment-14105347
 ] 

Hadoop QA commented on HBASE-11729:
---

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

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

{color:green}+0 tests included{color}.  The patch appears to be a 
documentation patch that doesn't require tests.

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

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

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 7 
warning messages.

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

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

{color:red}-1 lineLengths{color}.  The patch introduces the following lines 
longer than 100:
+paraAs we will be discussing changes to the HFile format, it is 
useful to give a short overview of the original (HFile version 1) format./para
+   footnoteparaImage courtesy of Lars George, link 
xlink:href=http://www.larsgeorge.com/2009/10/hbase-architecture-101-storage.html;hbase-architecture-101-storage.html/link./para/footnote
+   paraThe number of entries in the block index is stored in the fixed file 
trailer, and has to be passed in to the method that reads the block index. One 
of the limitations of the block index in version 1 is that it does not provide 
the compressed size of a block, which turns out to be necessary for 
decompression. Therefore, the HFile reader has to infer this compressed size 
from the offset difference between blocks. We fix this limitation in version 2, 
where we store on-disk block size instead of uncompressed size, and get 
uncompressed size from the block header./para
+   paraWe found it necessary to revise the HFile format after encountering 
high memory usage and slow startup times caused by large Bloom filters and 
block indexes in the region server. Bloom filters can get as large as 100 MB 
per HFile, which adds up to 2 GB when aggregated over 20 regions. Block indexes 
can grow as large as 6 GB in aggregate size over the same set of regions. A 
region is not considered opened until all of its block index data is loaded. 
Large Bloom filters produce a different performance problem: the first get 
request that requires a Bloom filter lookup will incur the latency of loading 
the entire Bloom filter bit array./para
+   paraTo speed up region server startup we break Bloom filters and block 
indexes into multiple blocks and write those blocks out as they fill up, which 
also reduces the HFile writer���s memory footprint. In the Bloom filter case, 
���filling up a block��� means accumulating enough keys to efficiently utilize 
a fixed-size bit array, and in the block index case we accumulate an ���index 
block��� of the desired size. Bloom filter blocks and index blocks (we call 
these ���inline blocks���) become interspersed with data blocks, and as a side 
effect we can no longer rely on the difference between block offsets to 
determine data block length, as it was done in version 1./para
+   paraHFile is a low-level file format by design, and it should not deal 
with application-specific details such as Bloom filters, which are handled at 
StoreFile level. Therefore, we call Bloom filter blocks in an HFile inline 
blocks. We also supply HFile with an interface to write those inline blocks. 
/para
+   paraAnother format modification aimed at reducing the region server 
startup time is to use a contiguous ���load-on-open��� section that has to be 
loaded in memory at the time an HFile is being opened. Currently, as an HFile 
opens, there are separate seek operations to read the trailer, data/meta 
indexes, and file info. To read the Bloom filter, there are two more seek 
operations for its ���data��� and ���meta��� portions. In version 2, we seek 
once to read the trailer and seek again to read everything else we need to open 
the file from a contiguous block./para/section
+   paraThe version of HBase introducing the above features reads both 
version 1 and 2 HFiles, but only writes version 2 HFiles. A version 2 HFile is 
structured as follows:
+ para8 bytes: Block type, a sequence of bytes equivalent to version 
1's magic records. Supported block types are: /para
+ INTERMEDIATE_INDEX ��� intermediate-level index blocks in 
a multi-level blockindex

  {color:green}+1 site{color}.  The mvn site goal 

[jira] [Commented] (HBASE-11729) Document HFile v3

2014-08-21 Thread Sean Busbey (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105363#comment-14105363
 ] 

Sean Busbey commented on HBASE-11729:
-

AFAICT, both the javadoc warnings and the test failures are unrelated to this 
patch.

 Document HFile v3
 -

 Key: HBASE-11729
 URL: https://issues.apache.org/jira/browse/HBASE-11729
 Project: HBase
  Issue Type: Task
  Components: documentation, HFile
Affects Versions: 0.98.0
Reporter: Sean Busbey
Assignee: Sean Busbey
Priority: Trivial
  Labels: beginner
 Attachments: HBASE-11729-v2.patch, HBASE-11729-v2.pdf, 
 HBASE-11729.patch, HBASE-11729.pdf


 0.98 added HFile v3. There are a couple of mentions of it in the book on the 
 sections on cell tags, but there isn't an actual overview or design 
 explanation like there is for [HFile 
 v2|http://hbase.apache.org/book/hfilev2.html].



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


[jira] [Assigned] (HBASE-2739) Master should fail to start if it cannot successfully split logs

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey reassigned HBASE-2739:
--

Assignee: Sean Busbey

 Master should fail to start if it cannot successfully split logs
 

 Key: HBASE-2739
 URL: https://issues.apache.org/jira/browse/HBASE-2739
 Project: HBase
  Issue Type: Bug
  Components: master
Affects Versions: 0.20.4, 0.90.0
Reporter: Todd Lipcon
Assignee: Sean Busbey
Priority: Critical

 In trunk, in splitLogAfterStartup(), we log the error splitting, but don't 
 shut down. Depending on configuration, we should probably shut down here 
 rather than continue with dataloss.
 In 0.20, we print the stacktrace to stdout in verifyClusterState, but 
 continue through and often fail to start up 



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


[jira] [Commented] (HBASE-11787) TestRegionLocations is not categorized

2014-08-21 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11787?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105406#comment-14105406
 ] 

Hadoop QA commented on HBASE-11787:
---

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

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

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

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

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

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 7 
warning messages.

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

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

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

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

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

 {color:red}-1 core zombie tests{color}.  There are 1 zombie test(s): 

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

This message is automatically generated.

 TestRegionLocations is not categorized
 --

 Key: HBASE-11787
 URL: https://issues.apache.org/jira/browse/HBASE-11787
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.99.0, 2.0.0
Reporter: Nicolas Liochon
Assignee: Nicolas Liochon
Priority: Trivial
 Fix For: 0.99.0, 2.0.0

 Attachments: 11787.v1.patch


 It's actually executed (likely with the large tests), but it's risky.



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


[jira] [Commented] (HBASE-11679) Replace HTable with HTableInterface where backwards-compatible

2014-08-21 Thread Carter (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105407#comment-14105407
 ] 

Carter commented on HBASE-11679:


Enis, if you want, I'm happy to start work onTable interface as you've 
described it in HBASE-10602.

 Replace HTable with HTableInterface where backwards-compatible
 --

 Key: HBASE-11679
 URL: https://issues.apache.org/jira/browse/HBASE-11679
 Project: HBase
  Issue Type: Improvement
Reporter: Carter
Assignee: Carter
 Attachments: HBASE_11679.patch, HBASE_11679.patch, 
 HBASE_11679_v3.patch


 This is a refactor to move more of the code towards using interfaces for 
 proper encapsulation of logic.
 The amount of code touched is large, but it should be fairly easy to review.  
 It changes variable declarations from HTable to HTableInterface where the 
 following holds:
 # The declaration being updated won't break assignment
 # The declaration change does not break the compile (eg trying to access 
 non-interface methods)
 The two main situations are to change something like this:
 {code}
 HTable h = new HTable(c, tn);
 {code}
 to
 {code}
 HTableInterface h = new HTable(c, tn);
 {code}
 and this:
 {code}
 public void doSomething(HTable h) { ... }
 {code}
 to this:
 {code}
 public void doSomething(HTableInterface h) { ... }
 {code}
 This gets most of the obvious cases out of the way and prepares for more 
 complicated interface refactors in the future.  In method signatures, I 
 changed parameters, but did _not_ change any public or protected method 
 return values, since that would violate criteria #1 above and break 
 compatibility.



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


[jira] [Commented] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread Ted Yu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105428#comment-14105428
 ] 

Ted Yu commented on HBASE-11591:


Minor:
{code}
-return !hasMVCCInfo ? true : skipKVsNewerThanReadpoint();
+if (!hasMVCCInfo  this.reader.isBulkLoaded()) {
+  return skipKVsNewerThanReadpoint();
+} else {
+  return !hasMVCCInfo ? true : skipKVsNewerThanReadpoint();
{code}
The if condition above would be more readable if written this way:
{code}
+if (hasMVCCInfo || this.reader.isBulkLoaded()) {
{code}

 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, HBASE-11591_5.patch, 
 TestBulkload.java, hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 public int compare(KeyValueScanner left, KeyValueScanner right) {
   int comparison = compare(left.peek(), right.peek());
   if (comparison != 0) {
 return comparison;
   } else {
 // Since both the keys are exactly the same, we break the tie in favor
 // of the key which came latest.
 long leftSequenceID = left.getSequenceID();
 long rightSequenceID = right.getSequenceID();
 if (leftSequenceID  rightSequenceID) {
   return -1;
 } else if (leftSequenceID  rightSequenceID) {
   return 1;
 } else {
   return 0;
 }
   }
 }
 {code}
 Here  in 0.96 case the mvcc of the cell in both the files will have 0 and so 
 the comparison will happen from the else condition .  Where the seq id of the 
 bulk loaded file is greater and would sort out first ensuring that the scan 
 happens from that bulk loaded file.
 In case of 0.98+ as we are retaining the mvcc+seqid we are not making the 
 mvcc as 0 (remains a non zero positive value).  Hence the compare() sorts out 
 the cell in the flushed/compacted file.  Which means though we know the 
 lateset file is the bulk loaded file we don't scan the data.
 Seems to be a behaviour change.  Will check on other corner cases also but we 
 are trying to know the behaviour of bulk load because we are evaluating if it 
 can be used for MOB design.



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


[jira] [Commented] (HBASE-10602) Cleanup HTable public interface

2014-08-21 Thread Carter (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-10602?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105437#comment-14105437
 ] 

Carter commented on HBASE-10602:


Wouldn't you want the async call to be the new signature, so it doesn't break 
backwards compatibility?  I guess it doesn't matter with put, but for 
instance checkAndPut and other non-void methods:

{code}
public boolean checkAndPut(byte[], byte[], byte[], byte[], Put); 
public FutureBoolean asyncCheckAndPut(byte[], byte[], byte[], byte[], Put); 
{code}

This also means that you can grow/evolve the Table interface rather than 
figuring out the future/async version in the first iteration.

Last point, following on Nick's assertion about object creation (where does the 
~100k objects # come from btw?), you may not want to default the user to an 
async call creates more garbage collection in the client, rather let them 
decide if they need it.


 Cleanup HTable public interface
 ---

 Key: HBASE-10602
 URL: https://issues.apache.org/jira/browse/HBASE-10602
 Project: HBase
  Issue Type: Improvement
  Components: Client, Usability
Reporter: Nick Dimiduk
Assignee: Enis Soztutar
Priority: Blocker
 Fix For: 0.99.0

 Attachments: hbase-10602_v1.patch


 HBASE-6580 replaced the preferred means of HTableInterface acquisition to the 
 HConnection#getTable factory methods. HBASE-9117 removes the HConnection 
 cache, placing the burden of responsible connection cleanup on whomever 
 acquires it.
 The remaining HTable constructors use a Connection instance and manage their 
 own HConnection on the callers behalf. This is convenient but also a 
 surprising source of poor performance for anyone accustomed to the previous 
 connection caching behavior. I propose deprecating those remaining 
 constructors for 0.98/0.96 and removing them for 1.0.
 While I'm at it, I suggest we pursue some API hygiene in general and convert 
 HTable into an interface. I'm sure there are method overloads for accepting 
 String/byte[]/TableName where just TableName is sufficient. Can that be done 
 for 1.0 as well?



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


[jira] [Commented] (HBASE-4955) Use the official versions of surefire junit

2014-08-21 Thread Hudson (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105518#comment-14105518
 ] 

Hudson commented on HBASE-4955:
---

FAILURE: Integrated in HBase-TRUNK #5417 (See 
[https://builds.apache.org/job/HBase-TRUNK/5417/])
HBASE-4955 Use the official versions of surefire (Alex Newman) (nkeywal: rev 
018bbc09931d45afa349a76fcc72283013e1d3a2)
* hbase-server/src/test/java/org/apache/hadoop/hbase/http/TestServletFilter.java
* pom.xml


 Use the official versions of surefire  junit
 -

 Key: HBASE-4955
 URL: https://issues.apache.org/jira/browse/HBASE-4955
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.0, 0.98.0, 0.96.0, 0.99.0
 Environment: all
Reporter: Nicolas Liochon
Assignee: Alex Newman
Priority: Critical
 Fix For: 2.0.0

 Attachments: 4955.v1.patch, 4955.v2.patch, 4955.v2.patch, 
 4955.v2.patch, 4955.v2.patch, 4955.v3.patch, 4955.v3.patch, 4955.v3.patch, 
 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 
 4955.v4.patch, 4955.v5.patch, 4955.v6.patch, 4955.v7.patch, 4955.v7.patch, 
 4955.v8.patch, 4955.v9.patch, 8204.v4.patch, HBASE-4955-v10.patch, 
 HBASE-4955-v10.patch, HBASE-4955-v10.patch


 We currently use private versions for Surefire  JUnit since HBASE-4763.
 This JIRA traks what we need to move to official versions.
 Surefire 2.11 is just out, but, after some tests, it does not contain all 
 what we need.
 JUnit. Could be for JUnit 4.11. Issue to monitor:
 https://github.com/KentBeck/junit/issues/359: fixed in our version, no 
 feedback for an integration on trunk
 Surefire: Could be for Surefire 2.12. Issues to monitor are:
 329 (category support): fixed, we use the official implementation from the 
 trunk
 786 (@Category with forkMode=always): fixed, we use the official 
 implementation from the trunk
 791 (incorrect elapsed time on test failure): fixed, we use the official 
 implementation from the trunk
 793 (incorrect time in the XML report): Not fixed (reopen) on trunk, fixed on 
 our version.
 760 (does not take into account the test method): fixed in trunk, not fixed 
 in our version
 798 (print immediately the test class name): not fixed in trunk, not fixed in 
 our version
 799 (Allow test parallelization when forkMode=always): not fixed in trunk, 
 not fixed in our version
 800 (redirectTestOutputToFile not taken into account): not yet fix on trunk, 
 fixed on our version
 800  793 are the more important to monitor, it's the only ones that are 
 fixed in our version but not on trunk.



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


[jira] [Updated] (HBASE-11760) Tighten up region state transition

2014-08-21 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-11760:


Status: Open  (was: Patch Available)

 Tighten up region state transition
 --

 Key: HBASE-11760
 URL: https://issues.apache.org/jira/browse/HBASE-11760
 Project: HBase
  Issue Type: Improvement
  Components: Region Assignment
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Fix For: 2.0.0

 Attachments: hbase-11760.patch


 When a regionserver reports to master a region transition, we should check 
 the current region state to be exactly what we expect.



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


[jira] [Commented] (HBASE-11772) Bulk load mvcc and seqId issues with native hfiles

2014-08-21 Thread Jerry He (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105591#comment-14105591
 ] 

Jerry He commented on HBASE-11772:
--

The work being done at HBASE-11591 will be good for this JIRA as well for 0.99+ 
branches!  I will work on top of that to avoid conflicts.
For what is being done there please refer to HBASE-11591's latest patches.

 Bulk load mvcc and seqId issues with native hfiles
 --

 Key: HBASE-11772
 URL: https://issues.apache.org/jira/browse/HBASE-11772
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.98.5
Reporter: Jerry He
Assignee: Jerry He
Priority: Critical
 Fix For: 0.98.6

 Attachments: HBASE-11772-0.98.patch


 There are mvcc and seqId issues when bulk load native hfiles -- meaning 
 hfiles that are direct file copy-out from hbase, not from HFileOutputFormat 
 job.
 There are differences between these two types of hfiles.
 Native hfiles have possible non-zero MAX_MEMSTORE_TS_KEY value and non-zero 
 mvcc values in cells. 
 Native hfiles also have MAX_SEQ_ID_KEY.
 Native hfiles do not have BULKLOAD_TIME_KEY.
 Here are a couple of problems I observed when bulk load native hfiles.
 1.  Cells in newly bulk loaded hfiles can be invisible to scan.
 It is easy to re-create.
 Bulk load a native hfile that has a larger mvcc value in cells, e.g 10
 If the current readpoint when initiating a scan is less than 10, the cells in 
 the new hfile are skipped, thus become invisible.
 We don't reset the readpoint of a region after bulk load.
 2. The current StoreFile.isBulkLoadResult() is implemented as:
 {code}
 return metadataMap.containsKey(BULKLOAD_TIME_KEY)
 {code}
 which does not detect bulkloaded native hfiles.
 3. Another observed problem is possible data loss during log recovery. 
 It is similar to HBASE-10958 reported by [~jdcryans]. Borrow the re-create 
 steps from HBASE-10958.
 1) Create an empty table
 2) Put one row in it (let's say it gets seqid 1)
 3) Bulk load one native hfile with large seqId ( e.g. 100). The native hfile 
 can be obtained by copying out from existing table.
 4) 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 100 makes us believe that 
 everything that came before it was flushed. 
 The problem 3 is probably related to 2. We will be ok if we get the appended 
 seqId during bulk load instead of 100 from inside the file.



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


[jira] [Commented] (HBASE-11764) Support per cell TTLs

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105609#comment-14105609
 ] 

Andrew Purtell commented on HBASE-11764:


bq. If we have to handle the case of per cell TTL  cf TTL, we have to track 
the per cell TTLs and write down this meta in HFile so that file level early 
out optimizations can be continued

I have more time to work on this. I will proceed a bit here and maybe put up a 
patch containing the additional changes needed for that, we can decide. 

Thanks for having a look. 

 Support per cell TTLs
 -

 Key: HBASE-11764
 URL: https://issues.apache.org/jira/browse/HBASE-11764
 Project: HBase
  Issue Type: Sub-task
Reporter: Andrew Purtell
Assignee: Andrew Purtell
 Fix For: 0.99.0, 0.98.6

 Attachments: HBASE-11764.patch, HBASE-11764.patch






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


[jira] [Created] (HBASE-11795) Add TTL unit tests

2014-08-21 Thread Andrew Purtell (JIRA)
Andrew Purtell created HBASE-11795:
--

 Summary: Add TTL unit tests
 Key: HBASE-11795
 URL: https://issues.apache.org/jira/browse/HBASE-11795
 Project: HBase
  Issue Type: Sub-task
Reporter: Andrew Purtell
Assignee: Andrew Purtell
 Fix For: 0.99.0, 2.0.0, 0.98.6


Our coverage of TTLs in unit tests is scant. 



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


[jira] [Updated] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Nick Dimiduk (JIRA)

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

Nick Dimiduk updated HBASE-11331:
-

Attachment: v03-20g-045g-true.pdf
v03-20g-045g-false.pdf

Sharing some more test results. These are running PerfEval randomRead test on a 
single machine cluster deployment. The RS gets a 20g heap out of 24g available 
on the box. Table is snappy compressed. The idea is to demonstrate a best-case 
scenario for this patch: you have enough ram for the whole compressed data set, 
but not after decompressed. The {{true}} run below shows some IO wait, so I may 
have the math on the compression ratio slightly off.

Values in this table come from the average values reported on the attached 
screen shots. I've chosen some of the more critical metrics, but it's all there 
for reference. Let me know if there's a metric I'm missing, I can add it to the 
report (if OpenTSDB collects it, that is).

|| 
||hbase.block.data.cachecompressed=false||hbase.block.data.cachecompressed=true||delta|

 
|hbase.regionserver.server.Get_num_ops|423|4.93k|{color:green}1065%{color}| 

  
|hbase.regionserver.server.Get_mean|19.14 ms|1.00 ms|{color:green}-94%{color}|  

  
|hbase.regionserver.server.Get_99th_percentile|182.58 ms|33.17 
ms|{color:green}-81%{color}|
   
|hbase.regionserver.jvmmetrics.GcTimeMillis|27.73 ms|401.16 
ms|{color:red}1346%{color}| 
  
|proc.loadavg.1min|11.55|7.82|{color:green}-32%{color}| 

  
|proc.stat.cpu.percpu{type=iowait}|358.43|211.83|{color:green}-40%{color}|  

  
|hbase.regionserver.server.blockCacheCount|181.66k|722.55k|{color:green}297%{color}|

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Commented] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Nick Dimiduk (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105622#comment-14105622
 ] 

Nick Dimiduk commented on HBASE-11331:
--

I'm now investigating those heart-beat looking GC spikes in the compressed=true 
graphs.

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Commented] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Nick Dimiduk (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105617#comment-14105617
 ] 

Nick Dimiduk commented on HBASE-11331:
--

Previous comment is re: v03-20g-045g-false.pdf, v03-20g-045g-true.pdf

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105625#comment-14105625
 ] 

Andrew Purtell commented on HBASE-11788:


[~cristian_armaselu], please have a look at the attached unit test. The 
supported way to create 'custom' delete markers is the commented out section 
just before the final query:
{code}
  // Uncomment this line to get the test to pass
  // table.delete(new Delete(rowKey).addDeleteMarker(marker));
{code}

Can you point us to where Hive or other code is doing it differently? I think 
we'd like to talk with the downstream project(s). 

What is the impact to you if we don't support deletes-in-puts in the HBase API? 
I.e. would you be able to patch the downstream client or successfully request 
your vendor do so? 


 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to hbase



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


[jira] [Commented] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Vladimir Rodionov (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105635#comment-14105635
 ] 

Vladimir Rodionov commented on HBASE-11331:
---

The standard YCSB is very friendly to compressed block cache (especially, with 
zipfian data access pattern). Just to let you know, Nick. 

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Commented] (HBASE-4955) Use the official versions of surefire junit

2014-08-21 Thread Alex Newman (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-4955?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105638#comment-14105638
 ] 

Alex Newman commented on HBASE-4955:


I am going to take a look at the zombie test, and see if i can make it better.

 Use the official versions of surefire  junit
 -

 Key: HBASE-4955
 URL: https://issues.apache.org/jira/browse/HBASE-4955
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.0, 0.98.0, 0.96.0, 0.99.0
 Environment: all
Reporter: Nicolas Liochon
Assignee: Alex Newman
Priority: Critical
 Fix For: 2.0.0

 Attachments: 4955.v1.patch, 4955.v2.patch, 4955.v2.patch, 
 4955.v2.patch, 4955.v2.patch, 4955.v3.patch, 4955.v3.patch, 4955.v3.patch, 
 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 4955.v4.patch, 
 4955.v4.patch, 4955.v5.patch, 4955.v6.patch, 4955.v7.patch, 4955.v7.patch, 
 4955.v8.patch, 4955.v9.patch, 8204.v4.patch, HBASE-4955-v10.patch, 
 HBASE-4955-v10.patch, HBASE-4955-v10.patch


 We currently use private versions for Surefire  JUnit since HBASE-4763.
 This JIRA traks what we need to move to official versions.
 Surefire 2.11 is just out, but, after some tests, it does not contain all 
 what we need.
 JUnit. Could be for JUnit 4.11. Issue to monitor:
 https://github.com/KentBeck/junit/issues/359: fixed in our version, no 
 feedback for an integration on trunk
 Surefire: Could be for Surefire 2.12. Issues to monitor are:
 329 (category support): fixed, we use the official implementation from the 
 trunk
 786 (@Category with forkMode=always): fixed, we use the official 
 implementation from the trunk
 791 (incorrect elapsed time on test failure): fixed, we use the official 
 implementation from the trunk
 793 (incorrect time in the XML report): Not fixed (reopen) on trunk, fixed on 
 our version.
 760 (does not take into account the test method): fixed in trunk, not fixed 
 in our version
 798 (print immediately the test class name): not fixed in trunk, not fixed in 
 our version
 799 (Allow test parallelization when forkMode=always): not fixed in trunk, 
 not fixed in our version
 800 (redirectTestOutputToFile not taken into account): not yet fix on trunk, 
 fixed on our version
 800  793 are the more important to monitor, it's the only ones that are 
 fixed in our version but not on trunk.



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


[jira] [Updated] (HBASE-8298) desc tablename shorthand for describe tablename, similar to how databases have

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-8298:
---

Attachment: HBASE-8298-v3.patch

Attaching alternate implementation that adds a general approach to aliasing 
commands (something we can reuse when maintaining deprecated command names).

 desc tablename shorthand for describe tablename, similar to how databases 
 have
 --

 Key: HBASE-8298
 URL: https://issues.apache.org/jira/browse/HBASE-8298
 Project: HBase
  Issue Type: Improvement
  Components: shell
Affects Versions: 0.94.2
Reporter: Hari Sekhon
Assignee: Sean Busbey
Priority: Trivial
 Attachments: HBASE-8298-v3.patch, desc.patch, desc2.patch


 It would be nice if you could type
 desc tablename
 in hbase shell as shorthand for
 describe tablename
 similar to how you can in traditional databases.



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


[jira] [Updated] (HBASE-8298) desc tablename shorthand for describe tablename, similar to how databases have

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-8298:
---

Status: Patch Available  (was: Reopened)

 desc tablename shorthand for describe tablename, similar to how databases 
 have
 --

 Key: HBASE-8298
 URL: https://issues.apache.org/jira/browse/HBASE-8298
 Project: HBase
  Issue Type: Improvement
  Components: shell
Affects Versions: 0.94.2
Reporter: Hari Sekhon
Assignee: Sean Busbey
Priority: Trivial
 Attachments: HBASE-8298-v3.patch, desc.patch, desc2.patch


 It would be nice if you could type
 desc tablename
 in hbase shell as shorthand for
 describe tablename
 similar to how you can in traditional databases.



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


[jira] [Commented] (HBASE-8298) desc tablename shorthand for describe tablename, similar to how databases have

2014-08-21 Thread Sean Busbey (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105651#comment-14105651
 ] 

Sean Busbey commented on HBASE-8298:


Leaves describing aliases to the original command, on the presumption that in 
some cases we won't want to call attention to them.

Tested by spinning up single node, trying both 'describe' and 'desc' on a table 
I created.

Ran through help, help 'ddl', help 'describe', and help 'desc'. Make sure 
desc didn't show up, save in the description of the describe command, but 
help 'desc' still worked.

 desc tablename shorthand for describe tablename, similar to how databases 
 have
 --

 Key: HBASE-8298
 URL: https://issues.apache.org/jira/browse/HBASE-8298
 Project: HBase
  Issue Type: Improvement
  Components: shell
Affects Versions: 0.94.2
Reporter: Hari Sekhon
Assignee: Sean Busbey
Priority: Trivial
 Attachments: HBASE-8298-v3.patch, desc.patch, desc2.patch


 It would be nice if you could type
 desc tablename
 in hbase shell as shorthand for
 describe tablename
 similar to how you can in traditional databases.



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


[jira] [Commented] (HBASE-11729) Document HFile v3

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11729?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105656#comment-14105656
 ] 

Andrew Purtell commented on HBASE-11729:


I think we can ignore Jenkins in lieu of cut-and-paste of a successful 
conclusion of a local 'mvn site'.

 Document HFile v3
 -

 Key: HBASE-11729
 URL: https://issues.apache.org/jira/browse/HBASE-11729
 Project: HBase
  Issue Type: Task
  Components: documentation, HFile
Affects Versions: 0.98.0
Reporter: Sean Busbey
Assignee: Sean Busbey
Priority: Trivial
  Labels: beginner
 Attachments: HBASE-11729-v2.patch, HBASE-11729-v2.pdf, 
 HBASE-11729.patch, HBASE-11729.pdf


 0.98 added HFile v3. There are a couple of mentions of it in the book on the 
 sections on cell tags, but there isn't an actual overview or design 
 explanation like there is for [HFile 
 v2|http://hbase.apache.org/book/hfilev2.html].



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


[jira] [Commented] (HBASE-11591) Scanner fails to retrieve KV from bulk loaded file with highest sequence id than the cell's mvcc in a non-bulk loaded file

2014-08-21 Thread Jeffrey Zhong (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105659#comment-14105659
 ] 

Jeffrey Zhong commented on HBASE-11591:
---

[~ram_krish] {quote}
I think the change in HRegion.java to set the write Sequence number is a bug 
fix? I still feel the patch would cause issue in the following scenario after 
the above changes
- Assume a scan started and the read point is 20 at that time
- Bulk load is just getting completed and the scanner heap gets reset. The new 
bulk loaded file with seqId 22 (for eg) gets added now to the scanner heap. But 
remember that the read point is still 20.
- After this change we would just set the bulk load file's seqId to all its 
KVs which is 22. 
- Because there is no mvcc info in this bulk loaded file the scan would not be 
able to skipTheKvsWithNewerReadPt() and hence the scan would still see the Kvs 
with 22 as the seqId though the intention is to see only KVs with seqID 20.
I may be wrong. Am I missing something here? I may be wrong because for bulk 
loaded files because there is no mvcc we are allowed to read anything in that 
irrespective of the read pt?
{quote}
The situation above is valid. While existing behavior(like 0.98), we allow a 
scan with lower readpt to read a bulk loaded file immediately as we can load a 
hfile atomically. I think it's fine either keeping existing behavior or add 
handling for such cases. Another option to handle such case you can set 
hasMVCCInfo to true for a bulk loaded file because we will set its KVs' mvcc 
using Hfile seqId.


[~jerryhe] {quote}It can be used backup HBase data and restore.{quote}
For such case, trunk code can handle it but you need to keep deleted cells  
mvcc forever(using config hbase.hstore.compaction.keep.mvcc.period). When you 
load a old hfile, its KVs will be sorted correctly based on their mvcc 
values(LogSeqId).
  


 Scanner fails to retrieve KV  from bulk loaded file with highest sequence id 
 than the cell's mvcc in a non-bulk loaded file
 ---

 Key: HBASE-11591
 URL: https://issues.apache.org/jira/browse/HBASE-11591
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.99.0

 Attachments: HBASE-11591.patch, HBASE-11591_1.patch, 
 HBASE-11591_2.patch, HBASE-11591_3.patch, HBASE-11591_5.patch, 
 TestBulkload.java, hbase-11591-03-02.patch, hbase-11591-03-jeff.patch


 See discussion in HBASE-11339.
 When we have a case where there are same KVs in two files one produced by 
 flush/compaction and the other thro the bulk load.
 Both the files have some same kvs which matches even in timestamp.
 Steps:
 Add some rows with a specific timestamp and flush the same.  
 Bulk load a file with the same data.. Enusre that assign seqnum property is 
 set.
 The bulk load should use HFileOutputFormat2 (or ensure that we write the 
 bulk_time_output key).
 This would ensure that the bulk loaded file has the highest seq num.
 Assume the cell in the flushed/compacted store file is 
 row1,cf,cq,ts1, value1  and the cell in the bulk loaded file is
 row1,cf,cq,ts1,value2 
 (There are no parallel scans).
 Issue a scan on the table in 0.96. The retrieved value is 
 row1,cf1,cq,ts1,value2
 But the same in 0.98 will retrieve row1,cf1,cq,ts2,value1. 
 This is a behaviour change.  This is because of this code 
 {code}
 public int compare(KeyValueScanner left, KeyValueScanner right) {
   int comparison = compare(left.peek(), right.peek());
   if (comparison != 0) {
 return comparison;
   } else {
 // Since both the keys are exactly the same, we break the tie in favor
 // of the key which came latest.
 long leftSequenceID = left.getSequenceID();
 long rightSequenceID = right.getSequenceID();
 if (leftSequenceID  rightSequenceID) {
   return -1;
 } else if (leftSequenceID  rightSequenceID) {
   return 1;
 } else {
   return 0;
 }
   }
 }
 {code}
 Here  in 0.96 case the mvcc of the cell in both the files will have 0 and so 
 the comparison will happen from the else condition .  Where the seq id of the 
 bulk loaded file is greater and would sort out first ensuring that the scan 
 happens from that bulk loaded file.
 In case of 0.98+ as we are retaining the mvcc+seqid we are not making the 
 mvcc as 0 (remains a non zero positive value).  Hence the compare() sorts out 
 the cell in the flushed/compacted file.  Which means though we know the 
 lateset file is the bulk loaded file we don't scan the data.
 Seems to be a behaviour change.  Will check on other corner cases 

[jira] [Commented] (HBASE-11763) Move TTL handling into ScanQueryMatcher

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105660#comment-14105660
 ] 

Andrew Purtell commented on HBASE-11763:


bq. I cannot remember the JIRA now, but there were some cases where users used 
filters with multi versions and the general doubt they had was whether the 
versions check happen first or the filter gets applied.

That was us. :-) HBASE-10854 . The unit tests from that change still work after 
the change here. 

 Move TTL handling into ScanQueryMatcher
 ---

 Key: HBASE-11763
 URL: https://issues.apache.org/jira/browse/HBASE-11763
 Project: HBase
  Issue Type: Sub-task
Reporter: Andrew Purtell
Assignee: Andrew Purtell
 Fix For: 0.99.0, 2.0.0, 0.98.6

 Attachments: HBASE-11763.patch, HBASE-11763.patch






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


[jira] [Commented] (HBASE-11679) Replace HTable with HTableInterface where backwards-compatible

2014-08-21 Thread Enis Soztutar (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105696#comment-14105696
 ] 

Enis Soztutar commented on HBASE-11679:
---

That would be awesome, I have my hands full on other stuff right now. 

 Replace HTable with HTableInterface where backwards-compatible
 --

 Key: HBASE-11679
 URL: https://issues.apache.org/jira/browse/HBASE-11679
 Project: HBase
  Issue Type: Improvement
Reporter: Carter
Assignee: Carter
 Attachments: HBASE_11679.patch, HBASE_11679.patch, 
 HBASE_11679_v3.patch


 This is a refactor to move more of the code towards using interfaces for 
 proper encapsulation of logic.
 The amount of code touched is large, but it should be fairly easy to review.  
 It changes variable declarations from HTable to HTableInterface where the 
 following holds:
 # The declaration being updated won't break assignment
 # The declaration change does not break the compile (eg trying to access 
 non-interface methods)
 The two main situations are to change something like this:
 {code}
 HTable h = new HTable(c, tn);
 {code}
 to
 {code}
 HTableInterface h = new HTable(c, tn);
 {code}
 and this:
 {code}
 public void doSomething(HTable h) { ... }
 {code}
 to this:
 {code}
 public void doSomething(HTableInterface h) { ... }
 {code}
 This gets most of the obvious cases out of the way and prepares for more 
 complicated interface refactors in the future.  In method signatures, I 
 changed parameters, but did _not_ change any public or protected method 
 return values, since that would violate criteria #1 above and break 
 compatibility.



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


[jira] [Created] (HBASE-11796) Add client support for atomic checkAndMutate

2014-08-21 Thread Danny Purcell (JIRA)
Danny Purcell created HBASE-11796:
-

 Summary: Add client support for atomic checkAndMutate
 Key: HBASE-11796
 URL: https://issues.apache.org/jira/browse/HBASE-11796
 Project: HBase
  Issue Type: Improvement
  Components: Client
Reporter: Danny Purcell


Currently HBase has support for atomic checkAndPut as well as checkAndDelete 
operations on individual rows. 
HBase also supports the atomic submission of multiple operations through 
mutateRow. 
It would be nice to support atomic checkAndMutate(RowMutations) as well. 




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


[jira] [Created] (HBASE-11797) Create Table interface to replace HTableInterface

2014-08-21 Thread Carter (JIRA)
Carter created HBASE-11797:
--

 Summary: Create Table interface to replace HTableInterface
 Key: HBASE-11797
 URL: https://issues.apache.org/jira/browse/HBASE-11797
 Project: HBase
  Issue Type: Bug
Reporter: Carter






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


[jira] [Commented] (HBASE-11679) Replace HTable with HTableInterface where backwards-compatible

2014-08-21 Thread Carter (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11679?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105714#comment-14105714
 ] 

Carter commented on HBASE-11679:


Created HBASE-11797 and starting discussion over there.

 Replace HTable with HTableInterface where backwards-compatible
 --

 Key: HBASE-11679
 URL: https://issues.apache.org/jira/browse/HBASE-11679
 Project: HBase
  Issue Type: Improvement
Reporter: Carter
Assignee: Carter
 Attachments: HBASE_11679.patch, HBASE_11679.patch, 
 HBASE_11679_v3.patch


 This is a refactor to move more of the code towards using interfaces for 
 proper encapsulation of logic.
 The amount of code touched is large, but it should be fairly easy to review.  
 It changes variable declarations from HTable to HTableInterface where the 
 following holds:
 # The declaration being updated won't break assignment
 # The declaration change does not break the compile (eg trying to access 
 non-interface methods)
 The two main situations are to change something like this:
 {code}
 HTable h = new HTable(c, tn);
 {code}
 to
 {code}
 HTableInterface h = new HTable(c, tn);
 {code}
 and this:
 {code}
 public void doSomething(HTable h) { ... }
 {code}
 to this:
 {code}
 public void doSomething(HTableInterface h) { ... }
 {code}
 This gets most of the obvious cases out of the way and prepares for more 
 complicated interface refactors in the future.  In method signatures, I 
 changed parameters, but did _not_ change any public or protected method 
 return values, since that would violate criteria #1 above and break 
 compatibility.



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


[jira] [Commented] (HBASE-11797) Create Table interface to replace HTableInterface

2014-08-21 Thread Jean-Marc Spaggiari (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105723#comment-14105723
 ] 

Jean-Marc Spaggiari commented on HBASE-11797:
-

Hi [~carterpage],

Can  you please share more background on this?

Thanks.

 Create Table interface to replace HTableInterface
 -

 Key: HBASE-11797
 URL: https://issues.apache.org/jira/browse/HBASE-11797
 Project: HBase
  Issue Type: Bug
Reporter: Carter





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


[jira] [Assigned] (HBASE-11797) Create Table interface to replace HTableInterface

2014-08-21 Thread Carter (JIRA)

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

Carter reassigned HBASE-11797:
--

Assignee: Carter

 Create Table interface to replace HTableInterface
 -

 Key: HBASE-11797
 URL: https://issues.apache.org/jira/browse/HBASE-11797
 Project: HBase
  Issue Type: Bug
Reporter: Carter
Assignee: Carter

 Basically doing this:
 {code}
 interface Table {
   // get, put related stuff
 }
 @Deprecated
 interface HTableInterface extends Table {
   // users are encouraged to use the new Table interface
 }
 class HTable extends Table {
   // all HTable constructors are deprecated
   // Users are not encouraged to see this class
 }
 {code}
 I'm proposing that in this JIRA I move everything from HTableInterface to 
 Table except the following:
 * Anything deprecated
 * Anything @InterfaceAudience.Private ({{coprocessorService(...)}} and 
 {{batchCoprocessorService(...)}})



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


[jira] [Updated] (HBASE-11797) Create Table interface to replace HTableInterface

2014-08-21 Thread Carter (JIRA)

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

Carter updated HBASE-11797:
---

Description: 
Basically doing this:

{code}
interface Table {
  // get, put related stuff
}

@Deprecated
interface HTableInterface extends Table {
  // users are encouraged to use the new Table interface
}

class HTable extends Table {
  // all HTable constructors are deprecated
  // Users are not encouraged to see this class
}
{code}

I'm proposing that in this JIRA I move everything from HTableInterface to Table 
except the following:

* Anything deprecated
* Anything @InterfaceAudience.Private ({{coprocessorService(...)}} and 
{{batchCoprocessorService(...)}})


 Create Table interface to replace HTableInterface
 -

 Key: HBASE-11797
 URL: https://issues.apache.org/jira/browse/HBASE-11797
 Project: HBase
  Issue Type: Bug
Reporter: Carter

 Basically doing this:
 {code}
 interface Table {
   // get, put related stuff
 }
 @Deprecated
 interface HTableInterface extends Table {
   // users are encouraged to use the new Table interface
 }
 class HTable extends Table {
   // all HTable constructors are deprecated
   // Users are not encouraged to see this class
 }
 {code}
 I'm proposing that in this JIRA I move everything from HTableInterface to 
 Table except the following:
 * Anything deprecated
 * Anything @InterfaceAudience.Private ({{coprocessorService(...)}} and 
 {{batchCoprocessorService(...)}})



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


[jira] [Updated] (HBASE-11786) Document web UI for tracking time spent in coprocessors

2014-08-21 Thread Srikanth Srungarapu (JIRA)

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

Srikanth Srungarapu updated HBASE-11786:


Attachment: coprocessor_stats.png

[~misty] Attaching the screenshot. Let me know if this works.

 Document web UI for tracking time spent in coprocessors
 ---

 Key: HBASE-11786
 URL: https://issues.apache.org/jira/browse/HBASE-11786
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, documentation
Reporter: Misty Stanley-Jones
Assignee: Misty Stanley-Jones
Priority: Minor
 Attachments: HBASE-11786.patch, coprocessor_stats.png






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


[jira] [Commented] (HBASE-11797) Create Table interface to replace HTableInterface

2014-08-21 Thread Carter (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105741#comment-14105741
 ] 

Carter commented on HBASE-11797:


Description added that spells out my straw man.

 Create Table interface to replace HTableInterface
 -

 Key: HBASE-11797
 URL: https://issues.apache.org/jira/browse/HBASE-11797
 Project: HBase
  Issue Type: Bug
Reporter: Carter
Assignee: Carter

 Basically doing this:
 {code}
 interface Table {
   // get, put related stuff
 }
 @Deprecated
 interface HTableInterface extends Table {
   // users are encouraged to use the new Table interface
 }
 class HTable extends Table {
   // all HTable constructors are deprecated
   // Users are not encouraged to see this class
 }
 {code}
 I'm proposing that in this JIRA I move everything from HTableInterface to 
 Table except the following:
 * Anything deprecated
 * Anything @InterfaceAudience.Private ({{coprocessorService(...)}} and 
 {{batchCoprocessorService(...)}})



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


[jira] [Commented] (HBASE-11789) LoadIncrementalHFiles is not picking up the -D option

2014-08-21 Thread Ishan Chhabra (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105762#comment-14105762
 ] 

Ishan Chhabra commented on HBASE-11789:
---

Can you apply this to 0.96 and 0.94 head as well?

 LoadIncrementalHFiles is not picking up the -D option 
 --

 Key: HBASE-11789
 URL: https://issues.apache.org/jira/browse/HBASE-11789
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.98.5, 2.0.0
Reporter: Matteo Bertozzi
Assignee: Matteo Bertozzi
 Fix For: 0.99.0, 2.0.0, 0.98.6

 Attachments: HBASE-11789-v0.patch


 LoadIncrementalHFiles is not using the Tool class correctly, preventing to 
 use the -D options.



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


[jira] [Commented] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Hadoop QA (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-7767?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105758#comment-14105758
 ] 

Hadoop QA commented on HBASE-7767:
--

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

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

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

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

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

{color:red}-1 javadoc{color}.  The javadoc tool appears to have generated 
11 warning messages.

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

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

{color:red}-1 lineLengths{color}.  The patch introduces the following lines 
longer than 100:
+  \030\003 \001(\003\022\021\n\tis_shared\030\004 
\001(\010\022\017\n\007purpose\030\005 \001 +
+  public MasterProtos.GetTableStateResponse getTableState(RpcController 
controller, MasterProtos.GetTableStateRequest request) throws ServiceException {
+  public boolean setTableStateIfInStates(TableName tableName, TableState.State 
newState, TableState.State... states) throws IOException {
+  public boolean setTableStateIfNotInStates(TableName tableName, 
TableState.State newState, TableState.State... states) throws IOException {
+ !regionStates.isRegionInState(region, 
org.apache.hadoop.hbase.master.RegionState.State.FAILED_CLOSE)) {

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

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

 {color:red}-1 core zombie tests{color}.  There are 1 zombie test(s): 

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

This message is automatically generated.

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Created] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)
Alex Newman created HBASE-11798:
---

 Summary: TestBucketWriterThread can zombie test
 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman






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


[jira] [Commented] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105794#comment-14105794
 ] 

Alex Newman commented on HBASE-11798:
-

I noticed when trying to commit HBASE-4955 that TestBucketWriterThread can 
zombie in its setup function.

I also noticed
main prio=10 tid=0x7fa9e000a800 nid=0x571 waiting on condition 
[0x7fa9e6184000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.hadoop.hbase.util.Threads.sleep(Threads.java:143)
at 
org.apache.hadoop.hbase.io.hfile.bucket.TestBucketWriterThread.setUp(TestBucketWriterThread.java:78)

In the jstack at 
https://builds.apache.org/job/PreCommit-HBASE-Build/10511/console

Looking at the code

this.plainCacheable = Mockito.mock(Cacheable.class);
bc.cacheBlock(this.plainKey, plainCacheable);
while(!bc.ramCache.isEmpty()) Threads.sleep(1); - where we hang
assertTrue(q.isEmpty());
// Now writer thread should be disabled.

At first I was confused but then I realized that isn't Thread.sleep it is 
Threads.sleep
  /**
   * If interrupted, just prints out the interrupt on STDOUT, resets interrupt 
and returns
   * @param millis How long to sleep for in milliseconds.
   */
  public static void sleep(long millis) {
try {
  Thread.sleep(millis);
} catch (InterruptedException e) {
  e.printStackTrace();
  Thread.currentThread().interrupt();
}
  }


I don't know if we need this. I am curious if we can fix it with a different 
sleep command.

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman





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


[jira] [Commented] (HBASE-11789) LoadIncrementalHFiles is not picking up the -D option

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11789?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105793#comment-14105793
 ] 

Andrew Purtell commented on HBASE-11789:


bq. Can you apply this to 0.96 and 0.94 head as well?

0.96 is EOL I believe.

We could port back to 0.94. [~lhofhansl] ?

 LoadIncrementalHFiles is not picking up the -D option 
 --

 Key: HBASE-11789
 URL: https://issues.apache.org/jira/browse/HBASE-11789
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.98.5, 2.0.0
Reporter: Matteo Bertozzi
Assignee: Matteo Bertozzi
 Fix For: 0.99.0, 2.0.0, 0.98.6

 Attachments: HBASE-11789-v0.patch


 LoadIncrementalHFiles is not using the Tool class correctly, preventing to 
 use the -D options.



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


[jira] [Updated] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

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

Alex Newman updated HBASE-11798:


Status: Patch Available  (was: Open)

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman





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


[jira] [Work started] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

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

Work on HBASE-11798 started by Alex Newman.

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman





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


[jira] [Work stopped] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

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

Work on HBASE-11798 stopped by Alex Newman.

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman





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


[jira] [Updated] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

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

Alex Newman updated HBASE-11798:


Attachment: HBASE-11798-v1.patch

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman
 Attachments: HBASE-11798-v1.patch






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


[jira] [Updated] (HBASE-7782) HBaseTestingUtility.truncateTable() not acting like CLI

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-7782:
---

Attachment: HBASE-7782.patch

patch:

* preserves current behavior in deleteTableData method
* updates existing tests to use deleteTableData
* adds truncateTable methods that behave like the shell.

 HBaseTestingUtility.truncateTable() not acting like CLI
 ---

 Key: HBASE-7782
 URL: https://issues.apache.org/jira/browse/HBASE-7782
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.3
Reporter: Adrien Mogenet
Assignee: Sean Busbey
Priority: Minor
  Labels: cli, hbasetest, test
 Attachments: HBASE-7782.patch


 I would like to discuss the behavior of the truncateTable() method of 
 HBaseTestingUtility. It's currently only removing the data through a 
 scan/delete pattern.
 However, the truncate command in CLI is doing additional things: it disables 
 the tables, drop, creates (with similar column descriptors) and then enables 
 the table.
 I think the truncateTable() method is misleading; for example I used it to 
 force a coprocessor to be reloaded, but it did not. Of course I can disable 
 and enable the table by myself within my unit test, but perhaps it deserves 
 to be discussed?



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


[jira] [Commented] (HBASE-8298) desc tablename shorthand for describe tablename, similar to how databases have

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105802#comment-14105802
 ] 

Andrew Purtell commented on HBASE-8298:
---

+1, clean, nice

 desc tablename shorthand for describe tablename, similar to how databases 
 have
 --

 Key: HBASE-8298
 URL: https://issues.apache.org/jira/browse/HBASE-8298
 Project: HBase
  Issue Type: Improvement
  Components: shell
Affects Versions: 0.94.2
Reporter: Hari Sekhon
Assignee: Sean Busbey
Priority: Trivial
 Attachments: HBASE-8298-v3.patch, desc.patch, desc2.patch


 It would be nice if you could type
 desc tablename
 in hbase shell as shorthand for
 describe tablename
 similar to how you can in traditional databases.



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


[jira] [Commented] (HBASE-7782) HBaseTestingUtility.truncateTable() not acting like CLI

2014-08-21 Thread Matteo Bertozzi (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-7782?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105803#comment-14105803
 ] 

Matteo Bertozzi commented on HBASE-7782:


+1 looks good to me

 HBaseTestingUtility.truncateTable() not acting like CLI
 ---

 Key: HBASE-7782
 URL: https://issues.apache.org/jira/browse/HBASE-7782
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.3
Reporter: Adrien Mogenet
Assignee: Sean Busbey
Priority: Minor
  Labels: cli, hbasetest, test
 Attachments: HBASE-7782.patch


 I would like to discuss the behavior of the truncateTable() method of 
 HBaseTestingUtility. It's currently only removing the data through a 
 scan/delete pattern.
 However, the truncate command in CLI is doing additional things: it disables 
 the tables, drop, creates (with similar column descriptors) and then enables 
 the table.
 I think the truncateTable() method is misleading; for example I used it to 
 force a coprocessor to be reloaded, but it did not. Of course I can disable 
 and enable the table by myself within my unit test, but perhaps it deserves 
 to be discussed?



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


[jira] [Updated] (HBASE-7782) HBaseTestingUtility.truncateTable() not acting like CLI

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-7782:
---

Status: Patch Available  (was: Open)

 HBaseTestingUtility.truncateTable() not acting like CLI
 ---

 Key: HBASE-7782
 URL: https://issues.apache.org/jira/browse/HBASE-7782
 Project: HBase
  Issue Type: Improvement
  Components: test
Affects Versions: 0.94.3
Reporter: Adrien Mogenet
Assignee: Sean Busbey
Priority: Minor
  Labels: cli, hbasetest, test
 Attachments: HBASE-7782.patch


 I would like to discuss the behavior of the truncateTable() method of 
 HBaseTestingUtility. It's currently only removing the data through a 
 scan/delete pattern.
 However, the truncate command in CLI is doing additional things: it disables 
 the tables, drop, creates (with similar column descriptors) and then enables 
 the table.
 I think the truncateTable() method is misleading; for example I used it to 
 force a coprocessor to be reloaded, but it did not. Of course I can disable 
 and enable the table by myself within my unit test, but perhaps it deserves 
 to be discussed?



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


[jira] [Comment Edited] (HBASE-8298) desc tablename shorthand for describe tablename, similar to how databases have

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105802#comment-14105802
 ] 

Andrew Purtell edited comment on HBASE-8298 at 8/21/14 7:06 PM:


+1, clean, nice
Edit: Referring to v3 patch


was (Author: apurtell):
+1, clean, nice

 desc tablename shorthand for describe tablename, similar to how databases 
 have
 --

 Key: HBASE-8298
 URL: https://issues.apache.org/jira/browse/HBASE-8298
 Project: HBase
  Issue Type: Improvement
  Components: shell
Affects Versions: 0.94.2
Reporter: Hari Sekhon
Assignee: Sean Busbey
Priority: Trivial
 Attachments: HBASE-8298-v3.patch, desc.patch, desc2.patch


 It would be nice if you could type
 desc tablename
 in hbase shell as shorthand for
 describe tablename
 similar to how you can in traditional databases.



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


[jira] [Commented] (HBASE-8298) desc tablename shorthand for describe tablename, similar to how databases have

2014-08-21 Thread Nick Dimiduk (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-8298?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105810#comment-14105810
 ] 

Nick Dimiduk commented on HBASE-8298:
-

Hurray for aliasing! +1

 desc tablename shorthand for describe tablename, similar to how databases 
 have
 --

 Key: HBASE-8298
 URL: https://issues.apache.org/jira/browse/HBASE-8298
 Project: HBase
  Issue Type: Improvement
  Components: shell
Affects Versions: 0.94.2
Reporter: Hari Sekhon
Assignee: Sean Busbey
Priority: Trivial
 Attachments: HBASE-8298-v3.patch, desc.patch, desc2.patch


 It would be nice if you could type
 desc tablename
 in hbase shell as shorthand for
 describe tablename
 similar to how you can in traditional databases.



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


[jira] [Commented] (HBASE-11797) Create Table interface to replace HTableInterface

2014-08-21 Thread Carter (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11797?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105818#comment-14105818
 ] 

Carter commented on HBASE-11797:


Also, review the issue links, especially HBASE-10602 for full context.

 Create Table interface to replace HTableInterface
 -

 Key: HBASE-11797
 URL: https://issues.apache.org/jira/browse/HBASE-11797
 Project: HBase
  Issue Type: Bug
Reporter: Carter
Assignee: Carter

 Basically doing this:
 {code}
 interface Table {
   // get, put related stuff
 }
 @Deprecated
 interface HTableInterface extends Table {
   // users are encouraged to use the new Table interface
 }
 class HTable extends Table {
   // all HTable constructors are deprecated
   // Users are not encouraged to see this class
 }
 {code}
 I'm proposing that in this JIRA I move everything from HTableInterface to 
 Table except the following:
 * Anything deprecated
 * Anything @InterfaceAudience.Private ({{coprocessorService(...)}} and 
 {{batchCoprocessorService(...)}})



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


[jira] [Updated] (HBASE-9746) RegionServer can't start when replication tries to replicate to an unknown host

2014-08-21 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-9746:
-

Fix Version/s: 0.94.24
   0.98.7
   2.0.0
   0.99.0

 RegionServer can't start when replication tries to replicate to an unknown 
 host
 ---

 Key: HBASE-9746
 URL: https://issues.apache.org/jira/browse/HBASE-9746
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.12
Reporter: Lars Hofhansl
Priority: Minor
 Fix For: 0.99.0, 2.0.0, 0.98.7, 0.94.24


 Just ran into this:
 {code}
 13/10/11 00:37:02 [regionserver60020] WARN  zookeeper.ZKConfig(204): 
 java.net.UnknownHostException: old-host: Name or service not known
   at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
   at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
   at 
 java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
   at java.net.InetAddress.getAllByName0(InetAddress.java:1239)
   at java.net.InetAddress.getAllByName(InetAddress.java:1155)
   at java.net.InetAddress.getAllByName(InetAddress.java:1091)
   at java.net.InetAddress.getByName(InetAddress.java:1041)
   at 
 org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:201)
   at 
 org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:245)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:147)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:127)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.reloadZkWatcher(ReplicationPeer.java:170)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.init(ReplicationPeer.java:69)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.getPeer(ReplicationZookeeper.java:343)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectToPeer(ReplicationZookeeper.java:308)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectExistingPeers(ReplicationZookeeper.java:189)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.init(ReplicationZookeeper.java:156)
   at 
 org.apache.hadoop.hbase.replication.regionserver.Replication.initialize(Replication.java:89)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.newReplicationInstance(HRegionServer.java:3986)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.createNewReplicationInstance(HRegionServer.java:3955)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1412)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1096)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:749)
   at java.lang.Thread.run(Thread.java:722)
 13/10/11 00:37:02 [regionserver60020] ERROR zookeeper.ZKConfig(210): no valid 
 quorum servers found in zoo.cfg
 13/10/11 00:37:02 [regionserver60020] WARN  regionserver.HRegionServer(1108): 
 Exception in region server : 
 java.io.IOException: Unable to determine ZooKeeper ensemble
   at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:116)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:153)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:127)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.reloadZkWatcher(ReplicationPeer.java:170)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.init(ReplicationPeer.java:69)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.getPeer(ReplicationZookeeper.java:343)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectToPeer(ReplicationZookeeper.java:308)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectExistingPeers(ReplicationZookeeper.java:189)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.init(ReplicationZookeeper.java:156)
   at 
 org.apache.hadoop.hbase.replication.regionserver.Replication.initialize(Replication.java:89)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.newReplicationInstance(HRegionServer.java:3986)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.createNewReplicationInstance(HRegionServer.java:3955)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1412)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1096)
   at 
 

[jira] [Reopened] (HBASE-9746) RegionServer can't start when replication tries to replicate to an unknown host

2014-08-21 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl reopened HBASE-9746:
--


We've just seen this again. It's bad when HBase cannot come up due to missing 
DNS entries for a slave cluster.

 RegionServer can't start when replication tries to replicate to an unknown 
 host
 ---

 Key: HBASE-9746
 URL: https://issues.apache.org/jira/browse/HBASE-9746
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.12
Reporter: Lars Hofhansl
Priority: Minor
 Fix For: 0.99.0, 2.0.0, 0.98.7, 0.94.24


 Just ran into this:
 {code}
 13/10/11 00:37:02 [regionserver60020] WARN  zookeeper.ZKConfig(204): 
 java.net.UnknownHostException: old-host: Name or service not known
   at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
   at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
   at 
 java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
   at java.net.InetAddress.getAllByName0(InetAddress.java:1239)
   at java.net.InetAddress.getAllByName(InetAddress.java:1155)
   at java.net.InetAddress.getAllByName(InetAddress.java:1091)
   at java.net.InetAddress.getByName(InetAddress.java:1041)
   at 
 org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:201)
   at 
 org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:245)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:147)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:127)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.reloadZkWatcher(ReplicationPeer.java:170)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.init(ReplicationPeer.java:69)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.getPeer(ReplicationZookeeper.java:343)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectToPeer(ReplicationZookeeper.java:308)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectExistingPeers(ReplicationZookeeper.java:189)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.init(ReplicationZookeeper.java:156)
   at 
 org.apache.hadoop.hbase.replication.regionserver.Replication.initialize(Replication.java:89)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.newReplicationInstance(HRegionServer.java:3986)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.createNewReplicationInstance(HRegionServer.java:3955)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1412)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1096)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:749)
   at java.lang.Thread.run(Thread.java:722)
 13/10/11 00:37:02 [regionserver60020] ERROR zookeeper.ZKConfig(210): no valid 
 quorum servers found in zoo.cfg
 13/10/11 00:37:02 [regionserver60020] WARN  regionserver.HRegionServer(1108): 
 Exception in region server : 
 java.io.IOException: Unable to determine ZooKeeper ensemble
   at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:116)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:153)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:127)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.reloadZkWatcher(ReplicationPeer.java:170)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.init(ReplicationPeer.java:69)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.getPeer(ReplicationZookeeper.java:343)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectToPeer(ReplicationZookeeper.java:308)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectExistingPeers(ReplicationZookeeper.java:189)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.init(ReplicationZookeeper.java:156)
   at 
 org.apache.hadoop.hbase.replication.regionserver.Replication.initialize(Replication.java:89)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.newReplicationInstance(HRegionServer.java:3986)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.createNewReplicationInstance(HRegionServer.java:3955)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1412)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1096)
   at 
 

[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Cristian Armaselu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105839#comment-14105839
 ] 

Cristian Armaselu commented on HBASE-11788:
---

Consider 2 JVM executing the following on the same row key
JVM1
- (1) Put to update new columns, 
- (2) Delete to remove column X value (since incoming data is null for column 
X)

JVM2
- (1) Put to update new columns, 
- (2) Delete to remove column Y value (since incoming data is null for column 
X)

What happens if the hbase API requests are applied in this order (since 2 JVM, 
2 threads of execution)
JVM1 (1) Put
JVM2 (2) Delete
JVM1 dies
JVM2 (2) Delete
Or you can think of any other combination with 4 operations instead of 2

The data is corrupted, none of the 2 new records were applied, we don't have 
the previous record stored in hbase.
I cannot point in Hive where the issue is. I see the behavior in the queries 
executed against it.
We were using Put with DeleteColumn for null incoming cells and the is 
null/is not null operators in hive were running fine.
With the new Hbase 0.96.1.1 data is coming back from the query when it should 
not come back since the incoming column is null, but hbase decided to put an 
empty cell




 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to 

[jira] [Updated] (HBASE-11794) StripeStoreFlusher causes NullPointerException and Region down

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-11794:


Affects Version/s: 0.98.3
   0.98.4

Good find [~eomiks]!

Want to put together a patch to fix this? If not, I'll take care of it.

 StripeStoreFlusher causes NullPointerException and Region down
 --

 Key: HBASE-11794
 URL: https://issues.apache.org/jira/browse/HBASE-11794
 Project: HBase
  Issue Type: Bug
  Components: Compaction
Affects Versions: 0.98.3, 0.98.4, 0.98.5
Reporter: jeongmin kim
Priority: Critical

 StoreFlusher.flushSnapshot() mustn't return null value.
 But StripeStoreFlusher.flushSnapshot() does.
 It cause NullPointerException at 
 org.apache.hadoop.hbase.regionserver.HStore.flushCache(HStore.java:802)
 and this makes regions dead after exhaustive retries and no recovery 
 available from it.
 the code (StripeStoreFlusher:64) has to be changed 
 ===
 from
 ListPath result = null 
 to
  ListPath result = new ArrayListPath();
  ===
 to return a empty list not null value.
 



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


[jira] [Commented] (HBASE-9746) RegionServer can't start when replication tries to replicate to an unknown host

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105843#comment-14105843
 ] 

Andrew Purtell commented on HBASE-9746:
---

I think we should allow the source RS to come up, with continued attempts to 
start replication, and WARN level logging at each failed attempt. This means we 
need to deal with UnknownHostException and related exceptions. We could make 
the retry interval configurable. Using the WAL roll period as the default value 
for that could be a reasonable thing to do. 

 RegionServer can't start when replication tries to replicate to an unknown 
 host
 ---

 Key: HBASE-9746
 URL: https://issues.apache.org/jira/browse/HBASE-9746
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.94.12
Reporter: Lars Hofhansl
Priority: Minor
 Fix For: 0.99.0, 2.0.0, 0.98.7, 0.94.24


 Just ran into this:
 {code}
 13/10/11 00:37:02 [regionserver60020] WARN  zookeeper.ZKConfig(204): 
 java.net.UnknownHostException: old-host: Name or service not known
   at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
   at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:894)
   at 
 java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1286)
   at java.net.InetAddress.getAllByName0(InetAddress.java:1239)
   at java.net.InetAddress.getAllByName(InetAddress.java:1155)
   at java.net.InetAddress.getAllByName(InetAddress.java:1091)
   at java.net.InetAddress.getByName(InetAddress.java:1041)
   at 
 org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:201)
   at 
 org.apache.hadoop.hbase.zookeeper.ZKConfig.getZKQuorumServersString(ZKConfig.java:245)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:147)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:127)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.reloadZkWatcher(ReplicationPeer.java:170)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.init(ReplicationPeer.java:69)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.getPeer(ReplicationZookeeper.java:343)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectToPeer(ReplicationZookeeper.java:308)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectExistingPeers(ReplicationZookeeper.java:189)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.init(ReplicationZookeeper.java:156)
   at 
 org.apache.hadoop.hbase.replication.regionserver.Replication.initialize(Replication.java:89)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.newReplicationInstance(HRegionServer.java:3986)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.createNewReplicationInstance(HRegionServer.java:3955)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.setupWALAndReplication(HRegionServer.java:1412)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.handleReportForDutyResponse(HRegionServer.java:1096)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.run(HRegionServer.java:749)
   at java.lang.Thread.run(Thread.java:722)
 13/10/11 00:37:02 [regionserver60020] ERROR zookeeper.ZKConfig(210): no valid 
 quorum servers found in zoo.cfg
 13/10/11 00:37:02 [regionserver60020] WARN  regionserver.HRegionServer(1108): 
 Exception in region server : 
 java.io.IOException: Unable to determine ZooKeeper ensemble
   at org.apache.hadoop.hbase.zookeeper.ZKUtil.connect(ZKUtil.java:116)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:153)
   at 
 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher.init(ZooKeeperWatcher.java:127)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.reloadZkWatcher(ReplicationPeer.java:170)
   at 
 org.apache.hadoop.hbase.replication.ReplicationPeer.init(ReplicationPeer.java:69)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.getPeer(ReplicationZookeeper.java:343)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectToPeer(ReplicationZookeeper.java:308)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.connectExistingPeers(ReplicationZookeeper.java:189)
   at 
 org.apache.hadoop.hbase.replication.ReplicationZookeeper.init(ReplicationZookeeper.java:156)
   at 
 org.apache.hadoop.hbase.replication.regionserver.Replication.initialize(Replication.java:89)
   at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.newReplicationInstance(HRegionServer.java:3986)
   at 
 

[jira] [Updated] (HBASE-8541) implement flush-into-stripes in stripe compactions

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-8541:
---

Fix Version/s: 0.98.3

 implement flush-into-stripes in stripe compactions
 --

 Key: HBASE-8541
 URL: https://issues.apache.org/jira/browse/HBASE-8541
 Project: HBase
  Issue Type: Sub-task
Reporter: Sergey Shelukhin
Assignee: Sergey Shelukhin
 Fix For: 0.98.3

 Attachments: HBASE-8541-latest-with-dependencies.patch, 
 HBASE-8541-latest-with-dependencies.patch, 
 HBASE-8541-latest-with-dependencies.patch, 
 HBASE-8541-latest-with-dependencies.patch, HBASE-8541-v0.patch, 
 HBASE-8541-v1.patch, HBASE-8541-v2.patch, HBASE-8541-v3.patch, 
 HBASE-8541-v4.patch, HBASE-8541-v5.patch


 Flush will be able to flush into multiple files under this design, avoiding 
 L0 I/O amplification.
 I have the patch which is missing just one feature - support for concurrent 
 flushes and stripe changes. This can be done via extensive try-locking of 
 stripe changes and flushes, or advisory flags without blocking flushes, 
 dumping conflicting flushes into L0 in case of (very rare) collisions. For 
 file loading for the latter, a set-cover-like problem needs to be solved to 
 determine optimal stripes. That will also address Jimmy's concern of getting 
 rid of metadata, btw. However currently I don't have time for that. I plan to 
 attach the try-locking patch first, but this won't happen for a couple weeks 
 probably and should not block main reviews. Hopefully this will be added on 
 top of main reviews.



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


[jira] [Updated] (HBASE-8541) implement flush-into-stripes in stripe compactions

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-8541:
---

Fix Version/s: 2.0.0
   1.0.0

 implement flush-into-stripes in stripe compactions
 --

 Key: HBASE-8541
 URL: https://issues.apache.org/jira/browse/HBASE-8541
 Project: HBase
  Issue Type: Sub-task
Reporter: Sergey Shelukhin
Assignee: Sergey Shelukhin
 Fix For: 1.0.0, 0.98.3, 2.0.0

 Attachments: HBASE-8541-latest-with-dependencies.patch, 
 HBASE-8541-latest-with-dependencies.patch, 
 HBASE-8541-latest-with-dependencies.patch, 
 HBASE-8541-latest-with-dependencies.patch, HBASE-8541-v0.patch, 
 HBASE-8541-v1.patch, HBASE-8541-v2.patch, HBASE-8541-v3.patch, 
 HBASE-8541-v4.patch, HBASE-8541-v5.patch


 Flush will be able to flush into multiple files under this design, avoiding 
 L0 I/O amplification.
 I have the patch which is missing just one feature - support for concurrent 
 flushes and stripe changes. This can be done via extensive try-locking of 
 stripe changes and flushes, or advisory flags without blocking flushes, 
 dumping conflicting flushes into L0 in case of (very rare) collisions. For 
 file loading for the latter, a set-cover-like problem needs to be solved to 
 determine optimal stripes. That will also address Jimmy's concern of getting 
 rid of metadata, btw. However currently I don't have time for that. I plan to 
 attach the try-locking patch first, but this won't happen for a couple weeks 
 probably and should not block main reviews. Hopefully this will be added on 
 top of main reviews.



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


[jira] [Updated] (HBASE-2236) Upper bound of outstanding WALs can be overrun; take 2 (take 1 was hbase-2053)

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey updated HBASE-2236:
---

Component/s: wal
 regionserver

 Upper bound of outstanding WALs can be overrun; take 2 (take 1 was hbase-2053)
 --

 Key: HBASE-2236
 URL: https://issues.apache.org/jira/browse/HBASE-2236
 Project: HBase
  Issue Type: Bug
  Components: regionserver, wal
Reporter: stack
Priority: Critical
  Labels: moved_from_0_20_5

 So hbase-2053 is not aggressive enough.  WALs can still overwhelm the upper 
 limit on log count.  While the code added by HBASE-2053, when done, will 
 ensure we let go of the oldest WAL, to do it, we might have to flush many 
 regions.  E.g:
 {code}
 2010-02-15 14:20:29,351 INFO org.apache.hadoop.hbase.regionserver.HLog: Too 
 many hlogs: logs=45, maxlogs=32; forcing flush of 5 regions(s): 
 test1,193717,1266095474624, test1,194375,1266108228663, 
 test1,195690,1266095539377, test1,196348,1266095539377, 
 test1,197939,1266069173999
 {code}
 This takes time.  If we are taking on edits a furious rate, we might have 
 rolled the log again, meantime, maybe more than once.
 Also log rolls happen inline with a put/delete as soon as it hits the 64MB 
 (default) boundary whereas the necessary flushing is done in background by a 
 single thread and the memstore can overrun the (default) 64MB size.  Flushes 
 needed to release logs will be mixed in with natural flushes as memstores 
 fill.  Flushes may take longer than the writing of an HLog because they can 
 be larger.
 So, on an RS that is struggling the tendency would seem to be for a slight 
 rise in WALs.  Only if the RS gets a breather will the flusher catch up.
 If HBASE-2087 happens, then the count of WALs get a boost.
 Ideas to fix this for good would be :
 + Priority queue for queuing up flushes with those that are queued to free up 
 WALs having priority
 + Improve the HBASE-2053 code so that it will free more than just the last 
 WAL, maybe even queuing flushes so we clear all WALs such that we are back 
 under the maximum WALS threshold again.



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


[jira] [Updated] (HBASE-11789) LoadIncrementalHFiles is not picking up the -D option

2014-08-21 Thread deepankar (JIRA)

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

deepankar updated HBASE-11789:
--

Attachment: HBASE-11789-0.94.patch

Attaching the patch we used for our internal branch

 LoadIncrementalHFiles is not picking up the -D option 
 --

 Key: HBASE-11789
 URL: https://issues.apache.org/jira/browse/HBASE-11789
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.98.5, 2.0.0
Reporter: Matteo Bertozzi
Assignee: Matteo Bertozzi
 Fix For: 0.99.0, 2.0.0, 0.98.6

 Attachments: HBASE-11789-0.94.patch, HBASE-11789-v0.patch


 LoadIncrementalHFiles is not using the Tool class correctly, preventing to 
 use the -D options.



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


[jira] [Commented] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Nick Dimiduk (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105865#comment-14105865
 ] 

Nick Dimiduk commented on HBASE-11331:
--

[~vrodionov] I think PE has zipfian now too (or maybe that's just the value 
size?). I'll take a look at YCSB, thanks.

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Assigned] (HBASE-6189) Snappy build instructions are out of date

2014-08-21 Thread Sean Busbey (JIRA)

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

Sean Busbey reassigned HBASE-6189:
--

Assignee: Sean Busbey

 Snappy build instructions are out of date
 -

 Key: HBASE-6189
 URL: https://issues.apache.org/jira/browse/HBASE-6189
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.1, 0.94.0, 0.95.2
Reporter: Dave Revell
Assignee: Sean Busbey
Priority: Critical

 In the ref guide (http://hbase.apache.org/book.html#build.snappy), it says to 
 build snappy by passing -Dsnappy. Something's wrong here, because:
 1. this causes the build to fail because the hadoop-snappy tar artifact can't 
 be found by maven
 2. the snappy classes are already included in hadoop 1.0, so using the snappy 
 profile is unnecessary
 It would be great if someone who knows when/why to use the snappy profile 
 could fix the instructions (and fix the POM if necessary).



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


[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Andrew Purtell (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105878#comment-14105878
 ] 

Andrew Purtell commented on HBASE-11788:


bq. I cannot point in Hive where the issue is. I see the behavior in the 
queries executed against it.

Yes, that was my misunderstanding. I just saw in the related conversation on 
dev@ an indication it's your code using the HBase API directly that is bundling 
deletes with puts. 

bq. (since 2 JVM, 2 threads of execution)

Assemble a Put and a Delete into a 
[RowMutations|https://hbase.apache.org/apidocs/org/apache/hadoop/hbase/client/RowMutations.html]
 and each Put+Delete bundle (the RowMutations) from each JVM will operate 
atomically with respect to the other. 

 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to hbase



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


[jira] [Commented] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105877#comment-14105877
 ] 

Alex Newman commented on HBASE-11798:
-

Thinking about it, this test should sleep in a loop forever. Let's limit it to 
1000 tries. If it can't succeed then, we will be stuck with a slow or flakey 
test. I think that causes more hard then good.

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman
 Attachments: HBASE-11798-v1.patch






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


[jira] [Updated] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Nick Dimiduk (JIRA)

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

Nick Dimiduk updated HBASE-11331:
-

Attachment: v03-20g-045g-true-16h.pdf

re: v03-20g-045g-true-16h.pdf

I baked this patch overnight (16h + some warmup) with compress=true. Same 
--size=45. Things look stable.

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true-16h.pdf, v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Updated] (HBASE-11798) TestBucketWriterThread can zombie test

2014-08-21 Thread Alex Newman (JIRA)

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

Alex Newman updated HBASE-11798:


Attachment: HBASE-11798-v2.patch

 TestBucketWriterThread can zombie test
 --

 Key: HBASE-11798
 URL: https://issues.apache.org/jira/browse/HBASE-11798
 Project: HBase
  Issue Type: Bug
Reporter: Alex Newman
Assignee: Alex Newman
 Attachments: HBASE-11798-v1.patch, HBASE-11798-v2.patch






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


[jira] [Commented] (HBASE-11331) [blockcache] lazy block decompression

2014-08-21 Thread Nick Dimiduk (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11331?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105888#comment-14105888
 ] 

Nick Dimiduk commented on HBASE-11331:
--

Interesting that proc.loadavg.1min decreases even though we know there's more 
decompress operations happening and the gc activity increases. Maybe that 
measurement includes iowait?

 [blockcache] lazy block decompression
 -

 Key: HBASE-11331
 URL: https://issues.apache.org/jira/browse/HBASE-11331
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Nick Dimiduk
Assignee: Nick Dimiduk
 Attachments: HBASE-11331.00.patch, HBASE-11331.01.patch, 
 HBASE-11331.02.patch, HBASE-11331.03.patch, 
 HBASE-11331LazyBlockDecompressperfcompare.pdf, lazy-decompress.02.0.pdf, 
 lazy-decompress.02.1.json, lazy-decompress.02.1.pdf, v03-20g-045g-false.pdf, 
 v03-20g-045g-true-16h.pdf, v03-20g-045g-true.pdf


 Maintaining data in its compressed form in the block cache will greatly 
 increase our effective blockcache size and should show a meaning improvement 
 in cache hit rates in well designed applications. The idea here is to lazily 
 decompress/decrypt blocks when they're consumed, rather than as soon as 
 they're pulled off of disk.
 This is related to but less invasive than HBASE-8894.



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


[jira] [Commented] (HBASE-9529) Audit of hbase-client @InterfaceAudience.Public apis

2014-08-21 Thread Gary Helmling (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-9529?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105889#comment-14105889
 ] 

Gary Helmling commented on HBASE-9529:
--

Why were the {{HTableInterface.coprocessorService(...)}} methods marked as 
private as part of this?  They were explicitly written as part of the public 
API.

 Audit of hbase-client @InterfaceAudience.Public apis
 

 Key: HBASE-9529
 URL: https://issues.apache.org/jira/browse/HBASE-9529
 Project: HBase
  Issue Type: Sub-task
Reporter: Jonathan Hsieh
Assignee: Jonathan Hsieh
 Fix For: 0.98.0, 0.96.0

 Attachments: hbase-9529.patch, hbase-9529.v2.patch


 Similar to HBASE-9523, let's do an audit of the hbase-client public api.  
 This is easier to do now that the we can publish only the public api javadoc 
 http://hbase.apache.org/apidocs/  (notice it only has Public apis now!)



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


[jira] [Updated] (HBASE-11072) Abstract WAL splitting from ZK

2014-08-21 Thread Sergey Soldatov (JIRA)

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

Sergey Soldatov updated HBASE-11072:


Status: Open  (was: Patch Available)

 Abstract WAL splitting from ZK
 --

 Key: HBASE-11072
 URL: https://issues.apache.org/jira/browse/HBASE-11072
 Project: HBase
  Issue Type: Sub-task
  Components: Consensus, Zookeeper
Affects Versions: 0.99.0
Reporter: Mikhail Antonov
Assignee: Sergey Soldatov
 Attachments: HBASE-11072-1_v2.patch, HBASE-11072-1_v3.patch, 
 HBASE-11072-1_v4.patch, HBASE-11072-2_v2.patch, HBASE-11072-v1.patch, 
 HBASE-11072-v2.patch, HBASE-11072-v3.patch, HBASE-11072-v4.patch, 
 HBASE-11072-v5.patch, HBASE-11072-v6.patch, HBASE-11072-v7.patch, 
 HBASE-11072-v8.patch, HBASE-11072-v8.patch, HBASE-11072-v9.patch, 
 HBASE_11072-1.patch


 HM side:
  - SplitLogManager
 RS side:
  - SplitLogWorker
  - HLogSplitter and a few handler classes.
 This jira may need to be split further apart into smaller ones.



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


[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Cristian Armaselu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105891#comment-14105891
 ] 

Cristian Armaselu commented on HBASE-11788:
---

Yes but that will not work with Htable.checkAndPut


 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to hbase



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


[jira] [Updated] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Andrey Stepachev (JIRA)

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

Andrey Stepachev updated HBASE-7767:


Status: Open  (was: Patch Available)

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Updated] (HBASE-11072) Abstract WAL splitting from ZK

2014-08-21 Thread Sergey Soldatov (JIRA)

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

Sergey Soldatov updated HBASE-11072:


Status: Patch Available  (was: Open)

 Abstract WAL splitting from ZK
 --

 Key: HBASE-11072
 URL: https://issues.apache.org/jira/browse/HBASE-11072
 Project: HBase
  Issue Type: Sub-task
  Components: Consensus, Zookeeper
Affects Versions: 0.99.0
Reporter: Mikhail Antonov
Assignee: Sergey Soldatov
 Attachments: HBASE-11072-1_v2.patch, HBASE-11072-1_v3.patch, 
 HBASE-11072-1_v4.patch, HBASE-11072-2_v2.patch, HBASE-11072-v1.patch, 
 HBASE-11072-v10.patch, HBASE-11072-v2.patch, HBASE-11072-v3.patch, 
 HBASE-11072-v4.patch, HBASE-11072-v5.patch, HBASE-11072-v6.patch, 
 HBASE-11072-v7.patch, HBASE-11072-v8.patch, HBASE-11072-v8.patch, 
 HBASE-11072-v9.patch, HBASE_11072-1.patch


 HM side:
  - SplitLogManager
 RS side:
  - SplitLogWorker
  - HLogSplitter and a few handler classes.
 This jira may need to be split further apart into smaller ones.



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


[jira] [Updated] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Andrey Stepachev (JIRA)

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

Andrey Stepachev updated HBASE-7767:


Attachment: HBASE-7767.patch

fixing javadocs

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch, HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Updated] (HBASE-7767) Get rid of ZKTable, and table enable/disable state in ZK

2014-08-21 Thread Andrey Stepachev (JIRA)

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

Andrey Stepachev updated HBASE-7767:


Status: Patch Available  (was: Open)

 Get rid of ZKTable, and table enable/disable state in ZK 
 -

 Key: HBASE-7767
 URL: https://issues.apache.org/jira/browse/HBASE-7767
 Project: HBase
  Issue Type: Sub-task
  Components: Zookeeper
Affects Versions: 2.0.0
Reporter: Enis Soztutar
Assignee: Andrey Stepachev
 Attachments: HBASE-7767.patch, HBASE-7767.patch


 As discussed table state in zookeeper for enable/disable state breaks our 
 zookeeper contract. It is also very intrusive, used from the client side, 
 master and region servers. We should get rid of it. 



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


[jira] [Updated] (HBASE-11072) Abstract WAL splitting from ZK

2014-08-21 Thread Sergey Soldatov (JIRA)

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

Sergey Soldatov updated HBASE-11072:


Attachment: HBASE-11072-v10.patch

rebased + fixed comments

 Abstract WAL splitting from ZK
 --

 Key: HBASE-11072
 URL: https://issues.apache.org/jira/browse/HBASE-11072
 Project: HBase
  Issue Type: Sub-task
  Components: Consensus, Zookeeper
Affects Versions: 0.99.0
Reporter: Mikhail Antonov
Assignee: Sergey Soldatov
 Attachments: HBASE-11072-1_v2.patch, HBASE-11072-1_v3.patch, 
 HBASE-11072-1_v4.patch, HBASE-11072-2_v2.patch, HBASE-11072-v1.patch, 
 HBASE-11072-v10.patch, HBASE-11072-v2.patch, HBASE-11072-v3.patch, 
 HBASE-11072-v4.patch, HBASE-11072-v5.patch, HBASE-11072-v6.patch, 
 HBASE-11072-v7.patch, HBASE-11072-v8.patch, HBASE-11072-v8.patch, 
 HBASE-11072-v9.patch, HBASE_11072-1.patch


 HM side:
  - SplitLogManager
 RS side:
  - SplitLogWorker
  - HLogSplitter and a few handler classes.
 This jira may need to be split further apart into smaller ones.



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


[jira] [Commented] (HBASE-11788) hbase is not deleting the cell when a Put with a KeyValue, KeyValue.Type.Delete is submitted

2014-08-21 Thread Srikanth Srungarapu (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-11788?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105902#comment-14105902
 ] 

Srikanth Srungarapu commented on HBASE-11788:
-

Can you please let me know if someone is interested in picking this up? If not, 
I can work on this.

 hbase is not deleting the cell when a Put with a KeyValue, 
 KeyValue.Type.Delete is submitted
 

 Key: HBASE-11788
 URL: https://issues.apache.org/jira/browse/HBASE-11788
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.99.0, 0.96.1.1, 0.98.5, 2.0.0
 Environment: Cloudera CDH 5.1.x
Reporter: Cristian Armaselu
 Attachments: TestPutWithDelete.java


 Code executed:
 {code}
 @Test
 public void testHbasePutDeleteCell() throws Exception {
 TableName tableName = TableName.valueOf(my_test);
 Configuration configuration = HBaseConfiguration.create();
 HTableInterface table = new HTable(configuration, tableName);
 final String rowKey = 12345;
 final byte[] familly = Bytes.toBytes(default);
 // put one row
 Put put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(familly, Bytes.toBytes(C), Bytes.toBytes(c));
 table.put(put);
 // get row back and assert the values
 Get get = new Get(Bytes.toBytes(rowKey));
 Result result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column B value should be b);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(C))).equals(c), Column C value should be c);
 // put the same row again with C column deleted
 put = new Put(Bytes.toBytes(rowKey));
 put.add(familly, Bytes.toBytes(A), Bytes.toBytes(a));
 put.add(familly, Bytes.toBytes(B), Bytes.toBytes(b));
 put.add(new KeyValue(Bytes.toBytes(rowKey), familly, 
 Bytes.toBytes(C), HConstants.LATEST_TIMESTAMP, KeyValue.Type.DeleteColumn));
 table.put(put);
 // get row back and assert the values
 get = new Get(Bytes.toBytes(rowKey));
 result = table.get(get);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(A))).equals(a), Column A value should be a);
 Assert.isTrue(Bytes.toString(result.getValue(familly, 
 Bytes.toBytes(B))).equals(b), Column A value should be b);
 Assert.isTrue(result.getValue(familly, Bytes.toBytes(C)) == null, 
 Column C should not exists);
 }
 {code}
 This assertion fails, the cell is not deleted but rather the value is empty:
 {code}
 hbase(main):029:0 scan 'my_test'
 ROW   COLUMN+CELL 
   
   
  12345column=default:A, 
 timestamp=1408473082290, value=a  
 
  12345column=default:B, 
 timestamp=1408473082290, value=b  
 
  12345column=default:C, 
 timestamp=1408473082290, value=  
 {code}
 This behavior is different than previous 4.8.x Cloudera version and is 
 currently corrupting all hive queries involving is null or is not null 
 operators on the columns mapped to hbase



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


[jira] [Commented] (HBASE-6189) Snappy build instructions are out of date

2014-08-21 Thread Sean Busbey (JIRA)

[ 
https://issues.apache.org/jira/browse/HBASE-6189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14105940#comment-14105940
 ] 

Sean Busbey commented on HBASE-6189:


The book currently says snappy isn't bundled because of a licensing problem. 
The google code repository says it's currently BSD licensed, which would be 
fine AFAIK.

Anyone know what that was?

I can clean it up as a part of this ticket. (also we could just use 
snappy-java, which is Apache v2 and available via maven deps)

 Snappy build instructions are out of date
 -

 Key: HBASE-6189
 URL: https://issues.apache.org/jira/browse/HBASE-6189
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.1, 0.94.0, 0.95.2
Reporter: Dave Revell
Assignee: Sean Busbey
Priority: Critical

 In the ref guide (http://hbase.apache.org/book.html#build.snappy), it says to 
 build snappy by passing -Dsnappy. Something's wrong here, because:
 1. this causes the build to fail because the hadoop-snappy tar artifact can't 
 be found by maven
 2. the snappy classes are already included in hadoop 1.0, so using the snappy 
 profile is unnecessary
 It would be great if someone who knows when/why to use the snappy profile 
 could fix the instructions (and fix the POM if necessary).



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


[jira] [Updated] (HBASE-11799) AsyncProcess can get locked when running PE

2014-08-21 Thread Elliott Clark (JIRA)

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

Elliott Clark updated HBASE-11799:
--

Attachment: jstack

 AsyncProcess can get locked when running PE
 ---

 Key: HBASE-11799
 URL: https://issues.apache.org/jira/browse/HBASE-11799
 Project: HBase
  Issue Type: Bug
  Components: Client
Affects Versions: 0.98.7
Reporter: Elliott Clark
 Attachments: jstack


 On a clean checkout of 0.98.
 {code}
 mvn clean package -DskipTests
 bin/start-hbase.sh
 bin/hbase pe --nomapred randomWrite  10 1000{code}
 Everything runs fine for a while then the client hangs.
 The region server thinks that all requests have completed successfully. The 
 PE process is all stuck on the final flush.
  



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


  1   2   >