Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use class reflection to determine TProtocol #109

Open
wants to merge 426 commits into
base: twitter-master
Choose a base branch
from

Conversation

Yaliang
Copy link
Collaborator

@Yaliang Yaliang commented Sep 6, 2017

Talked with @gerashegalov about the support for varying TProtocal other than TBinaryProtocol.
Right now, the LZO Thrift read support is working only with TBinaryProtocol or its subclasses(for example, com.twitter.elephantbird.thrift.ThriftBinaryProtocol).
I have double checked that EB currently always pass TBinaryProtocol's subclass ThriftBinaryProtocol.

This patch would let ThriftGenericRow be ready to accept different TProtocols. However, as long as we are using EB and keeping ThriftGenericRow as a subclass of TBase, we will always receive the ThriftBinaryProtocol instance as the parameter in our LZO Thrift read support implementation.

With this patch, if we want to further support other TProtocol, we can implement different BinaryConverterProviders for different TProtocols in EB side and Presto will be ready to accept them without any further change.

Thomas Sun and others added 30 commits December 1, 2016 15:13
Prepare for 0.157-tw-0.28 internal release
…seVersion

Update release version to 0.157-tw-0.29
Yaliang and others added 26 commits January 4, 2018 22:24
…egrex

This is useful when the non-secured port hosted behide a secured front-end service and direct non-secured port access has been limited by a firewall
The authentication over non-secured port is useful when the non-secured port hosted behind a secured front-end service and direct non-secured port access has been limited by the firewall
upgrade to 0.192
Ignore not found files
Release 0.192-tw-0.46
…twitter-forks#136)

The built-in host-based service name type for Kerberos authenticator cannot fit our use case. By allowing pass a specific service principle and use the user based name type, the authenticator can be authenticated by Kerberos master without specifying the host running Presto service.
Add utility functions for snowflake ids (https://developer.twitter.com/en/docs/basics/twitter-ids).

is_snowflake(id) → boolean
Return if a bigint is a snowflake ID (true/false).

first_snowflake_for(timestamp) → bigint
Return the first snowflake ID given a timestamp.

timestamp_from_snowflake(id) → timestamp
Return the timestamp given a snowflake ID.

cluster_id_from_snowflake(id) → bigint
Return the cluster ID given a snowflake ID.

instance_id_from_snowflake(id) → bigint
Return the instance ID given a snowflake ID.

sequence_num_from_snowflake(id) → bigint
Return the sequence number given a snowflake ID.
Upgrade to 0.196 based version
@Yaliang Yaliang force-pushed the yaliangw/thrift-generic-row-tprotocal branch from 721f286 to 8756d4c Compare May 24, 2018 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants