[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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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.
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
[ 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.
[ 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.
[ 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
[ 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.
[ 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
[ 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
[ 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()
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
[ 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
[ 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
[ 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
[ 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
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
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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
[ 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
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
[ 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
[ 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
[ 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.
[ 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.
[ 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.
[ 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
[ 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
[ 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
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
[ 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
[ 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
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
[ 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
[ 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
[ 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
[ 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
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
[ 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
[ 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
[ 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
[ 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