apache / apache/pinot

Remove Thrift dependency from Pinot

Open
#4,264 0 comments 1 reaction 0 assignees View on GitHub
Dominant language
Java
Stars
6.1k
Forks
1.5k
Avg merge
2d 55m
Merged PRs (30d)
182

Description

Currently, we include auto generated Thrift java files (~10k lines) in our code base. Whenever we make the change to `request.thrift, response.thrift` files, we need to merge a large code change for auto generated java classes.

One way to avoid this is to compile `*.thrift` file during build; however, maven thrift plugin requires `thrift` to be available locally. To make the problem worse, thrift is written in c++ and I personally found that it's not trivial to build thrift from source code.

So with thrift, we should choose either one.
1. Keep the current way (whenever modify thrift file, check in large change for auto generated files)
2. Remove auto generated file and make `installing thrift on local machine` to be a prerequisite to build Pinot.

In my opinion, we should avoid both but it's not feasible with thrift.

In the long term, we should migrate towards `protobuf, grpc` or some other similar rpc framework that doesn't have this issue.

p.s. this issue came from the following pr effort.
https://github.com/apache/incubator-pinot/pull/3723

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.