You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "Lars Francke (JIRA)" <ji...@apache.org> on 2010/01/21 02:50:54 UTC

[jira] Updated: (HBASE-1373) Update Thrift to use compact/framed protocol

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

Lars Francke updated HBASE-1373:
--------------------------------

    Attachment: javadoc.patch
                HBase-65+1373.patch

HBASE-65 wasn't actually fixed with HBASE-1360, that must have been a misunderstanding. I'll do both here and I've got a patch ready that implements parts of both tickets.

This patch adds various command line switches. It also solves HBASE-65 but it wasn't sensible to split those in two different patches.

* Option to use a framed transport
* Option to use the compact protocol
* Option to bind to a specific IP address

One change in behavior but I don't think anyone is affected by it and I'd call it a bugfix (although it makes the command line parsing ugly).

bin/hbase should print usage information when invoked without an argument. The current Thrift server starts when no argument is provided: {{bin/hbase thrift}}. With this change the Thrift server prints usage information when called this way and only starts when the {{start}} argument is provided.

Apart from this everything should stay the same as before as the defaults stayed the same.

I've also added documentation for this but as english is my second language I'd appreciate a review.
For the links in the documentation to actually work we need to generate Javadoc for the generated Thrift classes but those classes are currently excluded in the build.xml. I've added another patch that deals with this and another outdated exclusion (onelab was completely removed in September). I decided not to open another issue as it seems we might move to Maven anytime now but I can if you want.

This also lacks the option for a nonblocking server. This is because the Nonblocking Servers require a TNonblockingServerSocket which doesn't support an InetSocketAddress. So the IP address binding only works for the normal TThreadPoolServer. I'll have a look at this and will open a ticket for Thrift.

tl;dr: The patch fixes HBASE-65 + HBASE-1373 _except_ that it only supports the old ThreadpoolServer and not the Nonblocking servers. This is for review only. I'll try to fix the rest.

> Update Thrift to use compact/framed protocol
> --------------------------------------------
>
>                 Key: HBASE-1373
>                 URL: https://issues.apache.org/jira/browse/HBASE-1373
>             Project: Hadoop HBase
>          Issue Type: Improvement
>          Components: thrift
>            Reporter: Andrew Purtell
>            Assignee: Lars Francke
>            Priority: Minor
>             Fix For: 0.21.0
>
>         Attachments: HBase-65+1373.patch, javadoc.patch
>
>
> TCompactProtocol/TFramedTransport and nonblocking server option promises better efficiency and performance improvements. Consider moving HBase Thrift bits to this when full platform support is ready for TCompactProtocol. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.