[jira] [Commented] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Julian Zhou (JIRA)

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

Julian Zhou commented on HBASE-9747:


Hi Stack, are the patches ok for the commits? Then we may could integrate in 
our solution/products' releasing as JIRA backport. Thanks~

 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Aditya Kishore (JIRA)

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

Aditya Kishore commented on HBASE-9747:
---

[~lhofhansl] I think this should go to next 0.94 release.

 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (HBASE-9753) Excessive readpoint checks in MemstoreScanner

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl resolved HBASE-9753.
--

  Resolution: Fixed
Hadoop Flags: Reviewed

 Excessive readpoint checks in MemstoreScanner
 -

 Key: HBASE-9753
 URL: https://issues.apache.org/jira/browse/HBASE-9753
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0, 0.94.13, 0.96.1

 Attachments: 9753-0.94.txt, 9753-v1.txt


 Brought up by [~vrodionov] on the mailing list. See also HBASE-9751.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9769) Improve performance of a Scanner with explicit column list when rows are small/medium size

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9769:
--

Did some profiling on why reseek() is so much slower than next() even when 
reseek just has to seek to the next key. The reason is all the compares we're 
doing... For each reseek:
* 2 KV compares in KeyValueHeap.generalizedSeek to find the top scanner
* 2 key compares in HFileReaderV2.ScannerV2.reseekTo (one to check for reseek, 
one to check against the index key)
* 2 key compares in HFileReaderV2.ScannerV2.blockSeek to find the right key

After all that we finally read the KV we found.

While next() just reads the next KV from the current HFile block.

Nothing jumps here as to how we could simplify this.

 Improve performance of a Scanner with explicit column list when rows are 
 small/medium size
 --

 Key: HBASE-9769
 URL: https://issues.apache.org/jira/browse/HBASE-9769
 Project: HBase
  Issue Type: Improvement
  Components: Scanners
Affects Versions: 0.98.0, 0.94.12, 0.96.0
Reporter: Vladimir Rodionov
Assignee: Vladimir Rodionov
 Attachments: 9769-0.94-sample1.txt, 9769-0.94-sample2.txt, 
 9769-0.94-sample.txt, 9769-94.txt, 9769-94-v2.txt, 9769-trunk-v1.txt






--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9747:
--

Looks good to me. Will commit tomorrow, unless hear objections.

 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9720) TestSplitTransactionOnCluster#testShutdownFixupWhenDaughterHasSplit occasionally times out

2013-10-17 Thread Hudson (JIRA)

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

Hudson commented on HBASE-9720:
---

SUCCESS: Integrated in hbase-0.96 #145 (See 
[https://builds.apache.org/job/hbase-0.96/145/])
HBASE-9720 TestSplitTransactionOnCluster#testShutdownFixupWhenDaughterHasSplit 
occasionally times out (tedyu: rev 1532962)
* 
/hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java


 TestSplitTransactionOnCluster#testShutdownFixupWhenDaughterHasSplit 
 occasionally times out
 --

 Key: HBASE-9720
 URL: https://issues.apache.org/jira/browse/HBASE-9720
 Project: HBase
  Issue Type: Test
Reporter: Ted Yu
Assignee: Ted Yu
 Fix For: 0.98.0, 0.96.1

 Attachments: 9720-v1.txt


 From 
 https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/779/testReport/junit/org.apache.hadoop.hbase.regionserver/TestSplitTransactionOnCluster/testShutdownFixupWhenDaughterHasSplit/
  :
 {code}
 java.lang.AssertionError: Waited too long for split
   at org.junit.Assert.fail(Assert.java:88)
   at org.junit.Assert.assertTrue(Assert.java:41)
   at org.junit.Assert.assertFalse(Assert.java:64)
   at 
 org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.split(TestSplitTransactionOnCluster.java:1065)
   at 
 org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.testShutdownFixupWhenDaughterHasSplit(TestSplitTransactionOnCluster.java:442)
 ...
 2013-10-05 13:00:18,060 DEBUG 
 [RS:2;quirinus:46584-smallCompactions-1380978003766] 
 regionserver.HRegionFileSystem(338): Committing store file 
 hdfs://localhost:45166/user/jenkins/hbase/data/default/testShutdownFixupWhenDaughterHasSplit/0d7218d1ce3bd629779009821908a3ed/.tmp/8b155b635b304a368e11dbd675d09312
  as 
 hdfs://localhost:45166/user/jenkins/hbase/data/default/testShutdownFixupWhenDaughterHasSplit/0d7218d1ce3bd629779009821908a3ed/info/8b155b635b304a368e11dbd675d09312
 2013-10-05 13:00:18,436 DEBUG [pool-1-thread-1-EventThread] 
 zookeeper.ZooKeeperWatcher(310): master:48355-0x14188b3d794 Received 
 ZooKeeper Event, type=NodeDataChanged, state=SyncConnected, 
 path=/hbase/balancer
 2013-10-05 13:00:18,436 DEBUG [AM.ZK.Worker-pool2-t11] 
 master.AssignmentManager(818): Handling RS_ZK_REGION_SPLITTING, 
 server=quirinus.apache.org,46584,1380977990795, 
 region=e29b00c3bdaa3e10f6c4fe252a82399f, 
 current_state={e29b00c3bdaa3e10f6c4fe252a82399f state=SPLITTING, 
 ts=1380978012468, server=quirinus.apache.org,46584,1380977990795}
 {code}
 We can see the following stack traces at the end of test output:
 {code}
 Potentially hanging thread: RS:2;quirinus:46584-smallCompactions-1380978003766
   java.lang.Object.wait(Native Method)
   java.lang.Object.wait(Object.java:485)
   org.apache.hadoop.ipc.Client.call(Client.java:1333)
   org.apache.hadoop.ipc.Client.call(Client.java:1300)
   
 org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
   com.sun.proxy.$Proxy17.rename(Unknown Source)
   sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
   
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   java.lang.reflect.Method.invoke(Method.java:597)
   
 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:188)
   
 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
   com.sun.proxy.$Proxy17.rename(Unknown Source)
   
 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.rename(ClientNamenodeProtocolTranslatorPB.java:396)
   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   java.lang.reflect.Method.invoke(Method.java:597)
   org.apache.hadoop.hbase.fs.HFileSystem$1.invoke(HFileSystem.java:266)
   com.sun.proxy.$Proxy22.rename(Unknown Source)
   org.apache.hadoop.hdfs.DFSClient.rename(DFSClient.java:1512)
   
 org.apache.hadoop.hdfs.DistributedFileSystem.rename(DistributedFileSystem.java:528)
   org.apache.hadoop.fs.FilterFileSystem.rename(FilterFileSystem.java:210)
   
 org.apache.hadoop.hbase.regionserver.HRegionFileSystem.rename(HRegionFileSystem.java:924)
   
 org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:340)
   
 org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:312)
   
 org.apache.hadoop.hbase.regionserver.HStore.moveFileIntoPlace(HStore.java:1032)
   
 

[jira] [Updated] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread ramkrishna.s.vasudevan (JIRA)

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

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

Status: Open  (was: Patch Available)

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread ramkrishna.s.vasudevan (JIRA)

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

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

Attachment: HBASE-9689_3.patch

This patch works as expected.  No backward compatibility changes.  TestShell 
passes with this.  
If it is fine I can commit this later today.

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread ramkrishna.s.vasudevan (JIRA)

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

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

Status: Patch Available  (was: Open)

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-7663) [Per-KV security] Visibility labels

2013-10-17 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-7663:
--

Attachment: HBASE-7663.patch

 [Per-KV security] Visibility labels
 ---

 Key: HBASE-7663
 URL: https://issues.apache.org/jira/browse/HBASE-7663
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, security
Affects Versions: 0.98.0
Reporter: Andrew Purtell
Assignee: Anoop Sam John
 Attachments: HBASE-7663.patch


 Implement Accumulo-style visibility labels. Consider the following design 
 principles:
 - Coprocessor based implementation
 - Minimal to no changes to core code
 - Use KeyValue tags (HBASE-7448) to carry labels
 - Use OperationWithAttributes# {get,set}Attribute for handling visibility 
 labels in the API
 - Implement a new filter for evaluating visibility labels as KVs are streamed 
 through.
 This approach would be consistent in deployment and API details with other 
 per-KV security work, supporting environments where they might be both be 
 employed, even stacked on some tables.
 See the parent issue for more discussion.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-7663) [Per-KV security] Visibility labels

2013-10-17 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-7663:
--

Attachment: (was: HBASE-7663.patch)

 [Per-KV security] Visibility labels
 ---

 Key: HBASE-7663
 URL: https://issues.apache.org/jira/browse/HBASE-7663
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, security
Affects Versions: 0.98.0
Reporter: Andrew Purtell
Assignee: Anoop Sam John

 Implement Accumulo-style visibility labels. Consider the following design 
 principles:
 - Coprocessor based implementation
 - Minimal to no changes to core code
 - Use KeyValue tags (HBASE-7448) to carry labels
 - Use OperationWithAttributes# {get,set}Attribute for handling visibility 
 labels in the API
 - Implement a new filter for evaluating visibility labels as KVs are streamed 
 through.
 This approach would be consistent in deployment and API details with other 
 per-KV security work, supporting environments where they might be both be 
 employed, even stacked on some tables.
 See the parent issue for more discussion.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-7663) [Per-KV security] Visibility labels

2013-10-17 Thread Anoop Sam John (JIRA)

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

Anoop Sam John updated HBASE-7663:
--

Attachment: HBASE-7663.patch

 [Per-KV security] Visibility labels
 ---

 Key: HBASE-7663
 URL: https://issues.apache.org/jira/browse/HBASE-7663
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, security
Affects Versions: 0.98.0
Reporter: Andrew Purtell
Assignee: Anoop Sam John
 Attachments: HBASE-7663.patch


 Implement Accumulo-style visibility labels. Consider the following design 
 principles:
 - Coprocessor based implementation
 - Minimal to no changes to core code
 - Use KeyValue tags (HBASE-7448) to carry labels
 - Use OperationWithAttributes# {get,set}Attribute for handling visibility 
 labels in the API
 - Implement a new filter for evaluating visibility labels as KVs are streamed 
 through.
 This approach would be consistent in deployment and API details with other 
 per-KV security work, supporting environments where they might be both be 
 employed, even stacked on some tables.
 See the parent issue for more discussion.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-7663) [Per-KV security] Visibility labels

2013-10-17 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-7663:
---

VisibilityController CP handles the visibility
The visibility labels are stored as tags with KVs
Use put.setCellVisibility(new CellVisibility(labelExp)); to add visibility 
expressions to cells
The label expression can contain visibility labels joined with logical 
expressions , | and !. Also using (, ) one can specify the precedence order
Eg : SECRET  CONFIDENTIAL  !PUBLIC

During read, (Scan/Get)  one can specify labels associated with that, in 
Authorizations
scan.setAuthorizations(new Authorizations(SECRET, CONFIDENTIAL));

 [Per-KV security] Visibility labels
 ---

 Key: HBASE-7663
 URL: https://issues.apache.org/jira/browse/HBASE-7663
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, security
Affects Versions: 0.98.0
Reporter: Andrew Purtell
Assignee: Anoop Sam John
 Attachments: HBASE-7663.patch


 Implement Accumulo-style visibility labels. Consider the following design 
 principles:
 - Coprocessor based implementation
 - Minimal to no changes to core code
 - Use KeyValue tags (HBASE-7448) to carry labels
 - Use OperationWithAttributes# {get,set}Attribute for handling visibility 
 labels in the API
 - Implement a new filter for evaluating visibility labels as KVs are streamed 
 through.
 This approach would be consistent in deployment and API details with other 
 per-KV security work, supporting environments where they might be both be 
 employed, even stacked on some tables.
 See the parent issue for more discussion.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-7663) [Per-KV security] Visibility labels

2013-10-17 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-7663:
---

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

 [Per-KV security] Visibility labels
 ---

 Key: HBASE-7663
 URL: https://issues.apache.org/jira/browse/HBASE-7663
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, security
Affects Versions: 0.98.0
Reporter: Andrew Purtell
Assignee: Anoop Sam John
 Attachments: HBASE-7663.patch


 Implement Accumulo-style visibility labels. Consider the following design 
 principles:
 - Coprocessor based implementation
 - Minimal to no changes to core code
 - Use KeyValue tags (HBASE-7448) to carry labels
 - Use OperationWithAttributes# {get,set}Attribute for handling visibility 
 labels in the API
 - Implement a new filter for evaluating visibility labels as KVs are streamed 
 through.
 This approach would be consistent in deployment and API details with other 
 per-KV security work, supporting environments where they might be both be 
 employed, even stacked on some tables.
 See the parent issue for more discussion.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-9689:
--

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

{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 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

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

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

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

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

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

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

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

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

This message is automatically generated.

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (HBASE-9790) If MAX_FILESIZE is negative, cluster will split regions indefinitely

2013-10-17 Thread Andrey Stepachev (JIRA)
Andrey Stepachev created HBASE-9790:
---

 Summary: If MAX_FILESIZE is negative, cluster will split regions 
indefinitely
 Key: HBASE-9790
 URL: https://issues.apache.org/jira/browse/HBASE-9790
 Project: HBase
  Issue Type: Bug
 Environment: 0.92.1-cdh4.1.1, Ubuntu 12.04
Reporter: Andrey Stepachev
Priority: Minor


'Alter' was issued with wrong (negative) max_file_size. At some moment 
regionservers begin to split regions producing zero size regions. Table won't 
to delete, event can't disable it.

Solution: stop cluster, delete table from hdfs, use with care  
{{hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair}}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9790) If MAX_FILESIZE is negative, cluster will split regions indefinitely

2013-10-17 Thread Andrey Stepachev (JIRA)

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

Andrey Stepachev updated HBASE-9790:


Description: 
'Alter' was issued with wrong (negative) max_file_size. At some moment 
regionservers begin to split regions producing zero size regions. Table won't 
to delete, even can't disable it.

Solution: stop cluster, delete table from hdfs, use with care  
{{hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair}}

  was:
'Alter' was issued with wrong (negative) max_file_size. At some moment 
regionservers begin to split regions producing zero size regions. Table won't 
to delete, event can't disable it.

Solution: stop cluster, delete table from hdfs, use with care  
{{hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair}}


 If MAX_FILESIZE is negative, cluster will split regions indefinitely
 

 Key: HBASE-9790
 URL: https://issues.apache.org/jira/browse/HBASE-9790
 Project: HBase
  Issue Type: Bug
 Environment: 0.92.1-cdh4.1.1, Ubuntu 12.04
Reporter: Andrey Stepachev
Priority: Minor

 'Alter' was issued with wrong (negative) max_file_size. At some moment 
 regionservers begin to split regions producing zero size regions. Table won't 
 to delete, even can't disable it.
 Solution: stop cluster, delete table from hdfs, use with care  
 {{hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair}}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9720) TestSplitTransactionOnCluster#testShutdownFixupWhenDaughterHasSplit occasionally times out

2013-10-17 Thread Hudson (JIRA)

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

Hudson commented on HBASE-9720:
---

FAILURE: Integrated in hbase-0.96-hadoop2 #91 (See 
[https://builds.apache.org/job/hbase-0.96-hadoop2/91/])
HBASE-9720 TestSplitTransactionOnCluster#testShutdownFixupWhenDaughterHasSplit 
occasionally times out (tedyu: rev 1532962)
* 
/hbase/branches/0.96/hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestSplitTransactionOnCluster.java


 TestSplitTransactionOnCluster#testShutdownFixupWhenDaughterHasSplit 
 occasionally times out
 --

 Key: HBASE-9720
 URL: https://issues.apache.org/jira/browse/HBASE-9720
 Project: HBase
  Issue Type: Test
Reporter: Ted Yu
Assignee: Ted Yu
 Fix For: 0.98.0, 0.96.1

 Attachments: 9720-v1.txt


 From 
 https://builds.apache.org/job/HBase-TRUNK-on-Hadoop-2.0.0/779/testReport/junit/org.apache.hadoop.hbase.regionserver/TestSplitTransactionOnCluster/testShutdownFixupWhenDaughterHasSplit/
  :
 {code}
 java.lang.AssertionError: Waited too long for split
   at org.junit.Assert.fail(Assert.java:88)
   at org.junit.Assert.assertTrue(Assert.java:41)
   at org.junit.Assert.assertFalse(Assert.java:64)
   at 
 org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.split(TestSplitTransactionOnCluster.java:1065)
   at 
 org.apache.hadoop.hbase.regionserver.TestSplitTransactionOnCluster.testShutdownFixupWhenDaughterHasSplit(TestSplitTransactionOnCluster.java:442)
 ...
 2013-10-05 13:00:18,060 DEBUG 
 [RS:2;quirinus:46584-smallCompactions-1380978003766] 
 regionserver.HRegionFileSystem(338): Committing store file 
 hdfs://localhost:45166/user/jenkins/hbase/data/default/testShutdownFixupWhenDaughterHasSplit/0d7218d1ce3bd629779009821908a3ed/.tmp/8b155b635b304a368e11dbd675d09312
  as 
 hdfs://localhost:45166/user/jenkins/hbase/data/default/testShutdownFixupWhenDaughterHasSplit/0d7218d1ce3bd629779009821908a3ed/info/8b155b635b304a368e11dbd675d09312
 2013-10-05 13:00:18,436 DEBUG [pool-1-thread-1-EventThread] 
 zookeeper.ZooKeeperWatcher(310): master:48355-0x14188b3d794 Received 
 ZooKeeper Event, type=NodeDataChanged, state=SyncConnected, 
 path=/hbase/balancer
 2013-10-05 13:00:18,436 DEBUG [AM.ZK.Worker-pool2-t11] 
 master.AssignmentManager(818): Handling RS_ZK_REGION_SPLITTING, 
 server=quirinus.apache.org,46584,1380977990795, 
 region=e29b00c3bdaa3e10f6c4fe252a82399f, 
 current_state={e29b00c3bdaa3e10f6c4fe252a82399f state=SPLITTING, 
 ts=1380978012468, server=quirinus.apache.org,46584,1380977990795}
 {code}
 We can see the following stack traces at the end of test output:
 {code}
 Potentially hanging thread: RS:2;quirinus:46584-smallCompactions-1380978003766
   java.lang.Object.wait(Native Method)
   java.lang.Object.wait(Object.java:485)
   org.apache.hadoop.ipc.Client.call(Client.java:1333)
   org.apache.hadoop.ipc.Client.call(Client.java:1300)
   
 org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
   com.sun.proxy.$Proxy17.rename(Unknown Source)
   sun.reflect.GeneratedMethodAccessor38.invoke(Unknown Source)
   
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   java.lang.reflect.Method.invoke(Method.java:597)
   
 org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:188)
   
 org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
   com.sun.proxy.$Proxy17.rename(Unknown Source)
   
 org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.rename(ClientNamenodeProtocolTranslatorPB.java:396)
   sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   
 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
   
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   java.lang.reflect.Method.invoke(Method.java:597)
   org.apache.hadoop.hbase.fs.HFileSystem$1.invoke(HFileSystem.java:266)
   com.sun.proxy.$Proxy22.rename(Unknown Source)
   org.apache.hadoop.hdfs.DFSClient.rename(DFSClient.java:1512)
   
 org.apache.hadoop.hdfs.DistributedFileSystem.rename(DistributedFileSystem.java:528)
   org.apache.hadoop.fs.FilterFileSystem.rename(FilterFileSystem.java:210)
   
 org.apache.hadoop.hbase.regionserver.HRegionFileSystem.rename(HRegionFileSystem.java:924)
   
 org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:340)
   
 org.apache.hadoop.hbase.regionserver.HRegionFileSystem.commitStoreFile(HRegionFileSystem.java:312)
   
 org.apache.hadoop.hbase.regionserver.HStore.moveFileIntoPlace(HStore.java:1032)
   
 

[jira] [Updated] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-9754:
--

Attachment: 9754-rp-hregion-v2.txt

Good point, Chunhui.

In latest patch, I refactored Compactor#createFileScanners() and 
Compactor#setSmallestReadPoint() which are called by DefaultCompactor#compact().

Now store.getSmallestReadPoint() is only called once.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9790) If MAX_FILESIZE is negative, cluster will split regions indefinitely

2013-10-17 Thread Jean-Marc Spaggiari (JIRA)

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

Jean-Marc Spaggiari commented on HBASE-9790:


Have you tried that on a more recent HBase version? Like with 0.94.x or CDH4.4 
if you use CDH?

 If MAX_FILESIZE is negative, cluster will split regions indefinitely
 

 Key: HBASE-9790
 URL: https://issues.apache.org/jira/browse/HBASE-9790
 Project: HBase
  Issue Type: Bug
 Environment: 0.92.1-cdh4.1.1, Ubuntu 12.04
Reporter: Andrey Stepachev
Priority: Minor

 'Alter' was issued with wrong (negative) max_file_size. At some moment 
 regionservers begin to split regions producing zero size regions. Table won't 
 to delete, even can't disable it.
 Solution: stop cluster, delete table from hdfs, use with care  
 {{hbase org.apache.hadoop.hbase.util.hbck.OfflineMetaRepair}}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9773) Master aborted when hbck asked the master to assign a region that was already online

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang commented on HBASE-9773:


I will enhance the addendum a little to have a timeout, just like in the assign 
case.  I think we should not use runnable because the open will be retried 
usually.  If the unassign is timed out, the pool won't be blocked.

 Master aborted when hbck asked the master to assign a region that was already 
 online
 

 Key: HBASE-9773
 URL: https://issues.apache.org/jira/browse/HBASE-9773
 Project: HBase
  Issue Type: Bug
Reporter: Devaraj Das
Assignee: Jimmy Xiang
 Fix For: 0.98.0, 0.96.1

 Attachments: trunk-9773.addendum, trunk-9773.patch, 
 trunk-9773_v2.patch


 Came across this situation (with a version of 0.96 very close to RC5 version 
 created on 10/11):
 The sequence of events that happened:
 1. The hbck tool couldn't communicate with the RegionServer hosting namespace 
 region due to some security exceptions. hbck INCORRECTLY assumed the region 
 was not deployed.
 In output.log (client side):
 {noformat}
 2013-10-12 10:42:57,067|beaver.machine|INFO|ERROR: Region { meta = 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., hdfs = 
 hdfs://gs-hdp2-secure-1381559462-hbase-12.cs1cloud.internal:8020/apps/hbase/data/data/hbase/namespace/a0ac0825ba2d0830614e7f808f31787a,
  deployed =  } not deployed on any region server.
 2013-10-12 10:42:57,067|beaver.machine|INFO|Trying to fix unassigned region...
 {noformat}
 2. This led to the hbck tool trying to tell the master to assign the region.
 In master log (hbase-hbase-master-gs-hdp2-secure-1381559462-hbase-12.log):
 {noformat}
 2013-10-12 10:52:35,960 INFO  [RpcServer.handler=4,port=6] 
 master.HMaster: Client=hbase//172.18.145.105 assign 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 3. The master went through the steps - sent a CLOSE to the RegionServer 
 hosting namespace region.
 From master log:
 {noformat}
 2013-10-12 10:52:35,981 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: Sent CLOSE to 
 gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794 for 
 region hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 4. The master then tried to assign the namespace region to a region server, 
 and in the process ABORTED:
 From master log:
 {noformat}
 2013-10-12 10:52:36,025 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: No previous transition plan found (or ignoring an 
 existing plan) for 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.; generated 
 random 
 plan=hri=hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., 
 src=, 
 dest=gs-hdp2-secure-1381559462-hbase-9.cs1cloud.internal,60020,1381564439807; 
 4 (online=4, available=4) available servers, forceNewPlan=true
 2013-10-12 10:52:36,026 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Master server abort: loaded coprocessors are: 
 [org.apache.hadoop.hbase.security.access.AccessController]
 2013-10-12 10:52:36,027 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Unexpected state : {a0ac0825ba2d0830614e7f808f31787a 
 state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 java.lang.IllegalStateException: Unexpected state : 
 {a0ac0825ba2d0830614e7f808f31787a state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 {noformat}
 {code}AssignmentManager.assign(HRegionInfo region, boolean setOfflineInZK, 
 boolean forceNewPlan){code} is the method that does all the above. This was 
 called from the HMaster with true for both the boolean arguments.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (HBASE-9791) MR initializes scanner twice

2013-10-17 Thread Jimmy Xiang (JIRA)
Jimmy Xiang created HBASE-9791:
--

 Summary: MR initializes scanner twice
 Key: HBASE-9791
 URL: https://issues.apache.org/jira/browse/HBASE-9791
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor


The first is in TableInputFormatBase.createRecordReader(). The second time is 
in initializing it.  We should not call initialize in creating the record 
reader.

{noformat}
2013-10-16 16:58:27,163 INFO [main] 
org.apache.hadoop.hbase.client.ScannerCallable: Open scanner=466730774138784884 
for 
scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
 on region 
region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
 hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
ip:e1521.halxg.cloudera.com:36020
2013-10-16 16:58:27,164 INFO [main] 
org.apache.hadoop.hbase.client.ScannerCallable:org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
at 
org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
at 
org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:271)
at 
org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:176)
at 
org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:171)
at 
org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:110)
at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:719)
at 
org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.restart(TableRecordReaderImpl.java:86)
at 
org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.initialize(TableRecordReaderImpl.java:148)
at 
org.apache.hadoop.hbase.mapreduce.TableRecordReader.initialize(TableRecordReader.java:125)
at 
org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.createRecordReader(TableInputFormatBase.java:135)
at 
org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.init(MapTask.java:491)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1477)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
2013-10-16 16:58:27,167 INFO [main] 
org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl: Current 
scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
2013-10-16 16:58:27,175 INFO [main] org.apache.hadoop.mapred.MapTask: Map 
output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
2013-10-16 16:58:27,891 INFO [main] org.apache.hadoop.mapred.MapTask: (EQUATOR) 
0 kvi 268435452(1073741808)
2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
mapreduce.task.io.sort.mb: 1024
2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: soft 
limit at 858993472
2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: bufstart 
= 0; bufvoid = 1073741824
2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: kvstart = 
268435452; length = 67108864
2013-10-16 16:58:27,903 INFO [main] 
org.apache.hadoop.hbase.client.ScannerCallable: Open 
scanner=7462140737850801183 for 
scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
 on region 
region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
 hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
ip:e1521.halxg.cloudera.com:36020
2013-10-16 16:58:27,903 INFO [main] 
org.apache.hadoop.hbase.client.ScannerCallable: 
org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
at 
org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
at 

[jira] [Updated] (HBASE-9791) MR initializes scanner twice

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-9791:
---

Attachment: trunk-9791.patch

 MR initializes scanner twice
 

 Key: HBASE-9791
 URL: https://issues.apache.org/jira/browse/HBASE-9791
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor
 Attachments: trunk-9791.patch


 The first is in TableInputFormatBase.createRecordReader(). The second time is 
 in initializing it.  We should not call initialize in creating the record 
 reader.
 {noformat}
 2013-10-16 16:58:27,163 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=466730774138784884 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,164 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable:org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:271)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:176)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:171)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:110)
   at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:719)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.restart(TableRecordReaderImpl.java:86)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.initialize(TableRecordReaderImpl.java:148)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReader.initialize(TableRecordReader.java:125)
   at 
 org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.createRecordReader(TableInputFormatBase.java:135)
   at 
 org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.init(MapTask.java:491)
   at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
   at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
   at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
   at java.security.AccessController.doPrivileged(Native Method)
   at javax.security.auth.Subject.doAs(Subject.java:415)
   at 
 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1477)
   at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
 2013-10-16 16:58:27,167 INFO [main] 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl: Current 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
 2013-10-16 16:58:27,175 INFO [main] org.apache.hadoop.mapred.MapTask: Map 
 output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 2013-10-16 16:58:27,891 INFO [main] org.apache.hadoop.mapred.MapTask: 
 (EQUATOR) 0 kvi 268435452(1073741808)
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 mapreduce.task.io.sort.mb: 1024
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: soft 
 limit at 858993472
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 bufstart = 0; bufvoid = 1073741824
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: kvstart 
 = 268435452; length = 67108864
 2013-10-16 16:58:27,903 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=7462140737850801183 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,903 INFO [main] 
 

[jira] [Updated] (HBASE-9791) MR initializes scanner twice

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-9791:
---

Status: Patch Available  (was: Open)

Added patch that removed the initialization during the creation time.  Tried 
TestImportExport which is still green.

 MR initializes scanner twice
 

 Key: HBASE-9791
 URL: https://issues.apache.org/jira/browse/HBASE-9791
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor
 Attachments: trunk-9791.patch


 The first is in TableInputFormatBase.createRecordReader(). The second time is 
 in initializing it.  We should not call initialize in creating the record 
 reader.
 {noformat}
 2013-10-16 16:58:27,163 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=466730774138784884 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,164 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable:org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:271)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:176)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:171)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:110)
   at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:719)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.restart(TableRecordReaderImpl.java:86)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.initialize(TableRecordReaderImpl.java:148)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReader.initialize(TableRecordReader.java:125)
   at 
 org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.createRecordReader(TableInputFormatBase.java:135)
   at 
 org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.init(MapTask.java:491)
   at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
   at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
   at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
   at java.security.AccessController.doPrivileged(Native Method)
   at javax.security.auth.Subject.doAs(Subject.java:415)
   at 
 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1477)
   at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
 2013-10-16 16:58:27,167 INFO [main] 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl: Current 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
 2013-10-16 16:58:27,175 INFO [main] org.apache.hadoop.mapred.MapTask: Map 
 output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 2013-10-16 16:58:27,891 INFO [main] org.apache.hadoop.mapred.MapTask: 
 (EQUATOR) 0 kvi 268435452(1073741808)
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 mapreduce.task.io.sort.mb: 1024
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: soft 
 limit at 858993472
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 bufstart = 0; bufvoid = 1073741824
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: kvstart 
 = 268435452; length = 67108864
 2013-10-16 16:58:27,903 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=7462140737850801183 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, 

[jira] [Commented] (HBASE-9791) MR initializes scanner twice

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9791:
--

+1

 MR initializes scanner twice
 

 Key: HBASE-9791
 URL: https://issues.apache.org/jira/browse/HBASE-9791
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor
 Attachments: trunk-9791.patch


 The first is in TableInputFormatBase.createRecordReader(). The second time is 
 in initializing it.  We should not call initialize in creating the record 
 reader.
 {noformat}
 2013-10-16 16:58:27,163 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=466730774138784884 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,164 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable:org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:271)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:176)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:171)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:110)
   at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:719)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.restart(TableRecordReaderImpl.java:86)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.initialize(TableRecordReaderImpl.java:148)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReader.initialize(TableRecordReader.java:125)
   at 
 org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.createRecordReader(TableInputFormatBase.java:135)
   at 
 org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.init(MapTask.java:491)
   at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
   at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
   at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
   at java.security.AccessController.doPrivileged(Native Method)
   at javax.security.auth.Subject.doAs(Subject.java:415)
   at 
 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1477)
   at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
 2013-10-16 16:58:27,167 INFO [main] 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl: Current 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
 2013-10-16 16:58:27,175 INFO [main] org.apache.hadoop.mapred.MapTask: Map 
 output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 2013-10-16 16:58:27,891 INFO [main] org.apache.hadoop.mapred.MapTask: 
 (EQUATOR) 0 kvi 268435452(1073741808)
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 mapreduce.task.io.sort.mb: 1024
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: soft 
 limit at 858993472
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 bufstart = 0; bufvoid = 1073741824
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: kvstart 
 = 268435452; length = 67108864
 2013-10-16 16:58:27,903 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=7462140737850801183 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,903 INFO [main] 
 

[jira] [Commented] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-9754:
--

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12608945/9754-rp-hregion-v2.txt
  against trunk revision .

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

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

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

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

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

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

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

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

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

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

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

This message is automatically generated.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9689:
--

I skimmed the patch.  Looks good.  Thanks for going back and making it so we 
don't break BC.

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-9689:
---

+1 on latest patch, thanks Ram

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (HBASE-9792) Region states should update last assignments when a region is opened.

2013-10-17 Thread Jimmy Xiang (JIRA)
Jimmy Xiang created HBASE-9792:
--

 Summary: Region states should update last assignments when a 
region is opened.
 Key: HBASE-9792
 URL: https://issues.apache.org/jira/browse/HBASE-9792
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang


Currently, we update a region's last assignment region server when the region 
is online.  We should do this sooner, when the region is moved to OPEN state.  
CM could kill this region server before we delete the znode and online the 
region.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (HBASE-7661) [Per-KV security] Store and apply per cell ACLs in a shadow CF

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-7661.
---

Resolution: Won't Fix

Now that we have tags and HFile V3, it's not necessary to use out of line 
storage for cell ACLs. Resolving as wontfix.

 [Per-KV security] Store and apply per cell ACLs in a shadow CF
 --

 Key: HBASE-7661
 URL: https://issues.apache.org/jira/browse/HBASE-7661
 Project: HBase
  Issue Type: Sub-task
  Components: Coprocessors, security
Reporter: Andrew Purtell
Assignee: Andrew Purtell
 Attachments: 7661-0.94.patch, 7661.patch


 Coprocessor based implementation of per-KV security that extends the existing 
 AccessController and ACL model to cover per cell permissions. More comments 
 on this approach can be found on the parent issue. Stores and consults the 
 additional metadata in a shadow column family managed by the 
 AccessController. Preserves existing user facing semantics. Does not require 
 any changes to core code except, optionally, the security shell commands, for 
 testing and prototyping convenience.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (HBASE-7664) [Per-KV security] Shell support

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell resolved HBASE-7664.
---

Resolution: Duplicate
  Assignee: (was: Andrew Purtell)

Effectively a dup of HBASE-9689

 [Per-KV security] Shell support
 ---

 Key: HBASE-7664
 URL: https://issues.apache.org/jira/browse/HBASE-7664
 Project: HBase
  Issue Type: Sub-task
  Components: security, shell
Affects Versions: 0.98.0
Reporter: Andrew Purtell

 Support simple exploration and validation of per-KV ACLs via the shell. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-9754:
--

Attachment: 9754-rp-hregion-v3.txt

New patch that replaces 0 read point parameter value with proper value.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9792) Region states should update last assignments when a region is opened.

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-9792:
---

Attachment: trunk-9792.patch

 Region states should update last assignments when a region is opened.
 -

 Key: HBASE-9792
 URL: https://issues.apache.org/jira/browse/HBASE-9792
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9792.patch


 Currently, we update a region's last assignment region server when the region 
 is online.  We should do this sooner, when the region is moved to OPEN state. 
  CM could kill this region server before we delete the znode and online the 
 region.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9792) Region states should update last assignments when a region is opened.

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-9792:
---

Status: Patch Available  (was: Open)

Attached patch moved the last assignment update from regionOnline() to 
updateRegionStates().

 Region states should update last assignments when a region is opened.
 -

 Key: HBASE-9792
 URL: https://issues.apache.org/jira/browse/HBASE-9792
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9792.patch


 Currently, we update a region's last assignment region server when the region 
 is online.  We should do this sooner, when the region is moved to OPEN state. 
  CM could kill this region server before we delete the znode and online the 
 region.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9754:
--

What are the implications of this change?

-MultiVersionConsistencyControl.resetThreadReadPoint();
 Scan scan = new Scan(get);
 InternalScanner scanner = (InternalScanner) store.getScanner(scan,
-scan.getFamilyMap().get(store.getFamily().getName()));
+scan.getFamilyMap().get(store.getFamily().getName()), 0);

We no longer do reset and we pass 0 which means all is readable?  Would think 
we'd retain at least the first line?

Does defaulting 0 in all tests change what is being tested (or do you think the 
reset was setting readpoint to 0 across the board anyways)?

This should be final now?

+  private long readPt = 0;

Is this an odd 'public' method to have in HRegion?

+   /*
+* Returns readpoint considering given IsolationLevel
+*/
+   public long getReadpoint(IsolationLevel isolationLevel) {
+ if (isolationLevel == IsolationLevel.READ_UNCOMMITTED) {
+   // This scan can read even uncommitted transactions
+   return Long.MAX_VALUE;
+ }
+ return mvcc.memstoreReadPoint();
+   }

especially as given just above, we can do a getMVCC so can go 
'behind-the-scenes'.  Should it be private?

It is the readPoint for the region?

Remove

-MultiVersionConsistencyControl.setThreadReadPoint(this.readPt);
+// MultiVersionConsistencyControl.setThreadReadPoint(this.readPt);

ditto

-MultiVersionConsistencyControl.setThreadReadPoint(this.readPt);
+// MultiVersionConsistencyControl.setThreadReadPoint(this.readPt);

Undocumented passing of zero (explaining why this is ok) and the sometimes 
passing of smallestreadpoint instead of readpoint is unsettling.  Explaination 
on why it is ok in the former case and what smallest means in latter would help 
the folks who come after understand what is going on.

Otherwise patch is good.



 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9767) Support OperationAttributes in ImportTSV Parser

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-9767:
---

+1

 Support OperationAttributes in ImportTSV Parser
 ---

 Key: HBASE-9767
 URL: https://issues.apache.org/jira/browse/HBASE-9767
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.98.0
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Attachments: HBASE-9767.patch


 This JIRA aims at supporting the operation attributes in bulk loads.  Ideally 
 this operation attributes once extracted has to be set in the 
 mappers/reducers.
 In case of mappers using TableOutPutFormat this would be very helpful when 
 the puts are done through HTable.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread Anoop Sam John (JIRA)

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

Anoop Sam John commented on HBASE-9689:
---

LGTM

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-9754:
---

bq. What are the implications of this change?
You were referring to the change in HBaseTestingUtility.java, right ?

Here is what resetThreadReadPoint() does:

-  public static void resetThreadReadPoint() {
-perThreadReadPoint.set(0L);
-  }

Meaning, effective readpoint is reset to 0. Hence passing 0 to 
store.getScanner() is consistent with the existing test.

bq. Would think we'd retain at least the first line?
Is the first line MultiVersionConsistencyControl.resetThreadReadPoint() ? That 
method has been removed.

bq. Does defaulting 0 in all tests change what is being tested
There is no change in semantics. 0 is only used when the two StoreScanner 
ctors, marked for testing, are used.

bq. This should be final now?
Done.

bq. Is this an odd 'public' method to have in HRegion?
It is used by NoOpScanPolicyObserver. Compilation passes when I change it to 
package private. My reasoning was that if user's RegionObserver overrides 
preStoreScannerOpen(), this method is needed. User's code would not be in 
org.apache.hadoop.hbase.regionserver package.

bq. It is the readPoint for the region?
Readpoint is associated with mvcc for the region.

bq. Undocumented passing of zero (explaining why this is ok)
Will add doc in next patch.

bq. and what smallest means in latter
Would do this too.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9778) Avoid seeking to next column in ExplicitColumnTracker when possible

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-9778:
-

Fix Version/s: (was: 0.96.1)
   (was: 0.94.13)
   (was: 0.98.0)

Unscheduling for now.

 Avoid seeking to next column in ExplicitColumnTracker when possible
 ---

 Key: HBASE-9778
 URL: https://issues.apache.org/jira/browse/HBASE-9778
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Attachments: 9778-0.94.txt, 9778-0.94-v2.txt, 9778-0.94-v3.txt, 
 9778-trunk.txt, 9778-trunk-v2.txt, 9778-trunk-v3.txt


 The issue of slow seeking in ExplicitColumnTracker was brought up by 
 [~vrodionov] on the dev list.
 My idea here is to avoid the seeking if we know that there aren't many 
 versions to skip.
 How do we know? We'll use the column family's VERSIONS setting as a hint. If 
 VERSIONS is set to 1 (or maybe some value  10) we'll avoid the seek and call 
 SKIP repeatedly.
 HBASE-9769 has some initial number for this approach:
 Interestingly it depends on which column(s) is (are) selected.
 Some numbers: 4m rows, 5 cols each, 1 cf, 10 bytes values, VERSIONS=1, 
 everything filtered at the server with a ValueFilter. Everything measured in 
 seconds.
 Without patch:
 ||Wildcard||Col 1||Col 2||Col 4||Col 5||Col 2+4||
 |6.4|8.5|14.3|14.6|11.1|20.3|
 With patch:
 ||Wildcard||Col 1||Col 2||Col 4||Col 5||Col 2+4||
 |6.4|8.4|8.9|9.9|6.4|10.0|
 Variation here was +- 0.2s.
 So with this patch scanning is 2x faster than without in some cases, and 
 never slower. No special hint needed, beyond declaring VERSIONS correctly.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Comment Edited] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-9754 at 10/17/13 5:23 PM:
-

bq. What are the implications of this change?
You were referring to the change in HBaseTestingUtility.java, right ?

Here is what resetThreadReadPoint() does:
{code}
-  public static void resetThreadReadPoint() {
-perThreadReadPoint.set(0L);
-  }
{code}
Meaning, effective readpoint is reset to 0. Hence passing 0 to 
store.getScanner() is consistent with the existing test.

bq. Would think we'd retain at least the first line?
Is the first line MultiVersionConsistencyControl.resetThreadReadPoint() ? That 
method has been removed.

bq. Does defaulting 0 in all tests change what is being tested
There is no change in semantics. 0 is only used when the two StoreScanner 
ctors, marked for testing, are used.

bq. This should be final now?
Done.

bq. Is this an odd 'public' method to have in HRegion?
It is used by NoOpScanPolicyObserver. Compilation passes when I change it to 
package private. My reasoning was that if user's RegionObserver overrides 
preStoreScannerOpen(), this method is needed. User's code would not be in 
org.apache.hadoop.hbase.regionserver package.

bq. It is the readPoint for the region?
Readpoint is associated with mvcc for the region.

bq. Undocumented passing of zero (explaining why this is ok)
Will add doc in next patch.

bq. and what smallest means in latter
Would do this too.


was (Author: yuzhih...@gmail.com):
bq. What are the implications of this change?
You were referring to the change in HBaseTestingUtility.java, right ?

Here is what resetThreadReadPoint() does:

-  public static void resetThreadReadPoint() {
-perThreadReadPoint.set(0L);
-  }

Meaning, effective readpoint is reset to 0. Hence passing 0 to 
store.getScanner() is consistent with the existing test.

bq. Would think we'd retain at least the first line?
Is the first line MultiVersionConsistencyControl.resetThreadReadPoint() ? That 
method has been removed.

bq. Does defaulting 0 in all tests change what is being tested
There is no change in semantics. 0 is only used when the two StoreScanner 
ctors, marked for testing, are used.

bq. This should be final now?
Done.

bq. Is this an odd 'public' method to have in HRegion?
It is used by NoOpScanPolicyObserver. Compilation passes when I change it to 
package private. My reasoning was that if user's RegionObserver overrides 
preStoreScannerOpen(), this method is needed. User's code would not be in 
org.apache.hadoop.hbase.regionserver package.

bq. It is the readPoint for the region?
Readpoint is associated with mvcc for the region.

bq. Undocumented passing of zero (explaining why this is ok)
Will add doc in next patch.

bq. and what smallest means in latter
Would do this too.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (HBASE-9793) Offline a region before it's closed could cause double assignment

2013-10-17 Thread Jimmy Xiang (JIRA)
Jimmy Xiang created HBASE-9793:
--

 Summary: Offline a region before it's closed could cause double 
assignment
 Key: HBASE-9793
 URL: https://issues.apache.org/jira/browse/HBASE-9793
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang


The fix for HBASE-9773 could cause double assignment, as [~jeffreyz] pointed 
out. Let's fix it in a separate jira instead of an addendum since there are 
different opinions on how to fix it.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9778) Avoid seeking to next column in ExplicitColumnTracker when possible

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9778:
--

I'd like to do some brainstorming about how we can make reseek faster if the 
reseek distance is expected to be small. Currently the absolute worst case is 
when reseek just seeks to the next KV, where next is orders of magnitudes 
faster.

Unfortunately we hit this worst case all the time if there is only one version 
of each KV.

 Avoid seeking to next column in ExplicitColumnTracker when possible
 ---

 Key: HBASE-9778
 URL: https://issues.apache.org/jira/browse/HBASE-9778
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Attachments: 9778-0.94.txt, 9778-0.94-v2.txt, 9778-0.94-v3.txt, 
 9778-trunk.txt, 9778-trunk-v2.txt, 9778-trunk-v3.txt


 The issue of slow seeking in ExplicitColumnTracker was brought up by 
 [~vrodionov] on the dev list.
 My idea here is to avoid the seeking if we know that there aren't many 
 versions to skip.
 How do we know? We'll use the column family's VERSIONS setting as a hint. If 
 VERSIONS is set to 1 (or maybe some value  10) we'll avoid the seek and call 
 SKIP repeatedly.
 HBASE-9769 has some initial number for this approach:
 Interestingly it depends on which column(s) is (are) selected.
 Some numbers: 4m rows, 5 cols each, 1 cf, 10 bytes values, VERSIONS=1, 
 everything filtered at the server with a ValueFilter. Everything measured in 
 seconds.
 Without patch:
 ||Wildcard||Col 1||Col 2||Col 4||Col 5||Col 2+4||
 |6.4|8.5|14.3|14.6|11.1|20.3|
 With patch:
 ||Wildcard||Col 1||Col 2||Col 4||Col 5||Col 2+4||
 |6.4|8.4|8.9|9.9|6.4|10.0|
 Variation here was +- 0.2s.
 So with this patch scanning is 2x faster than without in some cases, and 
 never slower. No special hint needed, beyond declaring VERSIONS correctly.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (HBASE-9773) Master aborted when hbck asked the master to assign a region that was already online

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang resolved HBASE-9773.


Resolution: Fixed

[~jeffreyz], let's close this one and fix the double assignment issue in 
HBASE-9793.  It may need some discussions.

 Master aborted when hbck asked the master to assign a region that was already 
 online
 

 Key: HBASE-9773
 URL: https://issues.apache.org/jira/browse/HBASE-9773
 Project: HBase
  Issue Type: Bug
Reporter: Devaraj Das
Assignee: Jimmy Xiang
 Fix For: 0.98.0, 0.96.1

 Attachments: trunk-9773.addendum, trunk-9773.patch, 
 trunk-9773_v2.patch


 Came across this situation (with a version of 0.96 very close to RC5 version 
 created on 10/11):
 The sequence of events that happened:
 1. The hbck tool couldn't communicate with the RegionServer hosting namespace 
 region due to some security exceptions. hbck INCORRECTLY assumed the region 
 was not deployed.
 In output.log (client side):
 {noformat}
 2013-10-12 10:42:57,067|beaver.machine|INFO|ERROR: Region { meta = 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., hdfs = 
 hdfs://gs-hdp2-secure-1381559462-hbase-12.cs1cloud.internal:8020/apps/hbase/data/data/hbase/namespace/a0ac0825ba2d0830614e7f808f31787a,
  deployed =  } not deployed on any region server.
 2013-10-12 10:42:57,067|beaver.machine|INFO|Trying to fix unassigned region...
 {noformat}
 2. This led to the hbck tool trying to tell the master to assign the region.
 In master log (hbase-hbase-master-gs-hdp2-secure-1381559462-hbase-12.log):
 {noformat}
 2013-10-12 10:52:35,960 INFO  [RpcServer.handler=4,port=6] 
 master.HMaster: Client=hbase//172.18.145.105 assign 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 3. The master went through the steps - sent a CLOSE to the RegionServer 
 hosting namespace region.
 From master log:
 {noformat}
 2013-10-12 10:52:35,981 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: Sent CLOSE to 
 gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794 for 
 region hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 4. The master then tried to assign the namespace region to a region server, 
 and in the process ABORTED:
 From master log:
 {noformat}
 2013-10-12 10:52:36,025 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: No previous transition plan found (or ignoring an 
 existing plan) for 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.; generated 
 random 
 plan=hri=hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., 
 src=, 
 dest=gs-hdp2-secure-1381559462-hbase-9.cs1cloud.internal,60020,1381564439807; 
 4 (online=4, available=4) available servers, forceNewPlan=true
 2013-10-12 10:52:36,026 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Master server abort: loaded coprocessors are: 
 [org.apache.hadoop.hbase.security.access.AccessController]
 2013-10-12 10:52:36,027 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Unexpected state : {a0ac0825ba2d0830614e7f808f31787a 
 state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 java.lang.IllegalStateException: Unexpected state : 
 {a0ac0825ba2d0830614e7f808f31787a state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 {noformat}
 {code}AssignmentManager.assign(HRegionInfo region, boolean setOfflineInZK, 
 boolean forceNewPlan){code} is the method that does all the above. This was 
 called from the HMaster with true for both the boolean arguments.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9689) Support using OperationAttributes through shell script

2013-10-17 Thread ramkrishna.s.vasudevan (JIRA)

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

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

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

Committed to trunk.  Thanks Andy, Anoop and Stack for the reviews.

 Support using OperationAttributes through shell script
 --

 Key: HBASE-9689
 URL: https://issues.apache.org/jira/browse/HBASE-9689
 Project: HBase
  Issue Type: Improvement
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
 Fix For: 0.98.0

 Attachments: HBASE-9689_1.patch, HBASE-9689_2.patch, 
 HBASE-9689_3.patch, HBASE-9689.patch


 Currently the ruby scripts for Put does not support setting of Operation 
 Attributes through shell.  
 It may be useful in some cases and also for testing.  And that would give a 
 full  fledged support using shell.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9789) Change logging for Coprocessor exec call to trace

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9789:
--

Actually 0.96+ does not have this. Coprocs are protobug based now and I do not 
see each invocation logged.

 Change logging for Coprocessor exec call to trace
 -

 Key: HBASE-9789
 URL: https://issues.apache.org/jira/browse/HBASE-9789
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Fix For: 0.94.13


 Currently both RegionServer and HMaster log (debug) this
 Received dynamic protocol exec call with protocolName class
 on each coprocessor exec call.
 We just filled our RegionServer log with 160gb of these since we're making 
 heavy use of coprocessors.
 I would like to change this to trace. Any objections?



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9789) Change logging for Coprocessor exec call to trace

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-9789:
-

Fix Version/s: (was: 0.96.1)
   (was: 0.98.0)

 Change logging for Coprocessor exec call to trace
 -

 Key: HBASE-9789
 URL: https://issues.apache.org/jira/browse/HBASE-9789
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Fix For: 0.94.13


 Currently both RegionServer and HMaster log (debug) this
 Received dynamic protocol exec call with protocolName class
 on each coprocessor exec call.
 We just filled our RegionServer log with 160gb of these since we're making 
 heavy use of coprocessors.
 I would like to change this to trace. Any objections?



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-8741) Scope sequenceid to the region rather than regionserver (WAS: Mutations on Regions in recovery mode might have same sequenceIDs)

2013-10-17 Thread Himanshu Vashishtha (JIRA)

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

Himanshu Vashishtha commented on HBASE-8741:


Filed HBASE-9785 for TestHeapSize test failure.

 Scope sequenceid to the region rather than regionserver (WAS: Mutations on 
 Regions in recovery mode might have same sequenceIDs)
 

 Key: HBASE-8741
 URL: https://issues.apache.org/jira/browse/HBASE-8741
 Project: HBase
  Issue Type: Bug
  Components: MTTR
Affects Versions: 0.95.1
Reporter: Himanshu Vashishtha
Assignee: Himanshu Vashishtha
 Fix For: 0.98.0

 Attachments: HBASE-8741-trunk-v6.patch, HBASE-8741-v0.patch, 
 HBASE-8741-v2.patch, HBASE-8741-v3.patch, HBASE-8741-v4-again.patch, 
 HBASE-8741-v4-again.patch, HBASE-8741-v4.patch, HBASE-8741-v5-again.patch, 
 HBASE-8741-v5.patch


 Currently, when opening a region, we find the maximum sequence ID from all 
 its HFiles and then set the LogSequenceId of the log (in case the later is at 
 a small value). This works good in recovered.edits case as we are not writing 
 to the region until we have replayed all of its previous edits. 
 With distributed log replay, if we want to enable writes while a region is 
 under recovery, we need to make sure that the logSequenceId  maximum 
 logSequenceId of the old regionserver. Otherwise, we might have a situation 
 where new edits have same (or smaller) sequenceIds. 
 We can store region level information in the WALTrailer, than this scenario 
 could be avoided by:
 a) reading the trailer of the last completed file, i.e., last wal file 
 which has a trailer and,
 b) completely reading the last wal file (this file would not have the 
 trailer, so it needs to be read completely).
 In future, if we switch to multi wal file, we could read the trailer for all 
 completed WAL files, and reading the remaining incomplete files.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9789) Change logging for Coprocessor exec call to trace

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-9789:
-

Attachment: 9789.txt

Simple patch. Will commit soon (0.94 only), unless I hear objections.

 Change logging for Coprocessor exec call to trace
 -

 Key: HBASE-9789
 URL: https://issues.apache.org/jira/browse/HBASE-9789
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Fix For: 0.94.13

 Attachments: 9789.txt


 Currently both RegionServer and HMaster log (debug) this
 Received dynamic protocol exec call with protocolName class
 on each coprocessor exec call.
 We just filled our RegionServer log with 160gb of these since we're making 
 heavy use of coprocessors.
 I would like to change this to trace. Any objections?



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Comment Edited] (HBASE-9789) Change logging for Coprocessor exec call to trace

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl edited comment on HBASE-9789 at 10/17/13 5:41 PM:


Actually 0.96+ does not have this. Coprocs are protobuf based now and I do not 
see each invocation logged.


was (Author: lhofhansl):
Actually 0.96+ does not have this. Coprocs are protobug based now and I do not 
see each invocation logged.

 Change logging for Coprocessor exec call to trace
 -

 Key: HBASE-9789
 URL: https://issues.apache.org/jira/browse/HBASE-9789
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Fix For: 0.94.13

 Attachments: 9789.txt


 Currently both RegionServer and HMaster log (debug) this
 Received dynamic protocol exec call with protocolName class
 on each coprocessor exec call.
 We just filled our RegionServer log with 160gb of these since we're making 
 heavy use of coprocessors.
 I would like to change this to trace. Any objections?



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9749) Custom threadpool for Coprocessor obtained HTables

2013-10-17 Thread Jesse Yates (JIRA)

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

Jesse Yates commented on HBASE-9749:


What are you getting at [~saint@gmail.com]? External interface and 
functionality to users is the same, this way just minimizes the possible code 
paths.

 Custom threadpool for Coprocessor obtained HTables
 --

 Key: HBASE-9749
 URL: https://issues.apache.org/jira/browse/HBASE-9749
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Affects Versions: 0.98.0, 0.94.13, 0.96.1
Reporter: Jesse Yates
Assignee: Jesse Yates
 Attachments: hbase-9749-0.94-v0.patch, hbase-9749-0.96-v0.patch, 
 hbase-9749-trunk-v0.patch


 Coprocessors currently can only use the default HTable constructor that takes 
 a single thread-pool.This is overly constrictive for coprocessors that desire 
 tighter control over their resources.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9773) Master aborted when hbck asked the master to assign a region that was already online

2013-10-17 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-9773:
--

{quote}
I will enhance the addendum a little to have a timeout, just like in the assign 
case. I think we should not use runnable because the open will be retried 
usually. If the unassign is timed out, the pool won't be blocked.
{quote}
Since TimeoutMonitor is disable by default so the open won't retried. While for 
this JIRA issue, if we timeout unassign is a reasonable solution because in SSH 
case the host server is dead already so unassign will bail out quick without 
timeout. For other situations, we give up assignment is acceptable because 
region assignment is more like a hint to the system and master doesn't have to 
assign a region by user requests. 

 Master aborted when hbck asked the master to assign a region that was already 
 online
 

 Key: HBASE-9773
 URL: https://issues.apache.org/jira/browse/HBASE-9773
 Project: HBase
  Issue Type: Bug
Reporter: Devaraj Das
Assignee: Jimmy Xiang
 Fix For: 0.98.0, 0.96.1

 Attachments: trunk-9773.addendum, trunk-9773.patch, 
 trunk-9773_v2.patch


 Came across this situation (with a version of 0.96 very close to RC5 version 
 created on 10/11):
 The sequence of events that happened:
 1. The hbck tool couldn't communicate with the RegionServer hosting namespace 
 region due to some security exceptions. hbck INCORRECTLY assumed the region 
 was not deployed.
 In output.log (client side):
 {noformat}
 2013-10-12 10:42:57,067|beaver.machine|INFO|ERROR: Region { meta = 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., hdfs = 
 hdfs://gs-hdp2-secure-1381559462-hbase-12.cs1cloud.internal:8020/apps/hbase/data/data/hbase/namespace/a0ac0825ba2d0830614e7f808f31787a,
  deployed =  } not deployed on any region server.
 2013-10-12 10:42:57,067|beaver.machine|INFO|Trying to fix unassigned region...
 {noformat}
 2. This led to the hbck tool trying to tell the master to assign the region.
 In master log (hbase-hbase-master-gs-hdp2-secure-1381559462-hbase-12.log):
 {noformat}
 2013-10-12 10:52:35,960 INFO  [RpcServer.handler=4,port=6] 
 master.HMaster: Client=hbase//172.18.145.105 assign 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 3. The master went through the steps - sent a CLOSE to the RegionServer 
 hosting namespace region.
 From master log:
 {noformat}
 2013-10-12 10:52:35,981 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: Sent CLOSE to 
 gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794 for 
 region hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 4. The master then tried to assign the namespace region to a region server, 
 and in the process ABORTED:
 From master log:
 {noformat}
 2013-10-12 10:52:36,025 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: No previous transition plan found (or ignoring an 
 existing plan) for 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.; generated 
 random 
 plan=hri=hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., 
 src=, 
 dest=gs-hdp2-secure-1381559462-hbase-9.cs1cloud.internal,60020,1381564439807; 
 4 (online=4, available=4) available servers, forceNewPlan=true
 2013-10-12 10:52:36,026 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Master server abort: loaded coprocessors are: 
 [org.apache.hadoop.hbase.security.access.AccessController]
 2013-10-12 10:52:36,027 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Unexpected state : {a0ac0825ba2d0830614e7f808f31787a 
 state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 java.lang.IllegalStateException: Unexpected state : 
 {a0ac0825ba2d0830614e7f808f31787a state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 {noformat}
 {code}AssignmentManager.assign(HRegionInfo region, boolean setOfflineInZK, 
 boolean forceNewPlan){code} is the method that does all the above. This was 
 called from the HMaster with true for both the boolean arguments.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-8912) [0.94] AssignmentManager throws IllegalStateException from PENDING_OPEN to OFFLINE

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-8912:
--

Some folks on the mailing list had something like this happening to them.

 [0.94] AssignmentManager throws IllegalStateException from PENDING_OPEN to 
 OFFLINE
 --

 Key: HBASE-8912
 URL: https://issues.apache.org/jira/browse/HBASE-8912
 Project: HBase
  Issue Type: Bug
Reporter: Enis Soztutar
 Fix For: 0.94.13

 Attachments: HBase-0.94 #1036 test - testRetrying [Jenkins].html


 AM throws this exception which subsequently causes the master to abort: 
 {code}
 java.lang.IllegalStateException: Unexpected state : 
 testRetrying,jjj,1372891751115.9b828792311001062a5ff4b1038fe33b. 
 state=PENDING_OPEN, ts=1372891751912, 
 server=hemera.apache.org,39064,1372891746132 .. Cannot transit it to OFFLINE.
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.setOfflineInZooKeeper(AssignmentManager.java:1879)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1688)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1424)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1399)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1394)
   at 
 org.apache.hadoop.hbase.master.handler.ClosedRegionHandler.process(ClosedRegionHandler.java:105)
   at 
 org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:175)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
   at java.lang.Thread.run(Thread.java:662)
 {code}
 This exception trace is from the failing test TestMetaReaderEditor which is 
 failing pretty frequently, but looking at the test code, I think this is not 
 a test-only issue, but affects the main code path. 
 https://builds.apache.org/job/HBase-0.94/1036/testReport/junit/org.apache.hadoop.hbase.catalog/TestMetaReaderEditor/testRetrying/



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9793) Offline a region before it's closed could cause double assignment

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-9793:
---

Attachment: trunk-9793.patch

Attached a similar patch as the addendum for HBASE-9773.  Added a timeout 
similar to that one for assign() to avoid waiting for too long while the thread 
is blocked.

 Offline a region before it's closed could cause double assignment
 -

 Key: HBASE-9793
 URL: https://issues.apache.org/jira/browse/HBASE-9793
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9793.patch


 The fix for HBASE-9773 could cause double assignment, as [~jeffreyz] pointed 
 out. Let's fix it in a separate jira instead of an addendum since there are 
 different opinions on how to fix it.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9773) Master aborted when hbck asked the master to assign a region that was already online

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang commented on HBASE-9773:


[~jeffreyz], I posted a patch on HBASE-9793. Could you please take a look? 
Thanks.

 Master aborted when hbck asked the master to assign a region that was already 
 online
 

 Key: HBASE-9773
 URL: https://issues.apache.org/jira/browse/HBASE-9773
 Project: HBase
  Issue Type: Bug
Reporter: Devaraj Das
Assignee: Jimmy Xiang
 Fix For: 0.98.0, 0.96.1

 Attachments: trunk-9773.addendum, trunk-9773.patch, 
 trunk-9773_v2.patch


 Came across this situation (with a version of 0.96 very close to RC5 version 
 created on 10/11):
 The sequence of events that happened:
 1. The hbck tool couldn't communicate with the RegionServer hosting namespace 
 region due to some security exceptions. hbck INCORRECTLY assumed the region 
 was not deployed.
 In output.log (client side):
 {noformat}
 2013-10-12 10:42:57,067|beaver.machine|INFO|ERROR: Region { meta = 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., hdfs = 
 hdfs://gs-hdp2-secure-1381559462-hbase-12.cs1cloud.internal:8020/apps/hbase/data/data/hbase/namespace/a0ac0825ba2d0830614e7f808f31787a,
  deployed =  } not deployed on any region server.
 2013-10-12 10:42:57,067|beaver.machine|INFO|Trying to fix unassigned region...
 {noformat}
 2. This led to the hbck tool trying to tell the master to assign the region.
 In master log (hbase-hbase-master-gs-hdp2-secure-1381559462-hbase-12.log):
 {noformat}
 2013-10-12 10:52:35,960 INFO  [RpcServer.handler=4,port=6] 
 master.HMaster: Client=hbase//172.18.145.105 assign 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 3. The master went through the steps - sent a CLOSE to the RegionServer 
 hosting namespace region.
 From master log:
 {noformat}
 2013-10-12 10:52:35,981 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: Sent CLOSE to 
 gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794 for 
 region hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.
 {noformat}
 4. The master then tried to assign the namespace region to a region server, 
 and in the process ABORTED:
 From master log:
 {noformat}
 2013-10-12 10:52:36,025 DEBUG [RpcServer.handler=4,port=6] 
 master.AssignmentManager: No previous transition plan found (or ignoring an 
 existing plan) for 
 hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a.; generated 
 random 
 plan=hri=hbase:namespace,,1381564449706.a0ac0825ba2d0830614e7f808f31787a., 
 src=, 
 dest=gs-hdp2-secure-1381559462-hbase-9.cs1cloud.internal,60020,1381564439807; 
 4 (online=4, available=4) available servers, forceNewPlan=true
 2013-10-12 10:52:36,026 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Master server abort: loaded coprocessors are: 
 [org.apache.hadoop.hbase.security.access.AccessController]
 2013-10-12 10:52:36,027 FATAL [RpcServer.handler=4,port=6] 
 master.HMaster: Unexpected state : {a0ac0825ba2d0830614e7f808f31787a 
 state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 java.lang.IllegalStateException: Unexpected state : 
 {a0ac0825ba2d0830614e7f808f31787a state=OPEN, ts=1381564451344, 
 server=gs-hdp2-secure-1381559462-hbase-1.cs1cloud.internal,60020,1381564439794}
  .. Cannot transit it to OFFLINE.
 {noformat}
 {code}AssignmentManager.assign(HRegionInfo region, boolean setOfflineInZK, 
 boolean forceNewPlan){code} is the method that does all the above. This was 
 called from the HMaster with true for both the boolean arguments.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-9754:
--

Attachment: (was: 9754-rp-hregion-v3.txt)

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Andrew Purtell (JIRA)
Andrew Purtell created HBASE-9794:
-

 Summary: KeyValues / cells backed by buffer fragments
 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell


There are various places in the code where we see comments to the effect would 
be great if we had a scatter gather API for KV, appearing at places where we 
rewrite KVs on the server, for example in HRegion where we process appends and 
increments.

KeyValues are stored in buffers of fixed length. This approach has performance 
advantages for the common case where KVs are not manipulated on their way from 
disk to RPC. The disadvantage of this approach is any manipulation of tags 
requires the creation of a new buffer to hold the result, and a copy of the KV 
data into the new buffer. Appends and increments are typically a small 
percentage of overall workload so this has been fine up to now.
 
KeyValues can now carry metadata known as tags. Tags are stored contiguously 
with the rest of the KeyValue. Applications wishing to use tags (like per cell 
security) change the equation by wanting to rewrite KVs significantly more 
often. 

We should consider backing KeyValue with an alternative structure that can 
better support rewriting portions of its data, appends to existing buffers, 
scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-9754:
--

Attachment: 9754-rp-hregion-v3.txt

Updated 9754-rp-hregion-v3.txt with comment on why 0 is passed as readpoint in 
certain places.

Also replaced smallestReadPoint in tests.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Resolved] (HBASE-9789) Change logging for Coprocessor exec call to trace

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl resolved HBASE-9789.
--

Resolution: Fixed

Committed to 0.94.

 Change logging for Coprocessor exec call to trace
 -

 Key: HBASE-9789
 URL: https://issues.apache.org/jira/browse/HBASE-9789
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Fix For: 0.94.13

 Attachments: 9789.txt


 Currently both RegionServer and HMaster log (debug) this
 Received dynamic protocol exec call with protocolName class
 on each coprocessor exec call.
 We just filled our RegionServer log with 160gb of these since we're making 
 heavy use of coprocessors.
 I would like to change this to trace. Any objections?



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9747:
--

Actually, why is filterRow initialized to true (rather than false)? 
[~adityakishore]


 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9794:
--

Related to (or dup of) HBASE-7320?

 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of tags requires the creation of a new buffer to hold the 
 result, and a copy of the KV data into the new buffer. Appends and increments 
 are typically a small percentage of overall workload so this has been fine up 
 to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-9794:
---

Considering alternatives to the single contiguous buffer as we have now, but 
only if needed. The current way should remain the default way.

The kind of KeyValue manipulations desired here are analogous to those 
performed by network stacks in operating systems. 

The BSD mbuf structure is a good example, although it contains a lot of 
particulars to network stacks.

Back when the dinosaurs roamed the earth I worked with a research OS called 
Scout which had (I though) a particularly nice tree based structure for 
composing and decomposing packet buffers. Could be inspiration. From foggy 
memory it had an API like:

{code}
// Return the current length of the message
extern size_t msgLength (Msg m);

// Replace the contents of message 'm' with that of 'other', but without an 
ownership transfer to 'm', any changes will have COW semantics
extern void msgAssign (Msg m, Msg other);

// Replace the contents of message 'm' with the union of 'left' and 'write', 
but without an ownership transfer to 'm', any changes will have COW semantics
extern void msgJoin (Msg m, Msg left, Msg right);

// Remove 'len' bytes from the head of message 'm' into message 'other'
extern void msgBreak (Msg m, Msg other, size_t len);

// Get a contiguous view over 'len' bytes of new storage at the tail of message 
'm', may cause internal tree manipulations and allocations in order to provide 
it
extern void * msgPush (Msg m, size_t len);

// Get a contiguous view over 'len' bytes at the head of message 'm', may cause 
internal tree manipulations and allocations in order to provide it, and remove 
those bytes from the message
extern void * msgPop (Msg m, size_t len);

// Get a contiguous view over 'len' bytes at the head of message 'm', may cause 
internal tree manipulations and allocations in order to provide it, without 
removing those bytes from the message
extern void * msgPeek (Msg m, size_t len);

// Discard 'len' bytes from the head of the message
extern void msgDiscard (Msg m, size_t len);

// Discard 'len' bytes from the tail of the message
extern void msgTruncate (Msg m, size_t len);

// Initialize state for a walk over the tree of buffers for message 'm'
extern void msgWalkInit (MsgWalk w, Msg m);

// Return a view over the contents of the next buffer for message 'm', or the 
first buffer upon first invocation. Does not trigger any tree manipulations or 
allocations
extern void * msgWalkNext (MsgWalk w, size_t *lenp);

// Clean up walk state
extern void msgWalkDone (MsgWalk w);
{code}

 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of tags requires the creation of a new buffer to hold the 
 result, and a copy of the KV data into the new buffer. Appends and increments 
 are typically a small percentage of overall workload so this has been fine up 
 to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-9794:
---

Related to HBASE-7320 I'd say

 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of tags requires the creation of a new buffer to hold the 
 result, and a copy of the KV data into the new buffer. Appends and increments 
 are typically a small percentage of overall workload so this has been fine up 
 to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-9794:
--

Description: 
There are various places in the code where we see comments to the effect would 
be great if we had a scatter gather API for KV, appearing at places where we 
rewrite KVs on the server, for example in HRegion where we process appends and 
increments.

KeyValues are stored in buffers of fixed length. This approach has performance 
advantages for the common case where KVs are not manipulated on their way from 
disk to RPC. The disadvantage of this approach is any manipulation of the KV 
internals then requires the creation of a new buffer to hold the result, and a 
copy of the KV data into the new buffer. Appends and increments are typically a 
small percentage of overall workload so this has been fine up to now.
 
KeyValues can now carry metadata known as tags. Tags are stored contiguously 
with the rest of the KeyValue. Applications wishing to use tags (like per cell 
security) change the equation by wanting to rewrite KVs significantly more 
often. 

We should consider backing KeyValue with an alternative structure that can 
better support rewriting portions of its data, appends to existing buffers, 
scatter-gather copies, possibly even copy-on-write.

  was:
There are various places in the code where we see comments to the effect would 
be great if we had a scatter gather API for KV, appearing at places where we 
rewrite KVs on the server, for example in HRegion where we process appends and 
increments.

KeyValues are stored in buffers of fixed length. This approach has performance 
advantages for the common case where KVs are not manipulated on their way from 
disk to RPC. The disadvantage of this approach is any manipulation of tags 
requires the creation of a new buffer to hold the result, and a copy of the KV 
data into the new buffer. Appends and increments are typically a small 
percentage of overall workload so this has been fine up to now.
 
KeyValues can now carry metadata known as tags. Tags are stored contiguously 
with the rest of the KeyValue. Applications wishing to use tags (like per cell 
security) change the equation by wanting to rewrite KVs significantly more 
often. 

We should consider backing KeyValue with an alternative structure that can 
better support rewriting portions of its data, appends to existing buffers, 
scatter-gather copies, possibly even copy-on-write.


 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of the KV internals then requires the creation of a new buffer 
 to hold the result, and a copy of the KV data into the new buffer. Appends 
 and increments are typically a small percentage of overall workload so this 
 has been fine up to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9749) Custom threadpool for Coprocessor obtained HTables

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9749:
--

bq. External interface and functionality to users is the same, this way just 
minimizes the possible code paths

External Interface is the same?  No external code -- cps or whatever -- will 
use this method that you are changing?  If so, +1 on patch.  Otherwise, 
consider override to minimize need for users to ch ange their code.

 Custom threadpool for Coprocessor obtained HTables
 --

 Key: HBASE-9749
 URL: https://issues.apache.org/jira/browse/HBASE-9749
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Affects Versions: 0.98.0, 0.94.13, 0.96.1
Reporter: Jesse Yates
Assignee: Jesse Yates
 Attachments: hbase-9749-0.94-v0.patch, hbase-9749-0.96-v0.patch, 
 hbase-9749-trunk-v0.patch


 Coprocessors currently can only use the default HTable constructor that takes 
 a single thread-pool.This is overly constrictive for coprocessors that desire 
 tighter control over their resources.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-9754:
--

Attachment: (was: 9754-rp-hregion-v3.txt)

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9749) Custom threadpool for Coprocessor obtained HTables

2013-10-17 Thread Jesse Yates (JIRA)

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

Jesse Yates commented on HBASE-9749:


Yup, no change for users. I'll commit shortly.

 Custom threadpool for Coprocessor obtained HTables
 --

 Key: HBASE-9749
 URL: https://issues.apache.org/jira/browse/HBASE-9749
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Affects Versions: 0.98.0, 0.94.13, 0.96.1
Reporter: Jesse Yates
Assignee: Jesse Yates
 Attachments: hbase-9749-0.94-v0.patch, hbase-9749-0.96-v0.patch, 
 hbase-9749-trunk-v0.patch


 Coprocessors currently can only use the default HTable constructor that takes 
 a single thread-pool.This is overly constrictive for coprocessors that desire 
 tighter control over their resources.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9794:
--

I am reminded of my writing network protocols in OCaml in a former life :)


 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of the KV internals then requires the creation of a new buffer 
 to hold the result, and a copy of the KV data into the new buffer. Appends 
 and increments are typically a small percentage of overall workload so this 
 has been fine up to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Comment Edited] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell edited comment on HBASE-9794 at 10/17/13 6:04 PM:
-

Considering alternatives to the single contiguous buffer as we have now, but 
only if needed. The current way should remain the default way.

The kind of KeyValue manipulations desired here are analogous to those 
performed by network stacks in operating systems. 

The BSD mbuf structure is a good example, although it contains a lot of 
particulars to network stacks.

Back when the dinosaurs roamed the earth I worked with a research OS called 
Scout which had (I though) a particularly nice tree based structure for 
composing and decomposing packet buffers. Could be inspiration. From foggy 
memory it had an API like:

{code}
// Return the current length of the message
extern size_t msgLength (Msg m);

// Replace the contents of message 'm' with that of 'other', but without an 
ownership transfer to 'm', any changes will have COW semantics
extern void msgAssign (Msg m, Msg other);

// Replace the contents of message 'm' with the union of 'left' and 'right', 
but without an ownership transfer to 'm', any changes will have COW semantics
extern void msgJoin (Msg m, Msg left, Msg right);

// Remove 'len' bytes from the head of message 'm' into message 'other'
extern void msgBreak (Msg m, Msg other, size_t len);

// Get a contiguous view over 'len' bytes of new storage at the tail of message 
'm', may cause internal tree manipulations and allocations in order to provide 
it
extern void * msgPush (Msg m, size_t len);

// Get a contiguous view over 'len' bytes at the head of message 'm', may cause 
internal tree manipulations and allocations in order to provide it, and remove 
those bytes from the message
extern void * msgPop (Msg m, size_t len);

// Get a contiguous view over 'len' bytes at the head of message 'm', may cause 
internal tree manipulations and allocations in order to provide it, without 
removing those bytes from the message
extern void * msgPeek (Msg m, size_t len);

// Discard 'len' bytes from the head of the message
extern void msgDiscard (Msg m, size_t len);

// Discard 'len' bytes from the tail of the message
extern void msgTruncate (Msg m, size_t len);

// Initialize state for a walk over the tree of buffers for message 'm'
extern void msgWalkInit (MsgWalk w, Msg m);

// Return a view over the contents of the next buffer for message 'm', or the 
first buffer upon first invocation. Does not trigger any tree manipulations or 
allocations
extern void * msgWalkNext (MsgWalk w, size_t *lenp);

// Clean up walk state
extern void msgWalkDone (MsgWalk w);
{code}


was (Author: apurtell):
Considering alternatives to the single contiguous buffer as we have now, but 
only if needed. The current way should remain the default way.

The kind of KeyValue manipulations desired here are analogous to those 
performed by network stacks in operating systems. 

The BSD mbuf structure is a good example, although it contains a lot of 
particulars to network stacks.

Back when the dinosaurs roamed the earth I worked with a research OS called 
Scout which had (I though) a particularly nice tree based structure for 
composing and decomposing packet buffers. Could be inspiration. From foggy 
memory it had an API like:

{code}
// Return the current length of the message
extern size_t msgLength (Msg m);

// Replace the contents of message 'm' with that of 'other', but without an 
ownership transfer to 'm', any changes will have COW semantics
extern void msgAssign (Msg m, Msg other);

// Replace the contents of message 'm' with the union of 'left' and 'write', 
but without an ownership transfer to 'm', any changes will have COW semantics
extern void msgJoin (Msg m, Msg left, Msg right);

// Remove 'len' bytes from the head of message 'm' into message 'other'
extern void msgBreak (Msg m, Msg other, size_t len);

// Get a contiguous view over 'len' bytes of new storage at the tail of message 
'm', may cause internal tree manipulations and allocations in order to provide 
it
extern void * msgPush (Msg m, size_t len);

// Get a contiguous view over 'len' bytes at the head of message 'm', may cause 
internal tree manipulations and allocations in order to provide it, and remove 
those bytes from the message
extern void * msgPop (Msg m, size_t len);

// Get a contiguous view over 'len' bytes at the head of message 'm', may cause 
internal tree manipulations and allocations in order to provide it, without 
removing those bytes from the message
extern void * msgPeek (Msg m, size_t len);

// Discard 'len' bytes from the head of the message
extern void msgDiscard (Msg m, size_t len);

// Discard 'len' bytes from the tail of the message
extern void msgTruncate (Msg m, size_t len);

// Initialize state for a walk over the tree of 

[jira] [Commented] (HBASE-8741) Scope sequenceid to the region rather than regionserver (WAS: Mutations on Regions in recovery mode might have same sequenceIDs)

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-8741:
--

Try passing -d32 when running that test locally Himanshu.  That might repro the 
issue for you.

Does this last version of the patch address issues raised in last review (there 
was a worry that sequenceids could go in out of order IIRC)

 Scope sequenceid to the region rather than regionserver (WAS: Mutations on 
 Regions in recovery mode might have same sequenceIDs)
 

 Key: HBASE-8741
 URL: https://issues.apache.org/jira/browse/HBASE-8741
 Project: HBase
  Issue Type: Bug
  Components: MTTR
Affects Versions: 0.95.1
Reporter: Himanshu Vashishtha
Assignee: Himanshu Vashishtha
 Fix For: 0.98.0

 Attachments: HBASE-8741-trunk-v6.patch, HBASE-8741-v0.patch, 
 HBASE-8741-v2.patch, HBASE-8741-v3.patch, HBASE-8741-v4-again.patch, 
 HBASE-8741-v4-again.patch, HBASE-8741-v4.patch, HBASE-8741-v5-again.patch, 
 HBASE-8741-v5.patch


 Currently, when opening a region, we find the maximum sequence ID from all 
 its HFiles and then set the LogSequenceId of the log (in case the later is at 
 a small value). This works good in recovered.edits case as we are not writing 
 to the region until we have replayed all of its previous edits. 
 With distributed log replay, if we want to enable writes while a region is 
 under recovery, we need to make sure that the logSequenceId  maximum 
 logSequenceId of the old regionserver. Otherwise, we might have a situation 
 where new edits have same (or smaller) sequenceIds. 
 We can store region level information in the WALTrailer, than this scenario 
 could be avoided by:
 a) reading the trailer of the last completed file, i.e., last wal file 
 which has a trailer and,
 b) completely reading the last wal file (this file would not have the 
 trailer, so it needs to be read completely).
 In future, if we switch to multi wal file, we could read the trailer for all 
 completed WAL files, and reading the remaining incomplete files.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-9754:
--

Attachment: 9754-rp-hregion-v3.txt

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9791) MR initializes scanner twice

2013-10-17 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-9791:
--

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

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

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

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

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

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

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

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

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

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

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

This message is automatically generated.

 MR initializes scanner twice
 

 Key: HBASE-9791
 URL: https://issues.apache.org/jira/browse/HBASE-9791
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor
 Attachments: trunk-9791.patch


 The first is in TableInputFormatBase.createRecordReader(). The second time is 
 in initializing it.  We should not call initialize in creating the record 
 reader.
 {noformat}
 2013-10-16 16:58:27,163 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=466730774138784884 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,164 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable:org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:271)
   

[jira] [Commented] (HBASE-4811) Support reverse Scan

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-4811:
--

[~apurtell], did you get any chance to do some perf testing on this?
As far as I am concerned this is good now in terms of performance.


 Support reverse Scan
 

 Key: HBASE-4811
 URL: https://issues.apache.org/jira/browse/HBASE-4811
 Project: HBase
  Issue Type: New Feature
  Components: Client
Affects Versions: 0.20.6, 0.94.7
Reporter: John Carrino
Assignee: chunhui shen
 Fix For: 0.98.0

 Attachments: 4811-0.94-v3.txt, 4811-trunk-v10.txt, 
 4811-trunk-v5.patch, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 
 v21.patch, HBase-4811-0.94-v2.txt, hbase-4811-trunkv11.patch, 
 hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, 
 hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, 
 hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, 
 hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, 
 hbase-4811-trunkv1.patch, hbase-4811-trunkv20.patch, 
 hbase-4811-trunkv21.patch, hbase-4811-trunkv4.patch, 
 hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, 
 hbase-4811-trunkv9.patch


 Reversed scan means scan the rows backward. 
 And StartRow bigger than StopRow in a reversed scan.
 For example, for the following rows:
 aaa/c1:q1/value1
 aaa/c1:q2/value2
 bbb/c1:q1/value1
 bbb/c1:q2/value2
 ccc/c1:q1/value1
 ccc/c1:q2/value2
 ddd/c1:q1/value1
 ddd/c1:q2/value2
 eee/c1:q1/value1
 eee/c1:q2/value2
 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this:
 Scan scan = new Scan();
 scan.setStartRow('ddd');
 scan.setStopRow('bbb');
 scan.setReversed(true);
 for(Result result:htable.getScanner(scan)){
  System.out.println(result);
 }
 Aslo you could do the reversed scan with shell like this:
 hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'}
 And the output is:
 ddd/c1:q1/value1
 ddd/c1:q2/value2
 ccc/c1:q1/value1
 ccc/c1:q2/value2
 NOTE: when setting reversed as true for a client scan, you must set the start 
 row, else will throw exception. Through {@link 
 Scan#createBiggestByteArray(int)},you could get a big enough byte array as 
 the start row
 All the documentation I find about HBase says that if you want forward and 
 reverse scans you should just build 2 tables and one be ascending and one 
 descending.  Is there a fundamental reason that HBase only supports forward 
 Scan?  It seems like a lot of extra space overhead and coding overhead (to 
 keep them in sync) to support 2 tables.  
 I am assuming this has been discussed before, but I can't find the 
 discussions anywhere about it or why it would be infeasible.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl commented on HBASE-9794:
--

This is one of my pet peeves :)  and the reason why scanning with block 
encoding is so much slower and more GC intensive than without.


 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of tags requires the creation of a new buffer to hold the 
 result, and a copy of the KV data into the new buffer. Appends and increments 
 are typically a small percentage of overall workload so this has been fine up 
 to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-4811) Support reverse Scan

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell commented on HBASE-4811:
---

[~lhofhansl] I'm sadly underwater, if you think it's good +1 from me

 Support reverse Scan
 

 Key: HBASE-4811
 URL: https://issues.apache.org/jira/browse/HBASE-4811
 Project: HBase
  Issue Type: New Feature
  Components: Client
Affects Versions: 0.20.6, 0.94.7
Reporter: John Carrino
Assignee: chunhui shen
 Fix For: 0.98.0

 Attachments: 4811-0.94-v3.txt, 4811-trunk-v10.txt, 
 4811-trunk-v5.patch, HBase-4811-0.94.3modified.txt, hbase-4811-0.94 
 v21.patch, HBase-4811-0.94-v2.txt, hbase-4811-trunkv11.patch, 
 hbase-4811-trunkv12.patch, hbase-4811-trunkv13.patch, 
 hbase-4811-trunkv14.patch, hbase-4811-trunkv15.patch, 
 hbase-4811-trunkv16.patch, hbase-4811-trunkv17.patch, 
 hbase-4811-trunkv18.patch, hbase-4811-trunkv19.patch, 
 hbase-4811-trunkv1.patch, hbase-4811-trunkv20.patch, 
 hbase-4811-trunkv21.patch, hbase-4811-trunkv4.patch, 
 hbase-4811-trunkv6.patch, hbase-4811-trunkv7.patch, hbase-4811-trunkv8.patch, 
 hbase-4811-trunkv9.patch


 Reversed scan means scan the rows backward. 
 And StartRow bigger than StopRow in a reversed scan.
 For example, for the following rows:
 aaa/c1:q1/value1
 aaa/c1:q2/value2
 bbb/c1:q1/value1
 bbb/c1:q2/value2
 ccc/c1:q1/value1
 ccc/c1:q2/value2
 ddd/c1:q1/value1
 ddd/c1:q2/value2
 eee/c1:q1/value1
 eee/c1:q2/value2
 you could do a reversed scan from 'ddd' to 'bbb'(exclude) like this:
 Scan scan = new Scan();
 scan.setStartRow('ddd');
 scan.setStopRow('bbb');
 scan.setReversed(true);
 for(Result result:htable.getScanner(scan)){
  System.out.println(result);
 }
 Aslo you could do the reversed scan with shell like this:
 hbase scan 'table',{REVERSED = true,STARTROW='ddd', STOPROW='bbb'}
 And the output is:
 ddd/c1:q1/value1
 ddd/c1:q2/value2
 ccc/c1:q1/value1
 ccc/c1:q2/value2
 NOTE: when setting reversed as true for a client scan, you must set the start 
 row, else will throw exception. Through {@link 
 Scan#createBiggestByteArray(int)},you could get a big enough byte array as 
 the start row
 All the documentation I find about HBase says that if you want forward and 
 reverse scans you should just build 2 tables and one be ascending and one 
 descending.  Is there a fundamental reason that HBase only supports forward 
 Scan?  It seems like a lot of extra space overhead and coding overhead (to 
 keep them in sync) to support 2 tables.  
 I am assuming this has been discussed before, but I can't find the 
 discussions anywhere about it or why it would be infeasible.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9776) Test Load And Verify Fails with TableNotEnabledException

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9776:
--

[~jeffreyz] you going to commit?

 Test Load And Verify Fails with TableNotEnabledException
 

 Key: HBASE-9776
 URL: https://issues.apache.org/jira/browse/HBASE-9776
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.96.0
Reporter: Jeffrey Zhong
Assignee: Jeffrey Zhong
Priority: Minor
 Attachments: hbase-9776.patch


 Occasionally IntegrationTestLoadAndVerify failed with the following error. 
 This is caused by RPC retry and the first attempt actually went through 
 successfully and the second retry attempt fails because the table is disabled 
 by the first attempt.
 {code}
 2013-10-10 
 19:55:54,339|beaver.machine|INFO|org.apache.hadoop.hbase.TableNotEnabledException:
  org.apache.hadoop.hbase.TableNotEnabledException: 
 IntegrationTestLoadAndVerify
 2013-10-10 19:55:54,340|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.handler.DisableTableHandler.prepare(DisableTableHandler.java:100)
 2013-10-10 19:55:54,341|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1979)
 2013-10-10 19:55:54,342|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1990)
 {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9776) Test Load And Verify Fails with TableNotEnabledException

2013-10-17 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-9776:
--

Yes, I'll commit soon. Thanks.

 Test Load And Verify Fails with TableNotEnabledException
 

 Key: HBASE-9776
 URL: https://issues.apache.org/jira/browse/HBASE-9776
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.96.0
Reporter: Jeffrey Zhong
Assignee: Jeffrey Zhong
Priority: Minor
 Attachments: hbase-9776.patch


 Occasionally IntegrationTestLoadAndVerify failed with the following error. 
 This is caused by RPC retry and the first attempt actually went through 
 successfully and the second retry attempt fails because the table is disabled 
 by the first attempt.
 {code}
 2013-10-10 
 19:55:54,339|beaver.machine|INFO|org.apache.hadoop.hbase.TableNotEnabledException:
  org.apache.hadoop.hbase.TableNotEnabledException: 
 IntegrationTestLoadAndVerify
 2013-10-10 19:55:54,340|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.handler.DisableTableHandler.prepare(DisableTableHandler.java:100)
 2013-10-10 19:55:54,341|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1979)
 2013-10-10 19:55:54,342|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1990)
 {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9749) Custom threadpool for Coprocessor obtained HTables

2013-10-17 Thread Jesse Yates (JIRA)

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

Jesse Yates updated HBASE-9749:
---

   Resolution: Fixed
Fix Version/s: 0.94.13
   0.96.0
   0.98.0
   Status: Resolved  (was: Patch Available)

 Custom threadpool for Coprocessor obtained HTables
 --

 Key: HBASE-9749
 URL: https://issues.apache.org/jira/browse/HBASE-9749
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Affects Versions: 0.98.0, 0.94.13, 0.96.1
Reporter: Jesse Yates
Assignee: Jesse Yates
 Fix For: 0.98.0, 0.96.0, 0.94.13

 Attachments: hbase-9749-0.94-v0.patch, hbase-9749-0.96-v0.patch, 
 hbase-9749-trunk-v0.patch


 Coprocessors currently can only use the default HTable constructor that takes 
 a single thread-pool.This is overly constrictive for coprocessors that desire 
 tighter control over their resources.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9794) KeyValues / cells backed by buffer fragments

2013-10-17 Thread Andrew Purtell (JIRA)

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

Andrew Purtell updated HBASE-9794:
--

Affects Version/s: 0.98.0

 KeyValues / cells backed by buffer fragments
 

 Key: HBASE-9794
 URL: https://issues.apache.org/jira/browse/HBASE-9794
 Project: HBase
  Issue Type: Brainstorming
Affects Versions: 0.98.0
Reporter: Andrew Purtell

 There are various places in the code where we see comments to the effect 
 would be great if we had a scatter gather API for KV, appearing at places 
 where we rewrite KVs on the server, for example in HRegion where we process 
 appends and increments.
 KeyValues are stored in buffers of fixed length. This approach has 
 performance advantages for the common case where KVs are not manipulated on 
 their way from disk to RPC. The disadvantage of this approach is any 
 manipulation of the KV internals then requires the creation of a new buffer 
 to hold the result, and a copy of the KV data into the new buffer. Appends 
 and increments are typically a small percentage of overall workload so this 
 has been fine up to now.
  
 KeyValues can now carry metadata known as tags. Tags are stored contiguously 
 with the rest of the KeyValue. Applications wishing to use tags (like per 
 cell security) change the equation by wanting to rewrite KVs significantly 
 more often. 
 We should consider backing KeyValue with an alternative structure that can 
 better support rewriting portions of its data, appends to existing buffers, 
 scatter-gather copies, possibly even copy-on-write.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9793) Offline a region before it's closed could cause double assignment

2013-10-17 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-9793:
--

I reviewed the patch. One minor thing is that we should remove the following 
code. The rest looks good for me. It'll be better if you have a successful IT 
run before to check in. Thanks.
{code}
+if (server.isStopped() || server.isAborted()) {
+  LOG.info(Skip assigning  + region.getRegionNameAsString()
++ , the server is stopped/aborted);
+}
{code}

Because we have in the assign as following. You can add the check  
server.isAborted() though in the loop condition.

{code}
  for (int i = 1; i = maximumAttempts  !server.isStopped(); i++) {
{code}

 Offline a region before it's closed could cause double assignment
 -

 Key: HBASE-9793
 URL: https://issues.apache.org/jira/browse/HBASE-9793
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9793.patch


 The fix for HBASE-9773 could cause double assignment, as [~jeffreyz] pointed 
 out. Let's fix it in a separate jira instead of an addendum since there are 
 different opinions on how to fix it.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Aditya Kishore (JIRA)

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

Aditya Kishore commented on HBASE-9747:
---

{code}
  public boolean filterRowKey(byte[] buffer, int offset, int length) {
...
=  filterRow = (cmp != 0);
return filterRow;
  }
{code}
Because the {{filterRowKey()}} filters a row unless the control reach here ↑.

So it is natural for {{filterRow}} to be {{true}} (initialized and reset for 
every row) unless set to {{false}} by \[{{filterRow = (cmp != 0)}}\] while 
inspecting a row.

 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9793) Offline a region before it's closed could cause double assignment

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang commented on HBASE-9793:


Good catch. Can we change the loop condition instead so that we can have 
something in the log to find out what's going on?

 Offline a region before it's closed could cause double assignment
 -

 Key: HBASE-9793
 URL: https://issues.apache.org/jira/browse/HBASE-9793
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9793.patch


 The fix for HBASE-9773 could cause double assignment, as [~jeffreyz] pointed 
 out. Let's fix it in a separate jira instead of an addendum since there are 
 different opinions on how to fix it.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-8912) [0.94] AssignmentManager throws IllegalStateException from PENDING_OPEN to OFFLINE

2013-10-17 Thread Vladimir Rodionov (JIRA)

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

Vladimir Rodionov commented on HBASE-8912:
--

I posted how to reproduce this issue. 
https://issues.apache.org/jira/browse/HBASE-8912?focusedCommentId=13721821page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13721821

 [0.94] AssignmentManager throws IllegalStateException from PENDING_OPEN to 
 OFFLINE
 --

 Key: HBASE-8912
 URL: https://issues.apache.org/jira/browse/HBASE-8912
 Project: HBase
  Issue Type: Bug
Reporter: Enis Soztutar
 Fix For: 0.94.13

 Attachments: HBase-0.94 #1036 test - testRetrying [Jenkins].html


 AM throws this exception which subsequently causes the master to abort: 
 {code}
 java.lang.IllegalStateException: Unexpected state : 
 testRetrying,jjj,1372891751115.9b828792311001062a5ff4b1038fe33b. 
 state=PENDING_OPEN, ts=1372891751912, 
 server=hemera.apache.org,39064,1372891746132 .. Cannot transit it to OFFLINE.
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.setOfflineInZooKeeper(AssignmentManager.java:1879)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1688)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1424)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1399)
   at 
 org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1394)
   at 
 org.apache.hadoop.hbase.master.handler.ClosedRegionHandler.process(ClosedRegionHandler.java:105)
   at 
 org.apache.hadoop.hbase.executor.EventHandler.run(EventHandler.java:175)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
   at 
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
   at java.lang.Thread.run(Thread.java:662)
 {code}
 This exception trace is from the failing test TestMetaReaderEditor which is 
 failing pretty frequently, but looking at the test code, I think this is not 
 a test-only issue, but affects the main code path. 
 https://builds.apache.org/job/HBase-0.94/1036/testReport/junit/org.apache.hadoop.hbase.catalog/TestMetaReaderEditor/testRetrying/



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-8143) HBase on Hadoop 2 with local short circuit reads (ssr) causes OOM

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-8143:
--

I ran into this issue recently and followed Lars advice to fix it.

dfs.client.read.shortcircuit.buffer.size set to 128k all around 
namedfs.client.read.shortcircuit.buffer.size/name value131072/value 

We should add this to our default configs rather than let folks run into OOMEs.

 HBase on Hadoop 2 with local short circuit reads (ssr) causes OOM 
 --

 Key: HBASE-8143
 URL: https://issues.apache.org/jira/browse/HBASE-8143
 Project: HBase
  Issue Type: Bug
  Components: hadoop2
Affects Versions: 0.98.0, 0.94.7, 0.95.0
Reporter: Enis Soztutar
Assignee: Enis Soztutar
 Fix For: 0.98.0, 0.96.0, 0.94.13

 Attachments: OpenFileTest.java


 We've run into an issue with HBase 0.94 on Hadoop2, with SSR turned on that 
 the memory usage of the HBase process grows to 7g, on an -Xmx3g, after some 
 time, this causes OOM for the RSs. 
 Upon further investigation, I've found out that we end up with 200 regions, 
 each having 3-4 store files open. Under hadoop2 SSR, BlockReaderLocal 
 allocates DirectBuffers, which is unlike HDFS 1 where there is no direct 
 buffer allocation. 
 It seems that there is no guards against the memory used by local buffers in 
 hdfs 2, and having a large number of open files causes multiple GB of memory 
 to be consumed from the RS process. 
 This issue is to further investigate what is going on. Whether we can limit 
 the memory usage in HDFS, or HBase, and/or document the setup. 
 Possible mitigation scenarios are: 
  - Turn off SSR for Hadoop 2
  - Ensure that there is enough unallocated memory for the RS based on 
 expected # of store files
  - Ensure that there is lower number of regions per region server (hence 
 number of open files)
 Stack trace:
 {code}
 org.apache.hadoop.hbase.DroppedSnapshotException: region: 
 IntegrationTestLoadAndVerify,yC^P\xD7\x945\xD4,1363388517630.24655343d8d356ef708732f34cfe8946.
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:1560)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:1439)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.flushcache(HRegion.java:1380)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:449)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushOneForGlobalPressure(MemStoreFlusher.java:215)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$500(MemStoreFlusher.java:63)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:237)
 at java.lang.Thread.run(Thread.java:662)
 Caused by: java.lang.OutOfMemoryError: Direct buffer memory
 at java.nio.Bits.reserveMemory(Bits.java:632)
 at java.nio.DirectByteBuffer.init(DirectByteBuffer.java:97)
 at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
 at 
 org.apache.hadoop.hdfs.util.DirectBufferPool.getBuffer(DirectBufferPool.java:70)
 at 
 org.apache.hadoop.hdfs.BlockReaderLocal.init(BlockReaderLocal.java:315)
 at 
 org.apache.hadoop.hdfs.BlockReaderLocal.newBlockReader(BlockReaderLocal.java:208)
 at 
 org.apache.hadoop.hdfs.DFSClient.getLocalBlockReader(DFSClient.java:790)
 at 
 org.apache.hadoop.hdfs.DFSInputStream.getBlockReader(DFSInputStream.java:888)
 at 
 org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:455)
 at 
 org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:645)
 at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:689)
 at java.io.DataInputStream.readFully(DataInputStream.java:178)
 at 
 org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.readFromStream(FixedFileTrailer.java:312)
 at 
 org.apache.hadoop.hbase.io.hfile.HFile.pickReaderVersion(HFile.java:543)
 at 
 org.apache.hadoop.hbase.io.hfile.HFile.createReaderWithEncoding(HFile.java:589)
 at 
 org.apache.hadoop.hbase.regionserver.StoreFile$Reader.init(StoreFile.java:1261)
 at 
 org.apache.hadoop.hbase.regionserver.StoreFile.open(StoreFile.java:512)
 at 
 org.apache.hadoop.hbase.regionserver.StoreFile.createReader(StoreFile.java:603)
 at 
 org.apache.hadoop.hbase.regionserver.Store.validateStoreFile(Store.java:1568)
 at 
 org.apache.hadoop.hbase.regionserver.Store.commitFile(Store.java:845)
 at 
 org.apache.hadoop.hbase.regionserver.Store.access$500(Store.java:109)
 at 
 

[jira] [Commented] (HBASE-9792) Region states should update last assignments when a region is opened.

2013-10-17 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-9792:
--

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

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

{color:red}-1 tests included{color}.  The patch doesn't appear to include 
any new or modified tests.
Please justify why no new tests are needed for this 
patch.
Also please list what manual steps were performed to 
verify this patch.

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

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

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

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

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

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

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

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

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

This message is automatically generated.

 Region states should update last assignments when a region is opened.
 -

 Key: HBASE-9792
 URL: https://issues.apache.org/jira/browse/HBASE-9792
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9792.patch


 Currently, we update a region's last assignment region server when the region 
 is online.  We should do this sooner, when the region is moved to OPEN state. 
  CM could kill this region server before we delete the znode and online the 
 region.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Created] (HBASE-9795) Backport the type support

2013-10-17 Thread Diego Masini (JIRA)
Diego Masini created HBASE-9795:
---

 Summary: Backport the type support
 Key: HBASE-9795
 URL: https://issues.apache.org/jira/browse/HBASE-9795
 Project: HBase
  Issue Type: New Feature
  Components: Client
Reporter: Diego Masini


Backport type support from v0.95.2 to 0.94. See HBASE-8089 



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9793) Offline a region before it's closed could cause double assignment

2013-10-17 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong commented on HBASE-9793:
--

{quote}
Can we change the loop condition instead so that we can have something in the 
log to find out what's going on?
{quote}
I think that's ok because we already log the info when a server is about to 
abort / stop. Depends on you though.

 Offline a region before it's closed could cause double assignment
 -

 Key: HBASE-9793
 URL: https://issues.apache.org/jira/browse/HBASE-9793
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
 Attachments: trunk-9793.patch


 The fix for HBASE-9773 could cause double assignment, as [~jeffreyz] pointed 
 out. Let's fix it in a separate jira instead of an addendum since there are 
 different opinions on how to fix it.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-8143) HBase on Hadoop 2 with local short circuit reads (ssr) causes OOM

2013-10-17 Thread stack (JIRA)

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

stack updated HBASE-8143:
-

 Priority: Critical  (was: Major)
Fix Version/s: (was: 0.96.0)
   0.96.1

 HBase on Hadoop 2 with local short circuit reads (ssr) causes OOM 
 --

 Key: HBASE-8143
 URL: https://issues.apache.org/jira/browse/HBASE-8143
 Project: HBase
  Issue Type: Bug
  Components: hadoop2
Affects Versions: 0.98.0, 0.94.7, 0.95.0
Reporter: Enis Soztutar
Assignee: Enis Soztutar
Priority: Critical
 Fix For: 0.98.0, 0.94.13, 0.96.1

 Attachments: OpenFileTest.java


 We've run into an issue with HBase 0.94 on Hadoop2, with SSR turned on that 
 the memory usage of the HBase process grows to 7g, on an -Xmx3g, after some 
 time, this causes OOM for the RSs. 
 Upon further investigation, I've found out that we end up with 200 regions, 
 each having 3-4 store files open. Under hadoop2 SSR, BlockReaderLocal 
 allocates DirectBuffers, which is unlike HDFS 1 where there is no direct 
 buffer allocation. 
 It seems that there is no guards against the memory used by local buffers in 
 hdfs 2, and having a large number of open files causes multiple GB of memory 
 to be consumed from the RS process. 
 This issue is to further investigate what is going on. Whether we can limit 
 the memory usage in HDFS, or HBase, and/or document the setup. 
 Possible mitigation scenarios are: 
  - Turn off SSR for Hadoop 2
  - Ensure that there is enough unallocated memory for the RS based on 
 expected # of store files
  - Ensure that there is lower number of regions per region server (hence 
 number of open files)
 Stack trace:
 {code}
 org.apache.hadoop.hbase.DroppedSnapshotException: region: 
 IntegrationTestLoadAndVerify,yC^P\xD7\x945\xD4,1363388517630.24655343d8d356ef708732f34cfe8946.
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:1560)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:1439)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.flushcache(HRegion.java:1380)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushRegion(MemStoreFlusher.java:449)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher.flushOneForGlobalPressure(MemStoreFlusher.java:215)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher.access$500(MemStoreFlusher.java:63)
 at 
 org.apache.hadoop.hbase.regionserver.MemStoreFlusher$FlushHandler.run(MemStoreFlusher.java:237)
 at java.lang.Thread.run(Thread.java:662)
 Caused by: java.lang.OutOfMemoryError: Direct buffer memory
 at java.nio.Bits.reserveMemory(Bits.java:632)
 at java.nio.DirectByteBuffer.init(DirectByteBuffer.java:97)
 at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:288)
 at 
 org.apache.hadoop.hdfs.util.DirectBufferPool.getBuffer(DirectBufferPool.java:70)
 at 
 org.apache.hadoop.hdfs.BlockReaderLocal.init(BlockReaderLocal.java:315)
 at 
 org.apache.hadoop.hdfs.BlockReaderLocal.newBlockReader(BlockReaderLocal.java:208)
 at 
 org.apache.hadoop.hdfs.DFSClient.getLocalBlockReader(DFSClient.java:790)
 at 
 org.apache.hadoop.hdfs.DFSInputStream.getBlockReader(DFSInputStream.java:888)
 at 
 org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:455)
 at 
 org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:645)
 at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:689)
 at java.io.DataInputStream.readFully(DataInputStream.java:178)
 at 
 org.apache.hadoop.hbase.io.hfile.FixedFileTrailer.readFromStream(FixedFileTrailer.java:312)
 at 
 org.apache.hadoop.hbase.io.hfile.HFile.pickReaderVersion(HFile.java:543)
 at 
 org.apache.hadoop.hbase.io.hfile.HFile.createReaderWithEncoding(HFile.java:589)
 at 
 org.apache.hadoop.hbase.regionserver.StoreFile$Reader.init(StoreFile.java:1261)
 at 
 org.apache.hadoop.hbase.regionserver.StoreFile.open(StoreFile.java:512)
 at 
 org.apache.hadoop.hbase.regionserver.StoreFile.createReader(StoreFile.java:603)
 at 
 org.apache.hadoop.hbase.regionserver.Store.validateStoreFile(Store.java:1568)
 at 
 org.apache.hadoop.hbase.regionserver.Store.commitFile(Store.java:845)
 at 
 org.apache.hadoop.hbase.regionserver.Store.access$500(Store.java:109)
 at 
 org.apache.hadoop.hbase.regionserver.Store$StoreFlusherImpl.commit(Store.java:2209)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.internalFlushcache(HRegion.java:1541)
 {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9753) Excessive readpoint checks in MemstoreScanner

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9753:
--

Should be final in below

+
+private long readPoint;

And its readPoint here but in other patch it is readPt.

 Excessive readpoint checks in MemstoreScanner
 -

 Key: HBASE-9753
 URL: https://issues.apache.org/jira/browse/HBASE-9753
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0, 0.94.13, 0.96.1

 Attachments: 9753-0.94.txt, 9753-v1.txt


 Brought up by [~vrodionov] on the mailing list. See also HBASE-9751.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9791) MR initializes scanner twice

2013-10-17 Thread Jimmy Xiang (JIRA)

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

Jimmy Xiang updated HBASE-9791:
---

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

Thanks.  Integrated into trunk and 0.96.

 MR initializes scanner twice
 

 Key: HBASE-9791
 URL: https://issues.apache.org/jira/browse/HBASE-9791
 Project: HBase
  Issue Type: Bug
Reporter: Jimmy Xiang
Assignee: Jimmy Xiang
Priority: Minor
 Fix For: 0.98.0, 0.96.1

 Attachments: trunk-9791.patch


 The first is in TableInputFormatBase.createRecordReader(). The second time is 
 in initializing it.  We should not call initialize in creating the record 
 reader.
 {noformat}
 2013-10-16 16:58:27,163 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=466730774138784884 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 region=IntegrationTestBigLinkedList,,1381966998140.518fba7c69f069bef99658ca172f9009.,
  hostname=e1521.halxg.cloudera.com,36020,1381967631098, seqNum=968466 
 ip:e1521.halxg.cloudera.com:36020
 2013-10-16 16:58:27,164 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable:org.apache.hadoop.hbase.client.ScannerCallable.openScanner(ScannerCallable.java:312)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:157)
   at 
 org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:58)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:116)
   at 
 org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:94)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.nextScanner(ClientScanner.java:271)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.initializeScannerInConstruction(ClientScanner.java:176)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:171)
   at 
 org.apache.hadoop.hbase.client.ClientScanner.init(ClientScanner.java:110)
   at org.apache.hadoop.hbase.client.HTable.getScanner(HTable.java:719)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.restart(TableRecordReaderImpl.java:86)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.initialize(TableRecordReaderImpl.java:148)
   at 
 org.apache.hadoop.hbase.mapreduce.TableRecordReader.initialize(TableRecordReader.java:125)
   at 
 org.apache.hadoop.hbase.mapreduce.TableInputFormatBase.createRecordReader(TableInputFormatBase.java:135)
   at 
 org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.init(MapTask.java:491)
   at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:734)
   at org.apache.hadoop.mapred.MapTask.run(MapTask.java:339)
   at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
   at java.security.AccessController.doPrivileged(Native Method)
   at javax.security.auth.Subject.doAs(Subject.java:415)
   at 
 org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1477)
   at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
 2013-10-16 16:58:27,167 INFO [main] 
 org.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl: Current 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
 2013-10-16 16:58:27,175 INFO [main] org.apache.hadoop.mapred.MapTask: Map 
 output collector class = org.apache.hadoop.mapred.MapTask$MapOutputBuffer
 2013-10-16 16:58:27,891 INFO [main] org.apache.hadoop.mapred.MapTask: 
 (EQUATOR) 0 kvi 268435452(1073741808)
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 mapreduce.task.io.sort.mb: 1024
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: soft 
 limit at 858993472
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: 
 bufstart = 0; bufvoid = 1073741824
 2013-10-16 16:58:27,892 INFO [main] org.apache.hadoop.mapred.MapTask: kvstart 
 = 268435452; length = 67108864
 2013-10-16 16:58:27,903 INFO [main] 
 org.apache.hadoop.hbase.client.ScannerCallable: Open 
 scanner=7462140737850801183 for 
 scan={timeRange:[0,9223372036854775807],batch:-1,startRow:,stopRow:\\x08\\x02\\xC2b,loadColumnFamiliesOnDemand:null,totalColumns:1,cacheBlocks:false,families:{meta:[prev]},maxResultSize:-1,maxVersions:1,caching:100}
  on region 
 

[jira] [Commented] (HBASE-9768) Two issues in AsyncProcess

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-9768:
--

+1

 Two issues in AsyncProcess
 --

 Key: HBASE-9768
 URL: https://issues.apache.org/jira/browse/HBASE-9768
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.96.0
Reporter: Jeffrey Zhong
Assignee: Nicolas Liochon
 Fix For: 0.98.0, 0.96.1

 Attachments: 9768.v1.patch


 There may exist two issues in Asyncprocess code as following:
 1)  In Htable#backgroundFlushCommits, we have following code:
 {code}
   if (ap.hasError()) {
 if (!clearBufferOnFail) {
   // if clearBufferOnFailed is not set, we're supposed to keep the 
 failed operation in the
   //  write buffer. This is a questionable feature kept here for 
 backward compatibility
   writeAsyncBuffer.addAll(ap.getFailedOperations());
 }
 RetriesExhaustedWithDetailsException e = ap.getErrors();
 ap.clearErrors();
 throw e;
   }
 {code}
 In a rare situation like the following: 
 When there are some updates ongoing, a client call Put(internally 
 backgroundFlushCommits get triggered). Then comes the issue:
 The first ap.hasError() returns false and the second ap.hasError() returns 
 true. So we could throw exception to caller while writeAsyncBuffer isn't 
 empty.(some updates are still on going).
 If a client retry with different values for the same keys, we could end up 
 with nondeterministic state.
 2) The following code only update cache for the first row. We should update 
 cache for all the regions inside resultForRS because actions are sent to 
 multiple regions per RS
 {code}
   if (failureCount++ == 0) { // We're doing this once per location.
 hConnection.updateCachedLocations(this.tableName, row.getRow(), 
 result, location);
 if (errorsByServer != null) {
   errorsByServer.reportServerError(location);
   canRetry = errorsByServer.canRetryMore();
 }
   }
 {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-7525) A canary monitoring program specifically for regionserver

2013-10-17 Thread stack (JIRA)

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

stack updated HBASE-7525:
-

Fix Version/s: 0.96.1

 A canary monitoring program specifically for regionserver
 -

 Key: HBASE-7525
 URL: https://issues.apache.org/jira/browse/HBASE-7525
 Project: HBase
  Issue Type: New Feature
  Components: monitoring
Affects Versions: 0.94.0
Reporter: takeshi.miao
Priority: Critical
 Fix For: 0.98.0, 0.96.1

 Attachments: HBASE-7525-0.95-v0.patch, HBASE-7525-0.95-v1.patch, 
 HBASE-7525-0.95-v3.patch, HBASE-7525-0.95-v4.patch, HBASE-7525-0.95-v6.patch, 
 HBASE-7525-0.95-v7.patch, HBASE-7525-trunk-v2.patch, 
 HBASE-7525-trunk-v3.patch, HBASE-7525-trunk-v4.patch, HBASE-7525-v0.patch, 
 RegionServerCanary.java


 *Motivation*
 This ticket is to provide a canary monitoring tool specifically for 
 HRegionserver, details as follows
 1. This tool is required by operation team due to they thought that the 
 canary for each region of a HBase is too many for them, so I implemented this 
 coarse-granular one based on the original o.a.h.h.tool.Canary for them
 2. And this tool is implemented by multi-threading, which means the each Get 
 request sent by a thread. the reason I use this way is due to we suffered the 
 region server hung issue by now the root cause is still not clear. so this 
 tool can help operation team to detect hung region server if any.
 *example*
 1. the tool docs
 ./bin/hbase org.apache.hadoop.hbase.tool.RegionServerCanary -help
 Usage: [opts] [regionServerName 1 [regionServrName 2...]]
  regionServerName - FQDN serverName, can use linux command:hostname -f to 
 check your serverName
  where [-opts] are:
-help Show this help and exit.
-eUse regionServerName as regular expression
   which means the regionServerName is regular expression pattern
-f B stop whole program if first error occurs, default is true
-t N timeout for a check, default is 60 (milisecs)
-daemonContinuous check at defined intervals.
-interval N  Interval between checks (sec)
 2. Will send a request to each regionserver in a HBase cluster
 ./bin/hbase org.apache.hadoop.hbase.tool.RegionServerCanary
 3. Will send a request to a regionserver by given name
 ./bin/hbase org.apache.hadoop.hbase.tool.RegionServerCanary rs1.domainname
 4. Will send a request to regionserver(s) by given regular-expression
 /opt/trend/circus-opstool/bin/hbase-canary-monitor-each-regionserver.sh -e 
 rs1.domainname.pattern
 // another example
 ./bin/hbase org.apache.hadoop.hbase.tool.RegionServerCanary -e 
 tw-poc-tm-puppet-hdn[0-9]\{1,2\}.client.tw.trendnet.org
 5. Will send a request to a regionserver and also set a timeout limit for 
 this test
 // query regionserver:rs1.domainname with timeout limit 10sec
 // -f false, means that will not exit this program even test failed
 ./bin/hbase org.apache.hadoop.hbase.tool.RegionServerCanary -f false -t 1 
 rs1.domainname
 // echo 1 if timeout
 echo $?
 6. Will run as daemon mode, which means it will send request to each 
 regionserver periodically
 ./bin/hbase org.apache.hadoop.hbase.tool.RegionServerCanary -daemon



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9776) Test Load And Verify Fails with TableNotEnabledException

2013-10-17 Thread Jeffrey Zhong (JIRA)

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

Jeffrey Zhong updated HBASE-9776:
-

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

Thanks for the review and comments! I've integrated the patch into 0.96 and 
trunk.

 Test Load And Verify Fails with TableNotEnabledException
 

 Key: HBASE-9776
 URL: https://issues.apache.org/jira/browse/HBASE-9776
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.96.0
Reporter: Jeffrey Zhong
Assignee: Jeffrey Zhong
Priority: Minor
 Fix For: 0.98.0, 0.96.1

 Attachments: hbase-9776.patch


 Occasionally IntegrationTestLoadAndVerify failed with the following error. 
 This is caused by RPC retry and the first attempt actually went through 
 successfully and the second retry attempt fails because the table is disabled 
 by the first attempt.
 {code}
 2013-10-10 
 19:55:54,339|beaver.machine|INFO|org.apache.hadoop.hbase.TableNotEnabledException:
  org.apache.hadoop.hbase.TableNotEnabledException: 
 IntegrationTestLoadAndVerify
 2013-10-10 19:55:54,340|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.handler.DisableTableHandler.prepare(DisableTableHandler.java:100)
 2013-10-10 19:55:54,341|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1979)
 2013-10-10 19:55:54,342|beaver.machine|INFO|at 
 org.apache.hadoop.hbase.master.HMaster.disableTable(HMaster.java:1990)
 {code}



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-8741) Scope sequenceid to the region rather than regionserver (WAS: Mutations on Regions in recovery mode might have same sequenceIDs)

2013-10-17 Thread Himanshu Vashishtha (JIRA)

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

Himanshu Vashishtha commented on HBASE-8741:


Right, the pre-commit build which failed above was using 32 bit vm. The 
original issue was a missing boolean member in heap size report, and I filed 
HBASE-9785 for that. Its description explains what was happening in the 
precommit build on 32 bit with this patch. Here is a patch that includes that 
fix. Lets it get tested on the pre-commit build. Thanks.

Yes, this patch ensures that sequenceIds for a region are always appended to 
the WAL in an increasing order. 
Also, TestHLog#testConcurrentWrites() runs a test where three threads are 
writing to one region concurrently. HLogPerformanceEvaluation verify method 
ensures that the records inserted are in order. 

Thanks a lot for taking a look.


 Scope sequenceid to the region rather than regionserver (WAS: Mutations on 
 Regions in recovery mode might have same sequenceIDs)
 

 Key: HBASE-8741
 URL: https://issues.apache.org/jira/browse/HBASE-8741
 Project: HBase
  Issue Type: Bug
  Components: MTTR
Affects Versions: 0.95.1
Reporter: Himanshu Vashishtha
Assignee: Himanshu Vashishtha
 Fix For: 0.98.0

 Attachments: HBASE-8741-trunk-v6.patch, HBASE-8741-v0.patch, 
 HBASE-8741-v2.patch, HBASE-8741-v3.patch, HBASE-8741-v4-again.patch, 
 HBASE-8741-v4-again.patch, HBASE-8741-v4.patch, HBASE-8741-v5-again.patch, 
 HBASE-8741-v5.patch


 Currently, when opening a region, we find the maximum sequence ID from all 
 its HFiles and then set the LogSequenceId of the log (in case the later is at 
 a small value). This works good in recovered.edits case as we are not writing 
 to the region until we have replayed all of its previous edits. 
 With distributed log replay, if we want to enable writes while a region is 
 under recovery, we need to make sure that the logSequenceId  maximum 
 logSequenceId of the old regionserver. Otherwise, we might have a situation 
 where new edits have same (or smaller) sequenceIds. 
 We can store region level information in the WALTrailer, than this scenario 
 could be avoided by:
 a) reading the trailer of the last completed file, i.e., last wal file 
 which has a trailer and,
 b) completely reading the last wal file (this file would not have the 
 trailer, so it needs to be read completely).
 In future, if we switch to multi wal file, we could read the trailer for all 
 completed WAL files, and reading the remaining incomplete files.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-8496) Implement tags and the internals of how a tag should look like

2013-10-17 Thread stack (JIRA)

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

stack updated HBASE-8496:
-

Hadoop Flags: Incompatible change,Reviewed

 Implement tags and the internals of how a tag should look like
 --

 Key: HBASE-8496
 URL: https://issues.apache.org/jira/browse/HBASE-8496
 Project: HBase
  Issue Type: New Feature
Affects Versions: 0.98.0, 0.95.2
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.98.0

 Attachments: Comparison.pdf, HBASE-8496_2.patch, HBASE-8496_3.patch, 
 HBASE-8496_3.patch, HBASE-8496_3.patch, HBASE-8496_4.patch, 
 HBASE-8496_5.patch, HBASE-8496_6.patch, HBASE-8496.patch, 
 Performance_report.xlsx, Tag design.pdf, Tag design_updated.pdf, 
 Tag_In_KV_Buffer_For_reference.patch


 The intent of this JIRA comes from HBASE-7897.
 This would help us to decide on the structure and format of how the tags 
 should look like. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-8496) Implement tags and the internals of how a tag should look like

2013-10-17 Thread stack (JIRA)

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

stack commented on HBASE-8496:
--

Shouldn't this issue have a release note?   I marked it as reviewed and an 
incompatible change (is that right?).  What should we add to the refguide on 
tags?  Or, we are not ready to add anything there just yet?

On the updated design doc:

There is nothing in the way of altering how tags are currently added, right?  
It is just done this way for expediency given so much of the core is still up 
on KV.

The below should be 0 or more... right?

Every KV can have 1 or more tags.

 hmm... nevermind the rest of the comments.  It looks like this design doc. 
is a long way from what was implemented.  np.  We just need a bit of a write up 
on what went in before 0.98.  Can ignore the below.

On slide #3, every tag has a type byte preceeding it?  On slide #3 you don't 
say what a tag is?  Just a run of bytes?

Oh, so looks like the implementation has deviated from the design, right?  OK.  
 Is it written up in short form anywhere?  What was implemented?

The tag structure on slide #5 is different from what is on #3.  On #5 it talks 
of a tagarray (am I being too literal)?

Are there big changes between hfilev2 and hfilev3?  They seem small going by 
this design doc.





 Implement tags and the internals of how a tag should look like
 --

 Key: HBASE-8496
 URL: https://issues.apache.org/jira/browse/HBASE-8496
 Project: HBase
  Issue Type: New Feature
Affects Versions: 0.98.0, 0.95.2
Reporter: ramkrishna.s.vasudevan
Assignee: ramkrishna.s.vasudevan
Priority: Critical
 Fix For: 0.98.0

 Attachments: Comparison.pdf, HBASE-8496_2.patch, HBASE-8496_3.patch, 
 HBASE-8496_3.patch, HBASE-8496_3.patch, HBASE-8496_4.patch, 
 HBASE-8496_5.patch, HBASE-8496_6.patch, HBASE-8496.patch, 
 Performance_report.xlsx, Tag design.pdf, Tag design_updated.pdf, 
 Tag_In_KV_Buffer_For_reference.patch


 The intent of this JIRA comes from HBASE-7897.
 This would help us to decide on the structure and format of how the tags 
 should look like. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9754) Consider eliminating threadlocals from MVCC code

2013-10-17 Thread Hadoop QA (JIRA)

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

Hadoop QA commented on HBASE-9754:
--

{color:red}-1 overall{color}.  Here are the results of testing the latest 
attachment 
  
http://issues.apache.org/jira/secure/attachment/12608987/9754-rp-hregion-v3.txt
  against trunk revision .

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

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

{color:green}+1 hadoop1.0{color}.  The patch compiles against the hadoop 
1.0 profile.

{color:green}+1 hadoop2.0{color}.  The patch compiles against the hadoop 
2.0 profile.

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

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

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

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

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

{color:red}-1 site{color}.  The patch appears to cause mvn site goal to 
fail.

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

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

This message is automatically generated.

 Consider eliminating threadlocals from MVCC code
 

 Key: HBASE-9754
 URL: https://issues.apache.org/jira/browse/HBASE-9754
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Ted Yu
 Fix For: 0.98.0

 Attachments: 9754-rp-0.txt, 9754-rp-1.txt, 9754-rp-hregion.txt, 
 9754-rp-hregion-v2.txt, 9754-rp-hregion-v3.txt


 Brought up by [~vrodionov] and [~yuzhih...@gmail.com].
 Currently we use ThreadLocals to communicate the current readpoint between a 
 RegionScanner and the Store\{File}Scanner's down the stack.
 Since ThreadLocals are not cheap we should consider whether it is possible to 
 pass the readpoint through the call stack instead.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Updated] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Lars Hofhansl (JIRA)

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

Lars Hofhansl updated HBASE-9747:
-

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

Committed to all branches. Thanks Aditya.

 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Fix For: 0.98.0, 0.94.13, 0.96.1

 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9789) Change logging for Coprocessor exec call to trace

2013-10-17 Thread Hudson (JIRA)

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

Hudson commented on HBASE-9789:
---

FAILURE: Integrated in HBase-0.94-security #315 (See 
[https://builds.apache.org/job/HBase-0.94-security/315/])
HBASE-9789 Change logging for Coprocessor exec call to trace (larsh: rev 
1533178)
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
* 
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java


 Change logging for Coprocessor exec call to trace
 -

 Key: HBASE-9789
 URL: https://issues.apache.org/jira/browse/HBASE-9789
 Project: HBase
  Issue Type: Bug
Reporter: Lars Hofhansl
Assignee: Lars Hofhansl
 Fix For: 0.94.13

 Attachments: 9789.txt


 Currently both RegionServer and HMaster log (debug) this
 Received dynamic protocol exec call with protocolName class
 on each coprocessor exec call.
 We just filled our RegionServer log with 160gb of these since we're making 
 heavy use of coprocessors.
 I would like to change this to trace. Any objections?



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9747) PrefixFilter with OR condition gives wrong results

2013-10-17 Thread Aditya Kishore (JIRA)

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

Aditya Kishore commented on HBASE-9747:
---

Thanks Lars.

 PrefixFilter with OR condition gives wrong results
 --

 Key: HBASE-9747
 URL: https://issues.apache.org/jira/browse/HBASE-9747
 Project: HBase
  Issue Type: Bug
  Components: Filters
Affects Versions: 0.95.2, 0.94.9
Reporter: Deepa Remesh
Assignee: Aditya Kishore
 Fix For: 0.98.0, 0.94.13, 0.96.1

 Attachments: HBASE-9747_0.94.patch, HBASE-9747.patch


 PrefixFilter when used with a SingleColumnValueFilter with an OR condition 
 gives wrong results. In below example, each filter when evaluated separately 
 gives 1 row each. The OR condition with the two filters gives 3 rows instead 
 of 2. Repro below:
 create 't1', 'f1'
 put 't1','a1','f1:q2','111'
 put 't1','b1','f1:q1','112'
 put 't1','c1','f1:q1','113'
 hbase(main):020:0 scan 't1', {FILTER = PrefixFilter ('b') OR 
 SingleColumnValueFilter('f1', 'q1', =, 'binary:113')}
 ROWCOLUMN+CELL
  a1column=f1:q2, 
 timestamp=1381468905492, value=111
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
  c1column=f1:q1, 
 timestamp=1381468905549, value=113
 3 row(s) in 0.1020 seconds
 hbase(main):021:0 scan 't1', {FILTER = PrefixFilter ('b')}
 ROWCOLUMN+CELL
  b1column=f1:q1, 
 timestamp=1381468905518, value=112
 1 row(s) in 0.0150 seconds
 hbase(main):002:0 scan 't1', {FILTER = SingleColumnValueFilter('f1', 'q1', 
 =, 'binary:113')}
 ROWCOLUMN+CELL
  c1column=f1:q1, 
 timestamp=1381469178679, value=113
 1 row(s) in 0.0140 seconds



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (HBASE-9749) Custom threadpool for Coprocessor obtained HTables

2013-10-17 Thread Hudson (JIRA)

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

Hudson commented on HBASE-9749:
---

FAILURE: Integrated in HBase-0.94-security #315 (See 
[https://builds.apache.org/job/HBase-0.94-security/315/])
HBASE-9749: Custom threadpool for Coprocessor obtained HTables (jyates: rev 
1533185)
* 
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/CoprocessorEnvironment.java
* /hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/client/HTable.java
* 
/hbase/branches/0.94/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
* 
/hbase/branches/0.94/src/test/java/org/apache/hadoop/hbase/coprocessor/TestOpenTableInCoprocessor.java


 Custom threadpool for Coprocessor obtained HTables
 --

 Key: HBASE-9749
 URL: https://issues.apache.org/jira/browse/HBASE-9749
 Project: HBase
  Issue Type: Improvement
  Components: Coprocessors
Affects Versions: 0.98.0, 0.94.13, 0.96.1
Reporter: Jesse Yates
Assignee: Jesse Yates
 Fix For: 0.98.0, 0.96.0, 0.94.13

 Attachments: hbase-9749-0.94-v0.patch, hbase-9749-0.96-v0.patch, 
 hbase-9749-trunk-v0.patch


 Coprocessors currently can only use the default HTable constructor that takes 
 a single thread-pool.This is overly constrictive for coprocessors that desire 
 tighter control over their resources.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


  1   2   3   >