[jira] [Commented] (HBASE-3872) Hole in split transaction rollback; edits to .META. need to be rolled back even if it seems like they didn't make it

2011-06-23 Thread Aaron Kimball (JIRA)

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

Aaron Kimball commented on HBASE-3872:
--

The parent is *not* in .META. There is a hole in the list of regions, as seen 
by running a scan on .META. from the hbase shell and/or by looking at table.jsp 
on the master server's website.

Also, running {{hbase hbck}} identified one of the missing regions (chain of 
regions in table ... is broken; edges does not contain rowkey). It did not 
notice the second missing region. Is that because the process that checks the 
region chain gives up after the first error? Or could that be unrelated?

 Hole in split transaction rollback; edits to .META. need to be rolled back 
 even if it seems like they didn't make it
 

 Key: HBASE-3872
 URL: https://issues.apache.org/jira/browse/HBASE-3872
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
Reporter: stack
Assignee: stack
Priority: Blocker
 Fix For: 0.90.4

 Attachments: 3872.txt


 Saw this interesting one on a cluster of ours.  The cluster was configured 
 with too few handlers so lots of the phenomeneon where actions were queued 
 but then by the time they got into the server and tried respond to the 
 client, the client had disconnected because of the timeout of 60 seconds.  
 Well, the meta edits for a split were queued at the regionserver carrying 
 .META. and by the time it went to write back, the client had gone (the first 
 insert of parent offline with daughter regions added as info:splitA and 
 info:splitB).  The client presumed the edits failed and 'successfully' rolled 
 back the transaction (failing to undo .META. edits thinking they didn't go 
 through).
 A few minutes later the .META. scanner on master runs.  It sees 'no 
 references' in daughters -- the daughters had been cleaned up as part of the 
 split transaction rollback -- so it thinks its safe to delete the parent.
 Two things:
 + Tighten up check in master... need to check daughter region at least exists 
 and possibly the daughter region has an entry in .META.
 + Dependent on the edit that fails, schedule rollback edits though it will 
 seem like they didn't go through.
 This is pretty critical one.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-3996) Support multiple tables and scanners as input to the mapper in map/reduce jobs

2011-06-23 Thread Eran Kutner (JIRA)

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

Eran Kutner updated HBASE-3996:
---

Attachment: (was: MultiTableInputFormat.patch)

 Support multiple tables and scanners as input to the mapper in map/reduce jobs
 --

 Key: HBASE-3996
 URL: https://issues.apache.org/jira/browse/HBASE-3996
 Project: HBase
  Issue Type: Improvement
  Components: mapreduce
Reporter: Eran Kutner
 Fix For: 0.90.4

 Attachments: MultiTableInputFormat.patch, 
 TestMultiTableInputFormat.java.patch


 It seems that in many cases feeding data from multiple tables or multiple 
 scanners on a single table can save a lot of time when running map/reduce 
 jobs.
 I propose a new MultiTableInputFormat class that would allow doing this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3996) Support multiple tables and scanners as input to the mapper in map/reduce jobs

2011-06-23 Thread Eran Kutner (JIRA)

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

Eran Kutner commented on HBASE-3996:


Thanks stack.

I hope I finally got Eclipse to properly manage the tabs and line lengths (I'm 
not really a Java developer so this is all new to me).

{quote}In TableSplit you create an HTable instance. Do you need to? And when 
you create it, though I believe it will be less of a problem going forward, can 
you use the constructor that takes a Configuration and table name? Is there a 
close in Split interface? If so, you might want to call close of your HTable in 
there. (Where is it used? Each split needs its own HTable?) Use the constructor 
that takes a Configuration here too...{quote}

There are actually two issues here, I added the configuration and closed the 
table in getSplits(), that's the easy one.
HTable per split is needed because it is used for reading the data from the 
split by the cluster nodes when the job is running. However, in order to 
support passing the configuration, I move the Htable creation out of TableSplit 
and into MutiTableInputFormatBase. I also modified TableRecordReaderImpl to 
close the table after reading all the records in the split. I believe this is 
OK, and the tests are passing fine, but it wasn't like that in the existing, 
single table, implementation so I hope I'm not missing (and messing) anything.

{quote}You don't need the e.printStackTrace in below{quote}
Right, removed and fixed the spelling in the warning.

{quote}By any chance is the code here in MultiTableInputFormatBase where we are 
checking start and end rows copied from elsewhere?{quote}
It's copied from TableInputFormatBase, as I said my code is closely based on 
the single table code.

{quote}You remove the hashCode in TableSplit. Should it have one?{quote}
I actually don't know if it needs one or not (it does seem to work fine without 
it) but I didn't remove it intentionally. I wrote my original code based on the 
0.90.3 branch and when I copied to trunk I missed this change. It's back 
now.{quote}

{quote}therwise patch looks great. Test too.{quote}
Thanks!

Hope that's it.


 Support multiple tables and scanners as input to the mapper in map/reduce jobs
 --

 Key: HBASE-3996
 URL: https://issues.apache.org/jira/browse/HBASE-3996
 Project: HBase
  Issue Type: Improvement
  Components: mapreduce
Reporter: Eran Kutner
 Fix For: 0.90.4

 Attachments: MultiTableInputFormat.patch, 
 TestMultiTableInputFormat.java.patch


 It seems that in many cases feeding data from multiple tables or multiple 
 scanners on a single table can save a lot of time when running map/reduce 
 jobs.
 I propose a new MultiTableInputFormat class that would allow doing this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-3996) Support multiple tables and scanners as input to the mapper in map/reduce jobs

2011-06-23 Thread Eran Kutner (JIRA)

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

Eran Kutner updated HBASE-3996:
---

Attachment: (was: MultiTableInputFormat.patch)

 Support multiple tables and scanners as input to the mapper in map/reduce jobs
 --

 Key: HBASE-3996
 URL: https://issues.apache.org/jira/browse/HBASE-3996
 Project: HBase
  Issue Type: Improvement
  Components: mapreduce
Reporter: Eran Kutner
 Fix For: 0.90.4

 Attachments: MultiTableInputFormat.patch, 
 TestMultiTableInputFormat.java.patch


 It seems that in many cases feeding data from multiple tables or multiple 
 scanners on a single table can save a lot of time when running map/reduce 
 jobs.
 I propose a new MultiTableInputFormat class that would allow doing this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-3996) Support multiple tables and scanners as input to the mapper in map/reduce jobs

2011-06-23 Thread Eran Kutner (JIRA)

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

Eran Kutner updated HBASE-3996:
---

Attachment: MultiTableInputFormat.patch

 Support multiple tables and scanners as input to the mapper in map/reduce jobs
 --

 Key: HBASE-3996
 URL: https://issues.apache.org/jira/browse/HBASE-3996
 Project: HBase
  Issue Type: Improvement
  Components: mapreduce
Reporter: Eran Kutner
 Fix For: 0.90.4

 Attachments: MultiTableInputFormat.patch, 
 TestMultiTableInputFormat.java.patch


 It seems that in many cases feeding data from multiple tables or multiple 
 scanners on a single table can save a lot of time when running map/reduce 
 jobs.
 I propose a new MultiTableInputFormat class that would allow doing this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Akash Ashok (JIRA)

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

Akash Ashok updated HBASE-4013:
---

Status: Patch Available  (was: Open)

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Priority: Minor
  Labels: zookeeper

 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Akash Ashok (JIRA)

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

Akash Ashok updated HBASE-4013:
---

Status: Open  (was: Patch Available)

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Priority: Minor
  Labels: zookeeper

 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Akash Ashok (JIRA)

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

Akash Ashok updated HBASE-4013:
---

Attachment: hbase-4013.patch

ZooKeeperListener made abstract 

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Akash Ashok (JIRA)

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

Akash Ashok updated HBASE-4013:
---

Status: Patch Available  (was: Open)

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3872) Hole in split transaction rollback; edits to .META. need to be rolled back even if it seems like they didn't make it

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-3872:
---

For the case Aaron described, should HRegionServer.splitRegion() inform 
LogRoller that a split is pending so that Hlog roll can be delayed ?

 Hole in split transaction rollback; edits to .META. need to be rolled back 
 even if it seems like they didn't make it
 

 Key: HBASE-3872
 URL: https://issues.apache.org/jira/browse/HBASE-3872
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
Reporter: stack
Assignee: stack
Priority: Blocker
 Fix For: 0.90.4

 Attachments: 3872.txt


 Saw this interesting one on a cluster of ours.  The cluster was configured 
 with too few handlers so lots of the phenomeneon where actions were queued 
 but then by the time they got into the server and tried respond to the 
 client, the client had disconnected because of the timeout of 60 seconds.  
 Well, the meta edits for a split were queued at the regionserver carrying 
 .META. and by the time it went to write back, the client had gone (the first 
 insert of parent offline with daughter regions added as info:splitA and 
 info:splitB).  The client presumed the edits failed and 'successfully' rolled 
 back the transaction (failing to undo .META. edits thinking they didn't go 
 through).
 A few minutes later the .META. scanner on master runs.  It sees 'no 
 references' in daughters -- the daughters had been cleaned up as part of the 
 split transaction rollback -- so it thinks its safe to delete the parent.
 Two things:
 + Tighten up check in master... need to check daughter region at least exists 
 and possibly the daughter region has an entry in .META.
 + Dependent on the edit that fails, schedule rollback edits though it will 
 seem like they didn't go through.
 This is pretty critical one.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-4013:
---

Test suite hung at TestSplitTransactionOnCluster which passed in HBase-TRUNK 
build 1987
May not be related to this change though.

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Issue Comment Edited] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-4013 at 6/23/11 3:16 PM:


Test suite hung at TestSplitTransactionOnCluster which passed in HBase-TRUNK 
build 1987
May not be related to this change though.
Running TestSplitTransactionOnCluster manually, the test passed.

TestDistributedLogSplitting failed in testThreeRSAbort.

  was (Author: yuzhih...@gmail.com):
Test suite hung at TestSplitTransactionOnCluster which passed in 
HBase-TRUNK build 1987
May not be related to this change though.
  
 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/
---

Review request for hbase and Todd Lipcon.


Summary
---

A few fixes from Hadoop IPC that we should probably cross-port into our copy:

* HADOOP-7227: remove the protocol version check at call time
* HADOOP-7146: fix a socket leak in server
* HADOOP-7121: fix behavior when response serialization throws an exception
* HADOOP-7346: send back nicer error response when client is using an out 
of date IPC version


This addresses bug HBASE-3939.
https://issues.apache.org/jira/browse/HBASE-3939


Diffs
-

  
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
  /src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
  
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
  /src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 1137280 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
  /src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
  /src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
  /src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
  /src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
  
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 

Diff: https://reviews.apache.org/r/951/diff


Testing
---

Test suite passed.


Thanks,

Ted



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Assigned] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu reassigned HBASE-4013:
-

Assignee: Akash Ashok

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Assignee: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Assigned] (HBASE-4008) Problem while stopping HBase

2011-06-23 Thread Akash Ashok (JIRA)

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

Akash Ashok reassigned HBASE-4008:
--

Assignee: Akash Ashok

 Problem while stopping HBase
 

 Key: HBASE-4008
 URL: https://issues.apache.org/jira/browse/HBASE-4008
 Project: HBase
  Issue Type: Bug
  Components: scripts
Reporter: Akash Ashok
Assignee: Akash Ashok
Priority: Minor

 stop-hbase.sh stops the server successfully if and only if the server is 
 instantiated properly. 
 When u Run 
 start-hbase.sh; sleep 10; stop-hbase.sh; ( This works totally fine and has no 
 issues )
 Whereas when u run 
 start-hbase.sh; stop-hbase.sh; ( This never stops the server and neither the 
 server gets initialized and starts properly )

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-4010:
---

I did some initial performance test on a cluster with 7 region servers (4GB 
heap).
OS is:
{noformat}
Linux ciq.com 2.6.18-53.el5 #1 SMP Wed Oct 10 16:34:19 EDT 2007 x86_64 x86_64 
x86_64 GNU/Linux
{noformat}
Creating table with 1000 regions took 37 seconds pre-4010
It took 32 seconds with 4010-0.90.txt applied.

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Jean-Daniel Cryans (JIRA)

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

Jean-Daniel Cryans commented on HBASE-4010:
---

Can you tell where most of the time is spent? Should we create the HRegions in 
parallel?

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-4010:
---

I did profile HMaster. The numbers were logged at client side.

I have been thinking about using executor service to make HRegion creation more 
parallel. But I think that would help if there're many many regions when 
creating the table. I am not sure how common that use case is.

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-4010:
---

Do you know how long re-creating a table with a few hundred regions took ?
From my test result, the duration can be shortened 13%.
If that's still unsatisfactory, shall we address it in another JIRA ?

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Issue Comment Edited] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-4010 at 6/23/11 5:31 PM:


I did not profile HMaster. The numbers were logged at client side.

I have been thinking about using executor service to make HRegion creation more 
parallel. But I think that would help if there're many many regions when 
creating the table. I am not sure how common that use case is.

  was (Author: yuzhih...@gmail.com):
I did profile HMaster. The numbers were logged at client side.

I have been thinking about using executor service to make HRegion creation more 
parallel. But I think that would help if there're many many regions when 
creating the table. I am not sure how common that use case is.
  
 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Jean-Daniel Cryans (JIRA)

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

Jean-Daniel Cryans commented on HBASE-4010:
---

We have a use case where were are re-creating a table with a few hundred 
regions as part of a MR job, it's currently taking a lot of time so anything 
that helps is welcome.

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4018) Attach memcached as secondary block cache to regionserver

2011-06-23 Thread Li Pi (JIRA)

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

Li Pi commented on HBASE-4018:
--

Java has a JNI domain sockets library - though at that point you might as well 
go JNI - Memcached directly. But my C-fu is weaker than expected, and this is 
taking me longer than it should.

 Attach memcached as secondary block cache to regionserver
 -

 Key: HBASE-4018
 URL: https://issues.apache.org/jira/browse/HBASE-4018
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Li Pi
Assignee: Li Pi

 Currently, block caches are limited by heap size, which is limited by garbage 
 collection times in Java.
 We can get around this by using memcached w/JNI as a secondary block cache. 
 This should be faster than the linux file system's caching, and allow us to 
 very quickly gain access to a high quality slab allocated cache.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3872) Hole in split transaction rollback; edits to .META. need to be rolled back even if it seems like they didn't make it

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-3872:
---

From HBaseFsck.WorkItemRegion.run():
{code}
ListHRegionInfo regions = server.getOnlineRegions();
{code}
I think the above error log just means that UNKNOWN_REGION is in the memory of 
regionserver-redacted.

 Hole in split transaction rollback; edits to .META. need to be rolled back 
 even if it seems like they didn't make it
 

 Key: HBASE-3872
 URL: https://issues.apache.org/jira/browse/HBASE-3872
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
Reporter: stack
Assignee: stack
Priority: Blocker
 Fix For: 0.90.4

 Attachments: 3872.txt


 Saw this interesting one on a cluster of ours.  The cluster was configured 
 with too few handlers so lots of the phenomeneon where actions were queued 
 but then by the time they got into the server and tried respond to the 
 client, the client had disconnected because of the timeout of 60 seconds.  
 Well, the meta edits for a split were queued at the regionserver carrying 
 .META. and by the time it went to write back, the client had gone (the first 
 insert of parent offline with daughter regions added as info:splitA and 
 info:splitB).  The client presumed the edits failed and 'successfully' rolled 
 back the transaction (failing to undo .META. edits thinking they didn't go 
 through).
 A few minutes later the .META. scanner on master runs.  It sees 'no 
 references' in daughters -- the daughters had been cleaned up as part of the 
 split transaction rollback -- so it thinks its safe to delete the parent.
 Two things:
 + Tighten up check in master... need to check daughter region at least exists 
 and possibly the daughter region has an entry in .META.
 + Dependent on the edit that fails, schedule rollback edits though it will 
 seem like they didn't go through.
 This is pretty critical one.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Assigned] (HBASE-4016) HRegion.incrementColumnValue() doesn't have a consistent behavior when the field that we are incrementing is less than 8 bytes long

2011-06-23 Thread Li Pi (JIRA)

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

Li Pi reassigned HBASE-4016:


Assignee: Li Pi

 HRegion.incrementColumnValue() doesn't have a consistent behavior when the 
 field that we are incrementing is less than 8 bytes long
 ---

 Key: HBASE-4016
 URL: https://issues.apache.org/jira/browse/HBASE-4016
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
 Environment: $ cat /etc/release 
   Oracle Solaris 11 Express snv_151a X86
  Copyright (c) 2010, Oracle and/or its affiliates.  All rights reserved.
Assembled 04 November 2010
 $ java -version
 java version 1.6.0_21
 Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
 Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
Reporter: Praveen Kumar
Assignee: Li Pi

 We wanted to use an int (32-bit) atomic counter and we initialize it with a 
 certain value when the row is created. Later, we increment the counter using 
 HTable.incrementColumnValue(). This call results in one of two outcomes. 
 1. The call succeeds, but the column value now is a long (64-bit) and is 
 corrupt (by additional data that was in the buffer read).
 2. Throws IOException/IllegalArgumentException.
 Java.io.IOException: java.io.IOException: java.lang.IllegalArgumentException: 
 offset (65547) + length (8) exceed the capacity of the array: 65551
 at 
 org.apache.hadoop.hbase.util.Bytes.explainWrongLengthOrOffset(Bytes.java:502)
 at org.apache.hadoop.hbase.util.Bytes.toLong(Bytes.java:480)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.incrementColumnValue(HRegion.java:3139)
 at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.incrementColumnValue(HRegionServer.java:2468)
 at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
 at 
 org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
 Based on our incorrect usage of counters (initializing it with a 32 bit value 
 and later using it as a counter), I would expect that we fail consistently 
 with mode 2 rather than silently corrupting data with mode 1. However, the 
 exception is thrown only rarely and I am not sure what determines the case to 
 be executed. I am wondering if this has something to do with flush.
 Here is a HRegion unit test that can reproduce this problem. 
 http://paste.lisp.org/display/122822
 We modified our code to initialize the counter with a 64 bit value. But, I 
 was also wondering if something has to change in 
 HRegion.incrementColumnValue() to handle inconsistent counter sizes 
 gracefully without corrupting existing data.
 Please let me know if you need additional information.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3852) ThriftServer leaks scanners

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-3852:
---

In scannerGetList():
{code}
if (null == results) {
return new ArrayListTRowResult();
}
{code}
Can we close the scanner before returning ?

We still leave the scanner in scannerMap.
HTable.ClientScanner would check whether the scanner has been closed.

 ThriftServer leaks scanners
 ---

 Key: HBASE-3852
 URL: https://issues.apache.org/jira/browse/HBASE-3852
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.90.2
Reporter: Jean-Daniel Cryans
Priority: Critical
 Fix For: 0.92.0


 The scannerMap in ThriftServer relies on the user to clean it by closing the 
 scanner. If that doesn't happen, the ResultScanner will stay in the thrift 
 server's memory and if any pre-fetching was done, it will also start 
 accumulating Results (with all their data).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4020) testWritesWhileGetting unit test needs to be fixed.

2011-06-23 Thread Vandana Ayyalasomayajula (JIRA)
testWritesWhileGetting unit test needs to be fixed. 
--

 Key: HBASE-4020
 URL: https://issues.apache.org/jira/browse/HBASE-4020
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.90.3
 Environment: OS: RHEL 5.4
Reporter: Vandana Ayyalasomayajula
 Fix For: 0.90.3


The unit test testWritesWhileGetting in the 
org.apache.hadoop.hbase.regionserver.TestHRegion test needs to be corrected. It 
is current using the table name and method name for initializing a HRegion as 
testWritesWhileScanning. It should be testWritesWhileGetting. 

Due to this, the test fails as the initHRegion method fails in creating a new 
HRegion for the test. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3872) Hole in split transaction rollback; edits to .META. need to be rolled back even if it seems like they didn't make it

2011-06-23 Thread Aaron Kimball (JIRA)

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

Aaron Kimball commented on HBASE-3872:
--

Stack,

I'm still working on getting more log data available. Hopefully I can get you 
more info. Here's something interesting: I believe the parent regions are still 
hanging around in HBase regionservers.

hbck reports:

{code}
ERROR: Region UNKNOWN_REGION on regionserver-redacted:60020, 
key=4f424608930f7b3ae7c05c49e2bac2c1, not on HDFS or in META but deployed on 
regionserver-redacted:60020
ERROR: Region UNKNOWN_REGION on regionserver-redacted:60020, 
key=81c5fb35e10f8ef61da78bbba28db7f9, not on HDFS or in META but deployed on 
regionserver-redacted:60020
{code}

The region keys match those of the split parents which were abandoned when the 
successful rollback didn't restore the parent entries in {{.META.}}. Is there 
a way to force these back to storefiles on disk, and then manually add them to 
{{.META.}}?

 Hole in split transaction rollback; edits to .META. need to be rolled back 
 even if it seems like they didn't make it
 

 Key: HBASE-3872
 URL: https://issues.apache.org/jira/browse/HBASE-3872
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
Reporter: stack
Assignee: stack
Priority: Blocker
 Fix For: 0.90.4

 Attachments: 3872.txt


 Saw this interesting one on a cluster of ours.  The cluster was configured 
 with too few handlers so lots of the phenomeneon where actions were queued 
 but then by the time they got into the server and tried respond to the 
 client, the client had disconnected because of the timeout of 60 seconds.  
 Well, the meta edits for a split were queued at the regionserver carrying 
 .META. and by the time it went to write back, the client had gone (the first 
 insert of parent offline with daughter regions added as info:splitA and 
 info:splitB).  The client presumed the edits failed and 'successfully' rolled 
 back the transaction (failing to undo .META. edits thinking they didn't go 
 through).
 A few minutes later the .META. scanner on master runs.  It sees 'no 
 references' in daughters -- the daughters had been cleaned up as part of the 
 split transaction rollback -- so it thinks its safe to delete the parent.
 Two things:
 + Tighten up check in master... need to check daughter region at least exists 
 and possibly the daughter region has an entry in .META.
 + Dependent on the edit that fails, schedule rollback edits though it will 
 seem like they didn't go through.
 This is pretty critical one.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4020) testWritesWhileGetting unit test needs to be fixed.

2011-06-23 Thread Vandana Ayyalasomayajula (JIRA)

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

Vandana Ayyalasomayajula updated HBASE-4020:


Fix Version/s: (was: 0.90.3)
   0.92.0

 testWritesWhileGetting unit test needs to be fixed. 
 --

 Key: HBASE-4020
 URL: https://issues.apache.org/jira/browse/HBASE-4020
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.90.3
 Environment: OS: RHEL 5.4
Reporter: Vandana Ayyalasomayajula
 Fix For: 0.92.0


 The unit test testWritesWhileGetting in the 
 org.apache.hadoop.hbase.regionserver.TestHRegion test needs to be corrected. 
 It is current using the table name and method name for initializing a HRegion 
 as testWritesWhileScanning. It should be testWritesWhileGetting. 
 Due to this, the test fails as the initHRegion method fails in creating a 
 new HRegion for the test. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-1744) Thrift server to match the new java api.

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-1744:
---

I tried to apply latest patch on TRUNK.
It doesn't compile:
{code}
/home/hadoop/hbase/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftHBaseClientHandler.java:[41,23]
 unreported exception java.io.IOException; must be caught or declared to be 
thrown

/home/hadoop/hbase/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftServer.java:[135,17]
 cannot find symbol
symbol  : constructor 
TNonblockingServer(org.apache.hadoop.hbase.thrift2.generated.HbaseClient.Processor,org.apache.thrift.transport.TNonblockingServerTransport,org.apache.thrift.transport.TFramedTransport.Factory,org.apache.thrift.protocol.TProtocolFactory)
location: class org.apache.thrift.server.TNonblockingServer

/home/hadoop/hbase/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftServer.java:[138,17]
 cannot find symbol
symbol  : constructor 
THsHaServer(org.apache.hadoop.hbase.thrift2.generated.HbaseClient.Processor,org.apache.thrift.transport.TNonblockingServerTransport,org.apache.thrift.transport.TFramedTransport.Factory,org.apache.thrift.protocol.TProtocolFactory)
location: class org.apache.thrift.server.THsHaServer

/home/hadoop/hbase/src/main/java/org/apache/hadoop/hbase/thrift2/ThriftServer.java:[165,15]
 cannot find symbol
symbol  : constructor 
TThreadPoolServer(org.apache.hadoop.hbase.thrift2.generated.HbaseClient.Processor,org.apache.thrift.transport.TServerTransport,org.apache.thrift.transport.TTransportFactory,org.apache.thrift.protocol.TProtocolFactory)
location: class org.apache.thrift.server.TThreadPoolServer
{code}

@Lars, can you take a look ?

Thanks

 Thrift server to match the new java api.
 

 Key: HBASE-1744
 URL: https://issues.apache.org/jira/browse/HBASE-1744
 Project: HBase
  Issue Type: Improvement
  Components: thrift
Reporter: Tim Sell
Assignee: Lars Francke
Priority: Critical
 Fix For: 0.92.0

 Attachments: HBASE-1744.2.patch, HBASE-1744.preview.1.patch, 
 thriftexperiment.patch


 This mutateRows, etc.. is a little confusing compared to the new cleaner java 
 client.
 Thinking of ways to make a thrift client that is just as elegant. something 
 like:
 void put(1:Bytes table, 2:TPut put) throws (1:IOError io)
 with:
 struct TColumn {
   1:Bytes family,
   2:Bytes qualifier,
   3:i64 timestamp
 }
 struct TPut {
   1:Bytes row,
   2:mapTColumn, Bytes values
 }
 This creates more verbose rpc  than if the columns in TPut were just 
 mapBytes, mapBytes, Bytes, but that is harder to fit timestamps into and 
 still be intuitive from say python.
 Presumably the goal of a thrift gateway is to be easy first.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/#review899
---

Ship it!


I guess it's fine if it's just a crossport, maybe clean the white spaces?

- Jean-Daniel


On 2011-06-23 15:30:03, Ted Yu wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/951/
bq.  ---
bq.  
bq.  (Updated 2011-06-23 15:30:03)
bq.  
bq.  
bq.  Review request for hbase and Todd Lipcon.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  A few fixes from Hadoop IPC that we should probably cross-port into our 
copy:
bq.  
bq.  * HADOOP-7227: remove the protocol version check at call time
bq.  * HADOOP-7146: fix a socket leak in server
bq.  * HADOOP-7121: fix behavior when response serialization throws an 
exception
bq.  * HADOOP-7346: send back nicer error response when client is using an 
out of date IPC version
bq.  
bq.  
bq.  This addresses bug HBASE-3939.
bq.  https://issues.apache.org/jira/browse/HBASE-3939
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
bq./src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 
1137280 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
bq.
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 
bq.  
bq.  Diff: https://reviews.apache.org/r/951/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  Test suite passed.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ted
bq.  
bq.



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-1744) Thrift server to match the new java api.

2011-06-23 Thread Tim Sell (JIRA)

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

Tim Sell commented on HBASE-1744:
-

I have been working on this, continuing work I did at the berlin buzzwords 
hbase hackday.
https://github.com/tims/hbase-thrift

I'll make a patch the fixes I made to Lars stuff and upload it here asap.

 Thrift server to match the new java api.
 

 Key: HBASE-1744
 URL: https://issues.apache.org/jira/browse/HBASE-1744
 Project: HBase
  Issue Type: Improvement
  Components: thrift
Reporter: Tim Sell
Assignee: Lars Francke
Priority: Critical
 Fix For: 0.92.0

 Attachments: HBASE-1744.2.patch, HBASE-1744.preview.1.patch, 
 thriftexperiment.patch


 This mutateRows, etc.. is a little confusing compared to the new cleaner java 
 client.
 Thinking of ways to make a thrift client that is just as elegant. something 
 like:
 void put(1:Bytes table, 2:TPut put) throws (1:IOError io)
 with:
 struct TColumn {
   1:Bytes family,
   2:Bytes qualifier,
   3:i64 timestamp
 }
 struct TPut {
   1:Bytes row,
   2:mapTColumn, Bytes values
 }
 This creates more verbose rpc  than if the columns in TPut were just 
 mapBytes, mapBytes, Bytes, but that is harder to fit timestamps into and 
 still be intuitive from say python.
 Presumably the goal of a thrift gateway is to be easy first.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Jean-Daniel Cryans (JIRA)

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

Jean-Daniel Cryans commented on HBASE-4010:
---

Yes another jira.

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4016) HRegion.incrementColumnValue() doesn't have a consistent behavior when the field that we are incrementing is less than 8 bytes long

2011-06-23 Thread Li Pi (JIRA)

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

Li Pi commented on HBASE-4016:
--

Fixed this. Btw - Praveen, your test is broken. even if you comment outl
long result;
try {
result = region.incrementColumnValue(row1, fam1, qual1, 1, true);
fail(Expected to fail here);
} catch (Exception exception) {
// Expected.
},

the assertICV's still fail.

 HRegion.incrementColumnValue() doesn't have a consistent behavior when the 
 field that we are incrementing is less than 8 bytes long
 ---

 Key: HBASE-4016
 URL: https://issues.apache.org/jira/browse/HBASE-4016
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
 Environment: $ cat /etc/release 
   Oracle Solaris 11 Express snv_151a X86
  Copyright (c) 2010, Oracle and/or its affiliates.  All rights reserved.
Assembled 04 November 2010
 $ java -version
 java version 1.6.0_21
 Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
 Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
Reporter: Praveen Kumar
Assignee: Li Pi

 We wanted to use an int (32-bit) atomic counter and we initialize it with a 
 certain value when the row is created. Later, we increment the counter using 
 HTable.incrementColumnValue(). This call results in one of two outcomes. 
 1. The call succeeds, but the column value now is a long (64-bit) and is 
 corrupt (by additional data that was in the buffer read).
 2. Throws IOException/IllegalArgumentException.
 Java.io.IOException: java.io.IOException: java.lang.IllegalArgumentException: 
 offset (65547) + length (8) exceed the capacity of the array: 65551
 at 
 org.apache.hadoop.hbase.util.Bytes.explainWrongLengthOrOffset(Bytes.java:502)
 at org.apache.hadoop.hbase.util.Bytes.toLong(Bytes.java:480)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.incrementColumnValue(HRegion.java:3139)
 at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.incrementColumnValue(HRegionServer.java:2468)
 at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
 at 
 org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
 Based on our incorrect usage of counters (initializing it with a 32 bit value 
 and later using it as a counter), I would expect that we fail consistently 
 with mode 2 rather than silently corrupting data with mode 1. However, the 
 exception is thrown only rarely and I am not sure what determines the case to 
 be executed. I am wondering if this has something to do with flush.
 Here is a HRegion unit test that can reproduce this problem. 
 http://paste.lisp.org/display/122822
 We modified our code to initialize the counter with a 64 bit value. But, I 
 was also wondering if something has to change in 
 HRegion.incrementColumnValue() to handle inconsistent counter sizes 
 gracefully without corrupting existing data.
 Please let me know if you need additional information.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4021) Further parallelize HMaster.createTable()

2011-06-23 Thread Ted Yu (JIRA)
Further parallelize HMaster.createTable()
-

 Key: HBASE-4021
 URL: https://issues.apache.org/jira/browse/HBASE-4021
 Project: HBase
  Issue Type: Improvement
Reporter: Ted Yu


HBASE-4010 paved the way for further speedup in HMaster.createTable().
Namely, the creation of HRegions should be performed using ExecutorService if 
the number of regions cross certain threshold. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/
---

(Updated 2011-06-23 20:31:21.703117)


Review request for hbase and Todd Lipcon.


Changes
---

Removed white spaces.


Summary
---

A few fixes from Hadoop IPC that we should probably cross-port into our copy:

* HADOOP-7227: remove the protocol version check at call time
* HADOOP-7146: fix a socket leak in server
* HADOOP-7121: fix behavior when response serialization throws an exception
* HADOOP-7346: send back nicer error response when client is using an out 
of date IPC version


This addresses bug HBASE-3939.
https://issues.apache.org/jira/browse/HBASE-3939


Diffs (updated)
-

  
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
  /src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
  
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
  /src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 1137280 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
  /src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
  /src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
  /src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
  /src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
  /src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
  
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 

Diff: https://reviews.apache.org/r/951/diff


Testing
---

Test suite passed.


Thanks,

Ted



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/#review900
---


What kind of testing did you do with this? We should test old-new RPC to make 
sure the error messages come out OK


/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
https://reviews.apache.org/r/951/#comment1943

we should check this against old versions of HBase -- the constants I put 
in this code are hadoop RPC version numbers, which might not correspond to 
hbase IPC version numbers.

ie we should start a trunk server, then try to connect to it from an 0.90 
shell, 0.89 shell, 0.20 shell, and make sure it works correctly.


- Todd


On 2011-06-23 20:31:21, Ted Yu wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/951/
bq.  ---
bq.  
bq.  (Updated 2011-06-23 20:31:21)
bq.  
bq.  
bq.  Review request for hbase and Todd Lipcon.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  A few fixes from Hadoop IPC that we should probably cross-port into our 
copy:
bq.  
bq.  * HADOOP-7227: remove the protocol version check at call time
bq.  * HADOOP-7146: fix a socket leak in server
bq.  * HADOOP-7121: fix behavior when response serialization throws an 
exception
bq.  * HADOOP-7346: send back nicer error response when client is using an 
out of date IPC version
bq.  
bq.  
bq.  This addresses bug HBASE-3939.
bq.  https://issues.apache.org/jira/browse/HBASE-3939
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
bq./src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 
1137280 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
bq.
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 
bq.  
bq.  Diff: https://reviews.apache.org/r/951/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  Test suite passed.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ted
bq.  
bq.



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/#review901
---



/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
https://reviews.apache.org/r/951/#comment1944

I checked CURRENT_VERSION field back to 0.20 codebase.
It was 3 back then.
I am not sure which baseline corresponded to version 2.


- Ted


On 2011-06-23 20:31:21, Ted Yu wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/951/
bq.  ---
bq.  
bq.  (Updated 2011-06-23 20:31:21)
bq.  
bq.  
bq.  Review request for hbase and Todd Lipcon.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  A few fixes from Hadoop IPC that we should probably cross-port into our 
copy:
bq.  
bq.  * HADOOP-7227: remove the protocol version check at call time
bq.  * HADOOP-7146: fix a socket leak in server
bq.  * HADOOP-7121: fix behavior when response serialization throws an 
exception
bq.  * HADOOP-7346: send back nicer error response when client is using an 
out of date IPC version
bq.  
bq.  
bq.  This addresses bug HBASE-3939.
bq.  https://issues.apache.org/jira/browse/HBASE-3939
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
bq./src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 
1137280 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
bq.
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 
bq.  
bq.  Diff: https://reviews.apache.org/r/951/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  Test suite passed.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ted
bq.  
bq.



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--



bq.  On 2011-06-23 20:51:31, Ted Yu wrote:
bq.   /src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java, line 1026
bq.   https://reviews.apache.org/r/951/diff/1/?file=21581#file21581line1026
bq.  
bq.   I checked CURRENT_VERSION field back to 0.20 codebase.
bq.   It was 3 back then.
bq.   I am not sure which baseline corresponded to version 2.

did you try starting a server with trunk and connecting with an older version? 
It should spit out a nice error message instead of an EOFException. If you can 
confirm that, then I'll be +1.


- Todd


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/#review901
---


On 2011-06-23 20:31:21, Ted Yu wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/951/
bq.  ---
bq.  
bq.  (Updated 2011-06-23 20:31:21)
bq.  
bq.  
bq.  Review request for hbase and Todd Lipcon.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  A few fixes from Hadoop IPC that we should probably cross-port into our 
copy:
bq.  
bq.  * HADOOP-7227: remove the protocol version check at call time
bq.  * HADOOP-7146: fix a socket leak in server
bq.  * HADOOP-7121: fix behavior when response serialization throws an 
exception
bq.  * HADOOP-7346: send back nicer error response when client is using an 
out of date IPC version
bq.  
bq.  
bq.  This addresses bug HBASE-3939.
bq.  https://issues.apache.org/jira/browse/HBASE-3939
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
bq./src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 
1137280 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
bq.
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 
bq.  
bq.  Diff: https://reviews.apache.org/r/951/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  Test suite passed.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ted
bq.  
bq.



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4023) print out hbase configuration properties in hbase shell if -d (--debug) is supplied

2011-06-23 Thread Eugene Koontz (JIRA)
print out hbase configuration properties in hbase shell if -d (--debug) is 
supplied
---

 Key: HBASE-4023
 URL: https://issues.apache.org/jira/browse/HBASE-4023
 Project: HBase
  Issue Type: Improvement
Reporter: Eugene Koontz
Priority: Minor


hbase shell --debug should show configuration information to help debug 
client-side problems.

As Lars George says, puts @hbase.configuration.getProps() if @DEBUG should 
work, along with some ruby mangling to print [the properties] line by line.



--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4022) Shell reports error on space prefixed colfam name

2011-06-23 Thread Lars George (JIRA)
Shell reports error on space prefixed colfam name
-

 Key: HBASE-4022
 URL: https://issues.apache.org/jira/browse/HBASE-4022
 Project: HBase
  Issue Type: Bug
Reporter: Lars George
Priority: Minor


See this test:

{noformat}
hbase(main):002:0 create 'test', ' cf'

hbase(main):003:0 scan 'test'
ROW   COLUMN+CELL   

  
0 row(s) in 0.1050 seconds

hbase(main):004:0 describe 'test'
DESCRIPTION 
   ENABLED  
  
{NAME = 'test', FAMILIES = [{NAME = ' cf', BLOOMFILTER = 'NONE', 
REPLICATION_SCOPE = '0', COMPRESSION = 'NO true   

NE', VERSIONS = '3', TTL = '2147483647', BLOCKSIZE = '65536', IN_MEMORY = 
'false', BLOCKCACHE = 'true'}]}
   
1 row(s) in 0.0540 seconds

hbase(main):005:0 put 'test', 'r1', ' cf:1', 'v1'
0 row(s) in 0.0580 seconds

hbase(main):006:0 scan 'test', { COLUMNS = [' cf'] }
ROW   COLUMN+CELL   

  

ERROR: Unknown column family! Valid column names:  cf

Here is some help for this command:
Scan a table; pass table name and optionally a dictionary of scanner
specifications.  Scanner specifications may include one or more of:
TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,
or COLUMNS. If no columns are specified, all columns will be scanned.
To scan all members of a column family, leave the qualifier empty as in
'col_family:'.

Some examples:

 hbase scan '.META.'
 hbase scan '.META.', {COLUMNS = 'info:regioninfo'}
 hbase scan 't1', {COLUMNS = ['c1', 'c2'], LIMIT = 10, STARTROW = 'xyz'}
 hbase scan 't1', {FILTER = 
org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}
 hbase scan 't1', {COLUMNS = 'c1', TIMERANGE = [1303668804, 1303668904]}

For experts, there is an additional option -- CACHE_BLOCKS -- which
switches block caching for the scanner on (true) or off (false).  By
default it is enabled.  Examples:

 hbase scan 't1', {COLUMNS = ['c1', 'c2'], CACHE_BLOCKS = false}
8:57 PM
haha
8:58 PM
hbase(main):008:0 scan 'test'  
ROW   COLUMN+CELL   

  
r1   column= cf:1, 
timestamp=1308855379447, value=v1   
  
1 row(s) in 0.0450 seconds
{noformat}

We should handle this better.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4022) Shell reports error on space prefixed colfam name

2011-06-23 Thread Lars George (JIRA)

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

Lars George commented on HBASE-4022:


I also tried \x20cf:1 etc. to no avail.

 Shell reports error on space prefixed colfam name
 -

 Key: HBASE-4022
 URL: https://issues.apache.org/jira/browse/HBASE-4022
 Project: HBase
  Issue Type: Bug
Reporter: Lars George
Priority: Minor

 See this test:
 {noformat}
 hbase(main):002:0 create 'test', ' cf'
 hbase(main):003:0 scan 'test'
 ROW   COLUMN+CELL 
   
   
 0 row(s) in 0.1050 seconds
 hbase(main):004:0 describe 'test'
 DESCRIPTION   
  ENABLED  
   
 {NAME = 'test', FAMILIES = [{NAME = ' cf', BLOOMFILTER = 'NONE', 
 REPLICATION_SCOPE = '0', COMPRESSION = 'NO true 
   
 NE', VERSIONS = '3', TTL = '2147483647', BLOCKSIZE = '65536', IN_MEMORY = 
 'false', BLOCKCACHE = 'true'}]}  
  
 1 row(s) in 0.0540 seconds
 hbase(main):005:0 put 'test', 'r1', ' cf:1', 'v1'
 0 row(s) in 0.0580 seconds
 hbase(main):006:0 scan 'test', { COLUMNS = [' cf'] }
 ROW   COLUMN+CELL 
   
   
 ERROR: Unknown column family! Valid column names:  cf
 Here is some help for this command:
 Scan a table; pass table name and optionally a dictionary of scanner
 specifications.  Scanner specifications may include one or more of:
 TIMERANGE, FILTER, LIMIT, STARTROW, STOPROW, TIMESTAMP, MAXLENGTH,
 or COLUMNS. If no columns are specified, all columns will be scanned.
 To scan all members of a column family, leave the qualifier empty as in
 'col_family:'.
 Some examples:
  hbase scan '.META.'
  hbase scan '.META.', {COLUMNS = 'info:regioninfo'}
  hbase scan 't1', {COLUMNS = ['c1', 'c2'], LIMIT = 10, STARTROW = 'xyz'}
  hbase scan 't1', {FILTER = 
 org.apache.hadoop.hbase.filter.ColumnPaginationFilter.new(1, 0)}
  hbase scan 't1', {COLUMNS = 'c1', TIMERANGE = [1303668804, 1303668904]}
 For experts, there is an additional option -- CACHE_BLOCKS -- which
 switches block caching for the scanner on (true) or off (false).  By
 default it is enabled.  Examples:
  hbase scan 't1', {COLUMNS = ['c1', 'c2'], CACHE_BLOCKS = false}
 8:57 PM
 haha
 8:58 PM
 hbase(main):008:0 scan 'test'  
 ROW   COLUMN+CELL 
   
   
 r1   column= cf:1, 
 timestamp=1308855379447, value=v1 
 
 1 row(s) in 0.0450 seconds
 {noformat}
 We should handle this better.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-2842) Support BloomFilter error rate on a per-family basis

2011-06-23 Thread Nicolas Spiegelberg (JIRA)

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

Nicolas Spiegelberg commented on HBASE-2842:


@Ming: is this being actively worked on?  We have an intern who will be working 
on this task soon if not.

 Support BloomFilter error rate on a per-family basis
 

 Key: HBASE-2842
 URL: https://issues.apache.org/jira/browse/HBASE-2842
 Project: HBase
  Issue Type: Improvement
  Components: filters, ipc, regionserver, rest, thrift
Reporter: Nicolas Spiegelberg
Assignee: Ming Ma
Priority: Minor

 The error rate for bloom filters is currently set by the 
 io.hfile.bloom.error.rate global variable.  Todd suggested at the last HUG 
 that it would be nice to have per-family config options instead.  Trace the 
 Bloom Type code to implement this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Assigned] (HBASE-2842) Support BloomFilter error rate on a per-family basis

2011-06-23 Thread Nicolas Spiegelberg (JIRA)

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

Nicolas Spiegelberg reassigned HBASE-2842:
--

Assignee: nileema shingte  (was: Ming Ma)

 Support BloomFilter error rate on a per-family basis
 

 Key: HBASE-2842
 URL: https://issues.apache.org/jira/browse/HBASE-2842
 Project: HBase
  Issue Type: Improvement
  Components: filters, ipc, regionserver, rest, thrift
Reporter: Nicolas Spiegelberg
Assignee: nileema shingte
Priority: Minor

 The error rate for bloom filters is currently set by the 
 io.hfile.bloom.error.rate global variable.  Todd suggested at the last HUG 
 that it would be nice to have per-family config options instead.  Trace the 
 Bloom Type code to implement this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-2842) Support BloomFilter error rate on a per-family basis

2011-06-23 Thread Ming Ma (JIRA)

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

Ming Ma commented on HBASE-2842:


Nicolas, feel free to take it. Thanks.

 Support BloomFilter error rate on a per-family basis
 

 Key: HBASE-2842
 URL: https://issues.apache.org/jira/browse/HBASE-2842
 Project: HBase
  Issue Type: Improvement
  Components: filters, ipc, regionserver, rest, thrift
Reporter: Nicolas Spiegelberg
Assignee: Ming Ma
Priority: Minor

 The error rate for bloom filters is currently set by the 
 io.hfile.bloom.error.rate global variable.  Todd suggested at the last HUG 
 that it would be nice to have per-family config options instead.  Trace the 
 Bloom Type code to implement this.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4016) HRegion.incrementColumnValue() doesn't have a consistent behavior when the field that we are incrementing is less than 8 bytes long

2011-06-23 Thread Li Pi (JIRA)

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

Li Pi updated HBASE-4016:
-

Attachment: 4016.diff

checks length of stored value before incrementing.

 HRegion.incrementColumnValue() doesn't have a consistent behavior when the 
 field that we are incrementing is less than 8 bytes long
 ---

 Key: HBASE-4016
 URL: https://issues.apache.org/jira/browse/HBASE-4016
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
 Environment: $ cat /etc/release 
   Oracle Solaris 11 Express snv_151a X86
  Copyright (c) 2010, Oracle and/or its affiliates.  All rights reserved.
Assembled 04 November 2010
 $ java -version
 java version 1.6.0_21
 Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
 Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
Reporter: Praveen Kumar
Assignee: Li Pi
 Attachments: 4016.diff


 We wanted to use an int (32-bit) atomic counter and we initialize it with a 
 certain value when the row is created. Later, we increment the counter using 
 HTable.incrementColumnValue(). This call results in one of two outcomes. 
 1. The call succeeds, but the column value now is a long (64-bit) and is 
 corrupt (by additional data that was in the buffer read).
 2. Throws IOException/IllegalArgumentException.
 Java.io.IOException: java.io.IOException: java.lang.IllegalArgumentException: 
 offset (65547) + length (8) exceed the capacity of the array: 65551
 at 
 org.apache.hadoop.hbase.util.Bytes.explainWrongLengthOrOffset(Bytes.java:502)
 at org.apache.hadoop.hbase.util.Bytes.toLong(Bytes.java:480)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.incrementColumnValue(HRegion.java:3139)
 at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.incrementColumnValue(HRegionServer.java:2468)
 at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
 at 
 org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
 Based on our incorrect usage of counters (initializing it with a 32 bit value 
 and later using it as a counter), I would expect that we fail consistently 
 with mode 2 rather than silently corrupting data with mode 1. However, the 
 exception is thrown only rarely and I am not sure what determines the case to 
 be executed. I am wondering if this has something to do with flush.
 Here is a HRegion unit test that can reproduce this problem. 
 http://paste.lisp.org/display/122822
 We modified our code to initialize the counter with a 64 bit value. But, I 
 was also wondering if something has to change in 
 HRegion.incrementColumnValue() to handle inconsistent counter sizes 
 gracefully without corrupting existing data.
 Please let me know if you need additional information.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4016) HRegion.incrementColumnValue() doesn't have a consistent behavior when the field that we are incrementing is less than 8 bytes long

2011-06-23 Thread Li Pi (JIRA)

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

Li Pi commented on HBASE-4016:
--

also fixed Praveen's tests.

 HRegion.incrementColumnValue() doesn't have a consistent behavior when the 
 field that we are incrementing is less than 8 bytes long
 ---

 Key: HBASE-4016
 URL: https://issues.apache.org/jira/browse/HBASE-4016
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Affects Versions: 0.90.3
 Environment: $ cat /etc/release 
   Oracle Solaris 11 Express snv_151a X86
  Copyright (c) 2010, Oracle and/or its affiliates.  All rights reserved.
Assembled 04 November 2010
 $ java -version
 java version 1.6.0_21
 Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
 Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
Reporter: Praveen Kumar
Assignee: Li Pi
 Attachments: 4016.diff


 We wanted to use an int (32-bit) atomic counter and we initialize it with a 
 certain value when the row is created. Later, we increment the counter using 
 HTable.incrementColumnValue(). This call results in one of two outcomes. 
 1. The call succeeds, but the column value now is a long (64-bit) and is 
 corrupt (by additional data that was in the buffer read).
 2. Throws IOException/IllegalArgumentException.
 Java.io.IOException: java.io.IOException: java.lang.IllegalArgumentException: 
 offset (65547) + length (8) exceed the capacity of the array: 65551
 at 
 org.apache.hadoop.hbase.util.Bytes.explainWrongLengthOrOffset(Bytes.java:502)
 at org.apache.hadoop.hbase.util.Bytes.toLong(Bytes.java:480)
 at 
 org.apache.hadoop.hbase.regionserver.HRegion.incrementColumnValue(HRegion.java:3139)
 at 
 org.apache.hadoop.hbase.regionserver.HRegionServer.incrementColumnValue(HRegionServer.java:2468)
 at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source)
 at 
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at org.apache.hadoop.hbase.ipc.HBaseRPC$Server.call(HBaseRPC.java:570)
 at 
 org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1039)
 Based on our incorrect usage of counters (initializing it with a 32 bit value 
 and later using it as a counter), I would expect that we fail consistently 
 with mode 2 rather than silently corrupting data with mode 1. However, the 
 exception is thrown only rarely and I am not sure what determines the case to 
 be executed. I am wondering if this has something to do with flush.
 Here is a HRegion unit test that can reproduce this problem. 
 http://paste.lisp.org/display/122822
 We modified our code to initialize the counter with a 64 bit value. But, I 
 was also wondering if something has to change in 
 HRegion.incrementColumnValue() to handle inconsistent counter sizes 
 gracefully without corrupting existing data.
 Please let me know if you need additional information.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4010) HMaster.createTable could be heavily optimized

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-4010:
---

I apologize for presenting incorrect performance data.

The 37 second was for a 0.90.3 cluster which had run for a while.
The 32 second was for a 0.90.4 cluster started fresh without 4010-0.90.txt 
applied - I copied the correct hbase-0.90.4-SNAPSHOT.jar but forgot to rename 
it.

So I started the cluster with the hbase-0.90.4-SNAPSHOT.jar which has 
4010-0.90.txt applied
I created two tables with 1000 regions. The first took 16 seconds and the 
second took 15 seconds.

 HMaster.createTable could be heavily optimized
 --

 Key: HBASE-4010
 URL: https://issues.apache.org/jira/browse/HBASE-4010
 Project: HBase
  Issue Type: Improvement
Affects Versions: 0.90.3
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 4010-0.90.txt, 4010-v2.txt, 4010-v3.txt, 4010-v5.txt


 Looking at the createTable method in HMaster (the one that's private), we 
 seem to be very inefficient:
  - We set the enabled flag for the table for every region (should be done 
 only once).
  - Every time we create a new region we create a new HLog and then close it 
 (reuse one instead or see if it's really necessary).
  - We do one RPC to .META. per region (we should batch put).
 This should provide drastic speedups even for those creating tables with just 
 50 regions.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4023) print out hbase configuration properties in hbase shell if -d (--debug) is supplied

2011-06-23 Thread Lars George (JIRA)

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

Lars George updated HBASE-4023:
---

Attachment: HBASE-4023.patch

I tried this patch, put the printout is bad. We need someone with Ruby 1337 to 
make this pretty. Also, we should make this a function and call it in 'debug' 
too.

 print out hbase configuration properties in hbase shell if -d (--debug) is 
 supplied
 ---

 Key: HBASE-4023
 URL: https://issues.apache.org/jira/browse/HBASE-4023
 Project: HBase
  Issue Type: Improvement
Reporter: Eugene Koontz
Priority: Minor
 Attachments: HBASE-4023.patch


 hbase shell --debug should show configuration information to help debug 
 client-side problems.
 As Lars George says, puts @hbase.configuration.getProps() if @DEBUG should 
 work, along with some ruby mangling to print [the properties] line by line.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4023) print out hbase configuration properties in hbase shell if -d (--debug) is supplied

2011-06-23 Thread Lars George (JIRA)

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

Lars George updated HBASE-4023:
---

Attachment: HBASE-4023-2.patch

Here a much better version, printing at both occasions and nicely sorted. Only 
thing left I cannot figure is the final nil printed at the end of the dump.

 print out hbase configuration properties in hbase shell if -d (--debug) is 
 supplied
 ---

 Key: HBASE-4023
 URL: https://issues.apache.org/jira/browse/HBASE-4023
 Project: HBase
  Issue Type: Improvement
Reporter: Eugene Koontz
Priority: Minor
 Attachments: HBASE-4023-2.patch, HBASE-4023.patch


 hbase shell --debug should show configuration information to help debug 
 client-side problems.
 As Lars George says, puts @hbase.configuration.getProps() if @DEBUG should 
 work, along with some ruby mangling to print [the properties] line by line.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-3939) Some crossports of Hadoop IPC fixes

2011-06-23 Thread jirapos...@reviews.apache.org (JIRA)

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

jirapos...@reviews.apache.org commented on HBASE-3939:
--


---
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/951/#review903
---



/src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java
https://reviews.apache.org/r/951/#comment1946

I tried to start cluster with hbase-0.91.0-SNAPSHOT
First time I encountered conversion failure (HBASE-451)
I removed hdfs:/hbase and started again.

Table creation request from 0.90.4 client got:

java.lang.IllegalArgumentException: Not a host:port pair: 
ciq.com,6,1308866059399


- Ted


On 2011-06-23 20:31:21, Ted Yu wrote:
bq.  
bq.  ---
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/951/
bq.  ---
bq.  
bq.  (Updated 2011-06-23 20:31:21)
bq.  
bq.  
bq.  Review request for hbase and Todd Lipcon.
bq.  
bq.  
bq.  Summary
bq.  ---
bq.  
bq.  A few fixes from Hadoop IPC that we should probably cross-port into our 
copy:
bq.  
bq.  * HADOOP-7227: remove the protocol version check at call time
bq.  * HADOOP-7146: fix a socket leak in server
bq.  * HADOOP-7121: fix behavior when response serialization throws an 
exception
bq.  * HADOOP-7346: send back nicer error response when client is using an 
out of date IPC version
bq.  
bq.  
bq.  This addresses bug HBASE-3939.
bq.  https://issues.apache.org/jira/browse/HBASE-3939
bq.  
bq.  
bq.  Diffs
bq.  -
bq.  
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateProtocol.java 
1137262 
bq.
/src/main/java/org/apache/hadoop/hbase/coprocessor/BaseEndpointCoprocessor.java 
1137262 
bq./src/main/java/org/apache/hadoop/hbase/ipc/CoprocessorProtocol.java 
1137280 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseClient.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRPC.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseRpcMetrics.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HBaseServer.java 1137362 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HMasterRegionInterface.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/HRegionInterface.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Invocation.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/ProtocolSignature.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcEngine.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/RpcServer.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/ipc/Status.java PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/VersionedProtocol.java 
PRE-CREATION 
bq./src/main/java/org/apache/hadoop/hbase/ipc/WritableRpcEngine.java 
1134732 
bq./src/main/java/org/apache/hadoop/hbase/master/HMaster.java 1134732 
bq./src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java 
1134732 
bq.
/src/test/java/org/apache/hadoop/hbase/regionserver/TestServerCustomProtocol.java
 1137280 
bq.  
bq.  Diff: https://reviews.apache.org/r/951/diff
bq.  
bq.  
bq.  Testing
bq.  ---
bq.  
bq.  Test suite passed.
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Ted
bq.  
bq.



 Some crossports of Hadoop IPC fixes
 ---

 Key: HBASE-3939
 URL: https://issues.apache.org/jira/browse/HBASE-3939
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Todd Lipcon
Assignee: Ted Yu
 Fix For: 0.92.0

 Attachments: 3939-v2.txt, 3939-v3.txt, 3939.txt


 A few fixes from Hadoop IPC that we should probably cross-port into our copy:
 - HADOOP-7227: remove the protocol version check at call time
 - HADOOP-7146: fix a socket leak in server
 - HADOOP-7121: fix behavior when response serialization throws an exception
 - HADOOP-7346: send back nicer error response when client is using an out of 
 date IPC version

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4024) Major compaction may not be triggered, even though region server log says it is triggered

2011-06-23 Thread Suraj Varma (JIRA)
Major compaction may not be triggered, even though region server log says it is 
triggered
-

 Key: HBASE-4024
 URL: https://issues.apache.org/jira/browse/HBASE-4024
 Project: HBase
  Issue Type: Bug
  Components: regionserver
Reporter: Suraj Varma
Priority: Trivial
 Fix For: 0.92.0


The trunk version of regionserver/Store.java, method   ListStoreFile 
compactSelection(ListStoreFile candidates) has this code to determine whether 
major compaction should be done or not: 

// major compact on user action or age (caveat: we have too many files)
boolean majorcompaction = (forcemajor || isMajorCompaction(filesToCompact))
   filesToCompact.size()  this.maxFilesToCompact;


The isMajorCompaction(filesToCompact) method internally determines whether or 
not major compaction is required (and logs this as Major compaction triggered 
...  log message. However, after the call, the compactSelection method 
subsequently applies the filesToCompact.size()  this.maxFilesToCompact check 
which can turn off major compaction. 

This would result in a Major compaction triggered log message without 
actually triggering a major compaction.

The filesToCompact.size() check should probably be moved inside the 
isMajorCompaction(filesToCompact) method.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4018) Attach memcached as secondary block cache to regionserver

2011-06-23 Thread Jason Rutherglen (JIRA)

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

Jason Rutherglen commented on HBASE-4018:
-

bq. fs cache will always be compressed

That's likely where the slowdown occurs.  I agree the values should be 
compressed, in many cases the CPU overhead dwarfs (or should) the extra RAM 
consumption from uncompressing into heap space.  Right now in HBase there's 
effectively a page fault when a block isn't in the cache, eg it then loads from 
disk or network and uncompress'es into RAM while [likely] also removing 
existing pages/blocks.  That seems likely to be problematic.

CPU should be cheaper than RAM especially for HBase which logically should be 
IO bound.  This is also true of search, eg compression of posting lists is 
implemented using vint or PFOR, instead of laying all the ints out on disk.  
Search then becomes CPU bound from the iteration of multiple posting lists.  
HBase is iterating one effective list though the compression algorithm likely 
consumes far greater CPU.  Perhaps it's easily offset with a less intensive 
comp algorithm.

bq. What if some user uses the node, runs a package manager to update things, 
or uses scp to get things off the server? the fs cache is likely to get screwed.

The fs cache becoming invalid in the examples given would be few and far 
between.  More worrisome is the block/page fault issue that I'm assuming can 
happen frequently at the moment.  I guess one could always set the block cache 
to be quite small, and make the block sizes on the small side as well.  
Effectively shifting the problem back to the system IO cache.

I think we need to benchmark.  Also running yet another process on an HBase 
node sounds scary.  

 Attach memcached as secondary block cache to regionserver
 -

 Key: HBASE-4018
 URL: https://issues.apache.org/jira/browse/HBASE-4018
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Li Pi
Assignee: Li Pi

 Currently, block caches are limited by heap size, which is limited by garbage 
 collection times in Java.
 We can get around this by using memcached w/JNI as a secondary block cache. 
 This should be faster than the linux file system's caching, and allow us to 
 very quickly gain access to a high quality slab allocated cache.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Assigned] (HBASE-3852) ThriftServer leaks scanners

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu reassigned HBASE-3852:
-

Assignee: Ted Yu

 ThriftServer leaks scanners
 ---

 Key: HBASE-3852
 URL: https://issues.apache.org/jira/browse/HBASE-3852
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.90.2
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
Priority: Critical
 Fix For: 0.92.0


 The scannerMap in ThriftServer relies on the user to clean it by closing the 
 scanner. If that doesn't happen, the ResultScanner will stay in the thrift 
 server's memory and if any pre-fetching was done, it will also start 
 accumulating Results (with all their data).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4018) Attach memcached as secondary block cache to regionserver

2011-06-23 Thread Jonathan Gray (JIRA)

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

Jonathan Gray commented on HBASE-4018:
--

bq. in many cases the CPU overhead dwarfs (or should) the extra RAM consumption 
from uncompressing into heap space.

This is not necessarily the case.  Many applications see 4-5X compression ratio 
and it means being able to increase your cache capacity by that much.  Some 
applications can also be CPU bound, or the might be IO bound, or they might 
actually be IO bound because they are RAM bound (can't fit working set in 
memory).  In general, it's hard to generalize here I think.

bq. Perhaps it's easily offset with a less intensive comp algorithm.

That's one of the major motivations for an hbase-specific prefix compression 
algorithm

 Attach memcached as secondary block cache to regionserver
 -

 Key: HBASE-4018
 URL: https://issues.apache.org/jira/browse/HBASE-4018
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Li Pi
Assignee: Li Pi

 Currently, block caches are limited by heap size, which is limited by garbage 
 collection times in Java.
 We can get around this by using memcached w/JNI as a secondary block cache. 
 This should be faster than the linux file system's caching, and allow us to 
 very quickly gain access to a high quality slab allocated cache.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4020) testWritesWhileGetting unit test needs to be fixed.

2011-06-23 Thread Vandana Ayyalasomayajula (JIRA)

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

Vandana Ayyalasomayajula updated HBASE-4020:


Status: Patch Available  (was: Open)

This patch contains the changes required to be made in the unit test to pass. I 
have tried it on RHEL 5.4 and it works in that environment. 

 testWritesWhileGetting unit test needs to be fixed. 
 --

 Key: HBASE-4020
 URL: https://issues.apache.org/jira/browse/HBASE-4020
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.90.3
 Environment: OS: RHEL 5.4
Reporter: Vandana Ayyalasomayajula
 Fix For: 0.92.0


 The unit test testWritesWhileGetting in the 
 org.apache.hadoop.hbase.regionserver.TestHRegion test needs to be corrected. 
 It is current using the table name and method name for initializing a HRegion 
 as testWritesWhileScanning. It should be testWritesWhileGetting. 
 Due to this, the test fails as the initHRegion method fails in creating a 
 new HRegion for the test. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4020) testWritesWhileGetting unit test needs to be fixed.

2011-06-23 Thread Vandana Ayyalasomayajula (JIRA)

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

Vandana Ayyalasomayajula updated HBASE-4020:


Attachment: TestHRegion.patch

 testWritesWhileGetting unit test needs to be fixed. 
 --

 Key: HBASE-4020
 URL: https://issues.apache.org/jira/browse/HBASE-4020
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.90.3
 Environment: OS: RHEL 5.4
Reporter: Vandana Ayyalasomayajula
 Fix For: 0.92.0

 Attachments: TestHRegion.patch


 The unit test testWritesWhileGetting in the 
 org.apache.hadoop.hbase.regionserver.TestHRegion test needs to be corrected. 
 It is current using the table name and method name for initializing a HRegion 
 as testWritesWhileScanning. It should be testWritesWhileGetting. 
 Due to this, the test fails as the initHRegion method fails in creating a 
 new HRegion for the test. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4020) testWritesWhileGetting unit test needs to be fixed.

2011-06-23 Thread Vandana Ayyalasomayajula (JIRA)

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

Vandana Ayyalasomayajula updated HBASE-4020:


Status: Open  (was: Patch Available)

 testWritesWhileGetting unit test needs to be fixed. 
 --

 Key: HBASE-4020
 URL: https://issues.apache.org/jira/browse/HBASE-4020
 Project: HBase
  Issue Type: Bug
  Components: test
Affects Versions: 0.90.3
 Environment: OS: RHEL 5.4
Reporter: Vandana Ayyalasomayajula
 Fix For: 0.92.0

 Attachments: TestHRegion.patch


 The unit test testWritesWhileGetting in the 
 org.apache.hadoop.hbase.regionserver.TestHRegion test needs to be corrected. 
 It is current using the table name and method name for initializing a HRegion 
 as testWritesWhileScanning. It should be testWritesWhileGetting. 
 Due to this, the test fails as the initHRegion method fails in creating a 
 new HRegion for the test. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4018) Attach memcached as secondary block cache to regionserver

2011-06-23 Thread Jason Rutherglen (JIRA)

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

Jason Rutherglen commented on HBASE-4018:
-

bq. Some applications can also be CPU bound

The main user of CPU with HBase should be [de]compression?  In just browsing 
the BigTable paper, they mention caching individual key-values for applications 
that require random reads.  If an application is more scan oriented, then the 
block cache makes sense for the duration of the scan of that block.  The paper 
also goes on to describe compression per-row vs. per-block.

bq. That's one of the major motivations for an hbase-specific prefix 
compression algorithm

However that's only for keys which is a separate discussion.

 Attach memcached as secondary block cache to regionserver
 -

 Key: HBASE-4018
 URL: https://issues.apache.org/jira/browse/HBASE-4018
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Li Pi
Assignee: Li Pi

 Currently, block caches are limited by heap size, which is limited by garbage 
 collection times in Java.
 We can get around this by using memcached w/JNI as a secondary block cache. 
 This should be faster than the linux file system's caching, and allow us to 
 very quickly gain access to a high quality slab allocated cache.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-3852) ThriftServer leaks scanners

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-3852:
--

Attachment: 3852.txt

TestThriftServer passes.

 ThriftServer leaks scanners
 ---

 Key: HBASE-3852
 URL: https://issues.apache.org/jira/browse/HBASE-3852
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.90.2
Reporter: Jean-Daniel Cryans
Assignee: Ted Yu
Priority: Critical
 Fix For: 0.92.0

 Attachments: 3852.txt


 The scannerMap in ThriftServer relies on the user to clean it by closing the 
 scanner. If that doesn't happen, the ResultScanner will stay in the thrift 
 server's memory and if any pre-fetching was done, it will also start 
 accumulating Results (with all their data).

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4025) Server startup fails during startup due to failure in loading all table descriptors. We should ignore .logs,.oldlogs,.corrupt,.META.,-ROOT- folders while reading descript

2011-06-23 Thread Subbu M Iyer (JIRA)
Server startup fails during startup due to failure in loading all table 
descriptors. We should ignore .logs,.oldlogs,.corrupt,.META.,-ROOT- folders 
while reading descriptors 
--

 Key: HBASE-4025
 URL: https://issues.apache.org/jira/browse/HBASE-4025
 Project: HBase
  Issue Type: Bug
Affects Versions: 0.92.0
Reporter: Subbu M Iyer


2011-06-23 21:39:52,524 WARN org.apache.hadoop.hbase.monitoring.TaskMonitor: 
Status org.apache.hadoop.hbase.monitoring.MonitoredTaskImpl@2f56f920 appears to 
have been leaked
2011-06-23 21:40:06,465 WARN org.apache.hadoop.hbase.master.HMaster: Failed 
getting all descriptors
java.io.FileNotFoundException: No status for 
hdfs://sjc1-hadoop0.sjc1.carrieriq.com:9000/hbase/.corrupt
at 
org.apache.hadoop.hbase.util.FSUtils.getTableInfoModtime(FSUtils.java:888)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:122)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:149)
at 
org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:340)
at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1138)
2011-06-23 21:40:26,790 WARN org.apache.hadoop.hbase.master.HMaster: Failed 
getting all descriptors
java.io.FileNotFoundException: No status for 
hdfs://sjc1-hadoop0.sjc1.carrieriq.com:9000/hbase/.corrupt
at 
org.apache.hadoop.hbase.util.FSUtils.getTableInfoModtime(FSUtils.java:888)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:122)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:149)
at 
org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:340)
at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1138)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4025) Server startup fails during startup due to failure in loading all table descriptors. We should ignore .logs,.oldlogs,.corrupt,.META.,-ROOT- folders while reading descript

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-4025:
--

Description: 
2011-06-23 21:39:52,524 WARN org.apache.hadoop.hbase.monitoring.TaskMonitor: 
Status org.apache.hadoop.hbase.monitoring.MonitoredTaskImpl@2f56f920 appears to 
have been leaked
2011-06-23 21:40:06,465 WARN org.apache.hadoop.hbase.master.HMaster: Failed 
getting all descriptors
java.io.FileNotFoundException: No status for hdfs://ciq.com:9000/hbase/.corrupt
at 
org.apache.hadoop.hbase.util.FSUtils.getTableInfoModtime(FSUtils.java:888)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:122)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:149)
at 
org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:340)
at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1138)
2011-06-23 21:40:26,790 WARN org.apache.hadoop.hbase.master.HMaster: Failed 
getting all descriptors
java.io.FileNotFoundException: No status for hdfs://ciq.com:9000/hbase/.corrupt
at 
org.apache.hadoop.hbase.util.FSUtils.getTableInfoModtime(FSUtils.java:888)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:122)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:149)
at 
org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:340)
at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1138)

  was:
2011-06-23 21:39:52,524 WARN org.apache.hadoop.hbase.monitoring.TaskMonitor: 
Status org.apache.hadoop.hbase.monitoring.MonitoredTaskImpl@2f56f920 appears to 
have been leaked
2011-06-23 21:40:06,465 WARN org.apache.hadoop.hbase.master.HMaster: Failed 
getting all descriptors
java.io.FileNotFoundException: No status for 
hdfs://sjc1-hadoop0.sjc1.carrieriq.com:9000/hbase/.corrupt
at 
org.apache.hadoop.hbase.util.FSUtils.getTableInfoModtime(FSUtils.java:888)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:122)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:149)
at 
org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:340)
at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1138)
2011-06-23 21:40:26,790 WARN org.apache.hadoop.hbase.master.HMaster: Failed 
getting all descriptors
java.io.FileNotFoundException: No status for 
hdfs://sjc1-hadoop0.sjc1.carrieriq.com:9000/hbase/.corrupt
at 
org.apache.hadoop.hbase.util.FSUtils.getTableInfoModtime(FSUtils.java:888)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.get(FSTableDescriptors.java:122)
at 
org.apache.hadoop.hbase.util.FSTableDescriptors.getAll(FSTableDescriptors.java:149)
at 
org.apache.hadoop.hbase.master.HMaster.getHTableDescriptors(HMaster.java:1442)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at 
org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:340)
at 
org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1138)


 Server startup fails during startup due to failure in loading all table 
 descriptors. We should ignore .logs,.oldlogs,.corrupt,.META.,-ROOT- folders 
 while reading 

[jira] [Commented] (HBASE-4018) Attach memcached as secondary block cache to regionserver

2011-06-23 Thread Jason Rutherglen (JIRA)

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

Jason Rutherglen commented on HBASE-4018:
-

I understand the problem you're trying to solve here a little better, eg, the 
block cache and the GC.  Perhaps JNA [1] can also be used for this use case, eg 
[2] enables direct creation and destruction of an array (unlike direct byte 
buffers which doesn't enable 'direct' destruction).

1. https://github.com/twall/jna

2. https://github.com/twall/jna/blob/master/src/com/sun/jna/Memory.java


 Attach memcached as secondary block cache to regionserver
 -

 Key: HBASE-4018
 URL: https://issues.apache.org/jira/browse/HBASE-4018
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Li Pi
Assignee: Li Pi

 Currently, block caches are limited by heap size, which is limited by garbage 
 collection times in Java.
 We can get around this by using memcached w/JNI as a secondary block cache. 
 This should be faster than the linux file system's caching, and allow us to 
 very quickly gain access to a high quality slab allocated cache.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4026) Use JNA to allocate buffers in the block cache

2011-06-23 Thread Jason Rutherglen (JIRA)
Use JNA to allocate buffers in the block cache
--

 Key: HBASE-4026
 URL: https://issues.apache.org/jira/browse/HBASE-4026
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Jason Rutherglen
Priority: Minor


The HBase block cache can be problematic because it is unpredictable when Java 
will reclaim the unused byte arrays using garbage collection.  

JNA (Java Native Access from Sun/Oracle) provides one possible way to solve 
this problem.

https://github.com/twall/jna

Memory is the name of the class that can be used to test the implementation.

https://github.com/twall/jna/blob/master/src/com/sun/jna/Memory.java

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Issue Comment Edited] (HBASE-4026) Use JNA to allocate buffers in the block cache

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-4026 at 6/24/11 1:27 AM:


According to https://github.com/twall/jna/blob/master/LICENSE, it is GPL

  was (Author: yuzhih...@gmail.com):
According to https://github.com/twall/jna/blob/master/LICENSE, it it GPL
  
 Use JNA to allocate buffers in the block cache
 --

 Key: HBASE-4026
 URL: https://issues.apache.org/jira/browse/HBASE-4026
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Jason Rutherglen
Priority: Minor

 The HBase block cache can be problematic because it is unpredictable when 
 Java will reclaim the unused byte arrays using garbage collection.  
 JNA (Java Native Access from Sun/Oracle) provides one possible way to solve 
 this problem.
 https://github.com/twall/jna
 Memory is the name of the class that can be used to test the implementation.
 https://github.com/twall/jna/blob/master/src/com/sun/jna/Memory.java

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4026) Use JNA to allocate buffers in the block cache

2011-06-23 Thread Jason Rutherglen (JIRA)

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

Jason Rutherglen commented on HBASE-4026:
-

Ok, so we need to abstract out the allocation part of the block cache, then 
implement the same download and install system as we used for LZO.  I guess 
this issue will not have code, instead I should open an issue for 'pluggable 
block cache systems or allocators'.

 Use JNA to allocate buffers in the block cache
 --

 Key: HBASE-4026
 URL: https://issues.apache.org/jira/browse/HBASE-4026
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Jason Rutherglen
Priority: Minor

 The HBase block cache can be problematic because it is unpredictable when 
 Java will reclaim the unused byte arrays using garbage collection.  
 JNA (Java Native Access from Sun/Oracle) provides one possible way to solve 
 this problem.
 https://github.com/twall/jna
 Memory is the name of the class that can be used to test the implementation.
 https://github.com/twall/jna/blob/master/src/com/sun/jna/Memory.java

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4026) Use JNA to allocate buffers in the block cache

2011-06-23 Thread Todd Lipcon (JIRA)

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

Todd Lipcon commented on HBASE-4026:


It's also not hard to just implement this... if you are OK with special casing 
for different JDKs, you just need to grab the {{cleaner}} member and call 
{{clean}}. I do this in hadoop-lzo (apache license).

 Use JNA to allocate buffers in the block cache
 --

 Key: HBASE-4026
 URL: https://issues.apache.org/jira/browse/HBASE-4026
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Jason Rutherglen
Priority: Minor

 The HBase block cache can be problematic because it is unpredictable when 
 Java will reclaim the unused byte arrays using garbage collection.  
 JNA (Java Native Access from Sun/Oracle) provides one possible way to solve 
 this problem.
 https://github.com/twall/jna
 Memory is the name of the class that can be used to test the implementation.
 https://github.com/twall/jna/blob/master/src/com/sun/jna/Memory.java

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4026) Use JNA to allocate buffers in the block cache

2011-06-23 Thread Jason Rutherglen (JIRA)

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

Jason Rutherglen commented on HBASE-4026:
-

@Todd Interesting.  Guess we have a new Jira issue to work on.

 Use JNA to allocate buffers in the block cache
 --

 Key: HBASE-4026
 URL: https://issues.apache.org/jira/browse/HBASE-4026
 Project: HBase
  Issue Type: Improvement
  Components: regionserver
Reporter: Jason Rutherglen
Priority: Minor

 The HBase block cache can be problematic because it is unpredictable when 
 Java will reclaim the unused byte arrays using garbage collection.  
 JNA (Java Native Access from Sun/Oracle) provides one possible way to solve 
 this problem.
 https://github.com/twall/jna
 Memory is the name of the class that can be used to test the implementation.
 https://github.com/twall/jna/blob/master/src/com/sun/jna/Memory.java

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Created] (HBASE-4027) Enable direct byte buffers LruBlockCache

2011-06-23 Thread Jason Rutherglen (JIRA)
Enable direct byte buffers LruBlockCache


 Key: HBASE-4027
 URL: https://issues.apache.org/jira/browse/HBASE-4027
 Project: HBase
  Issue Type: Improvement
Reporter: Jason Rutherglen
Priority: Minor


Java offers the creation of direct byte buffers which are allocated outside of 
the heap.

They need to be manually free'd, which can be accomplished using an documented 
{{clean}} method.

The feature will be optional.  After implementing, we can benchmark for 
differences in speed and garbage collection observances.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4027) Enable direct byte buffers LruBlockCache

2011-06-23 Thread Jason Rutherglen (JIRA)

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

Jason Rutherglen commented on HBASE-4027:
-

Here's the relevant code from hadoop-lzo:

{code}
Object cleaner = buf.getClass().getMethod(cleaner).invoke(buf);
cleaner.getClass().getMethod(clean).invoke(cleaner);
{code}

and

{code}
ByteBuffer.allocateDirect(newSize);
{code}

 Enable direct byte buffers LruBlockCache
 

 Key: HBASE-4027
 URL: https://issues.apache.org/jira/browse/HBASE-4027
 Project: HBase
  Issue Type: Improvement
Reporter: Jason Rutherglen
Priority: Minor

 Java offers the creation of direct byte buffers which are allocated outside 
 of the heap.
 They need to be manually free'd, which can be accomplished using an 
 documented {{clean}} method.
 The feature will be optional.  After implementing, we can benchmark for 
 differences in speed and garbage collection observances.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Commented] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu commented on HBASE-4013:
---

Integrated to TRUNK.

Thanks for the patch Akash.

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Assignee: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-4013:
--

Fix Version/s: 0.92.0

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Assignee: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Fix For: 0.92.0

 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] [Updated] (HBASE-4013) Make ZooKeeperListener Abstract

2011-06-23 Thread Ted Yu (JIRA)

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

Ted Yu updated HBASE-4013:
--

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

 Make ZooKeeperListener Abstract
 ---

 Key: HBASE-4013
 URL: https://issues.apache.org/jira/browse/HBASE-4013
 Project: HBase
  Issue Type: Task
  Components: zookeeper
Reporter: Akash Ashok
Assignee: Akash Ashok
Priority: Minor
  Labels: zookeeper
 Fix For: 0.92.0

 Attachments: hbase-4013.patch


 org.apache.hadoop.hbase.zookeeper.ZooKeeperListener seems to have all 
 unimplemented methods. This should be made an abstract class.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira