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 <la...@gmail.com> on 2010/01/17 23:01:39 UTC

Update of the Thrift library: New dependencies | regeneration of old API?

I've been working on the Thrift API for a few weeks now. As a first
step I've been working on HBASE-1360 to update the current Thrift
version from the current SVN snapshot to the recently released 0.2.0
version. Due to Kay Kay and stacks help this has been resolved now and
is ready to be submitted to trunk.

As a heads up: This introduces three new .jar dependencies.
commons-lang, slf4j-api and slf4j-simple.

The update to the new Thrift version is in preparation for HBASE-1744
but if there are no objections I can regenerate the old Thrift API
with this new Thrift compiler to introduce security and feature
updates. I've run only limited tests on the old version with the new
generated code but there seem to be no problems at all. One new
"feature" would be that the structs now implement a proper hashcode
function instead of always returning 0.

If there is interest I can also backport other things from the new
Thrift server. Namely HBASE-65 ("Thrift Server should have an option
to bind to ip address") and the optional use of the framed transport
and/or the binary protocol.

Cheers,
Lars

Re: Update of the Thrift library: New dependencies | regeneration of old API?

Posted by Ryan Rawson <ry...@gmail.com>.
Great, thanks for that.

Previously, it seemed that 'framed compact' protocol was totally a
win, but like I said, it breaks php connectivity.

-ryan

On Sun, Jan 17, 2010 at 2:12 PM, Lars Francke <la...@gmail.com> wrote:
> On Sun, Jan 17, 2010 at 23:05, Ryan Rawson <ry...@gmail.com> wrote:
>> One thing to watch out for is the framed transport is not supported by
>> all thrift implementations. As an example, php. So we want to not do
>> anything that would restrict thrift access to Java only.
>
> That's true. I've implemented this as command line options. The _new_
> Thrift server now understands the following command line options:
> - framed
> - compact
> - bind <ip address>
> - port <port>
>
> So everyone can customize as to the requirements they have. By default
> the binary protocol is used on an unframed transport (same behavior as
> the current ThriftServer).
>
>> and the optional use of the framed transport and/or the binary protocol
>
> That was meant to say "and/or the compact protocol".
>
> Lars
>

Re: Update of the Thrift library: New dependencies | regeneration of old API?

Posted by stack <st...@duboce.net>.
On Sun, Jan 17, 2010 at 2:12 PM, Lars Francke <la...@gmail.com>wrote:

> On Sun, Jan 17, 2010 at 23:05, Ryan Rawson <ry...@gmail.com> wrote:
> > One thing to watch out for is the framed transport is not supported by
> > all thrift implementations. As an example, php. So we want to not do
> > anything that would restrict thrift access to Java only.
>
> That's true. I've implemented this as command line options. The _new_
> Thrift server now understands the following command line options:
> - framed
> - compact
> - bind <ip address>
> - port <port>
>
> Sweet.
St.Ack



> So everyone can customize as to the requirements they have. By default
> the binary protocol is used on an unframed transport (same behavior as
> the current ThriftServer).
>
> > and the optional use of the framed transport and/or the binary protocol
>
> That was meant to say "and/or the compact protocol".
>
> Lars
>

Re: Update of the Thrift library: New dependencies | regeneration of old API?

Posted by Lars Francke <la...@gmail.com>.
On Sun, Jan 17, 2010 at 23:05, Ryan Rawson <ry...@gmail.com> wrote:
> One thing to watch out for is the framed transport is not supported by
> all thrift implementations. As an example, php. So we want to not do
> anything that would restrict thrift access to Java only.

That's true. I've implemented this as command line options. The _new_
Thrift server now understands the following command line options:
- framed
- compact
- bind <ip address>
- port <port>

So everyone can customize as to the requirements they have. By default
the binary protocol is used on an unframed transport (same behavior as
the current ThriftServer).

> and the optional use of the framed transport and/or the binary protocol

That was meant to say "and/or the compact protocol".

Lars

Re: Update of the Thrift library: New dependencies | regeneration of old API?

Posted by Ryan Rawson <ry...@gmail.com>.
One thing to watch out for is the framed transport is not supported by
all thrift implementations. As an example, php. So we want to not do
anything that would restrict thrift access to Java only.

On Sun, Jan 17, 2010 at 2:01 PM, Lars Francke <la...@gmail.com> wrote:
> I've been working on the Thrift API for a few weeks now. As a first
> step I've been working on HBASE-1360 to update the current Thrift
> version from the current SVN snapshot to the recently released 0.2.0
> version. Due to Kay Kay and stacks help this has been resolved now and
> is ready to be submitted to trunk.
>
> As a heads up: This introduces three new .jar dependencies.
> commons-lang, slf4j-api and slf4j-simple.
>
> The update to the new Thrift version is in preparation for HBASE-1744
> but if there are no objections I can regenerate the old Thrift API
> with this new Thrift compiler to introduce security and feature
> updates. I've run only limited tests on the old version with the new
> generated code but there seem to be no problems at all. One new
> "feature" would be that the structs now implement a proper hashcode
> function instead of always returning 0.
>
> If there is interest I can also backport other things from the new
> Thrift server. Namely HBASE-65 ("Thrift Server should have an option
> to bind to ip address") and the optional use of the framed transport
> and/or the binary protocol.
>
> Cheers,
> Lars
>