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

GH-40745: [Java][FlightRPC] Support configuring backpressure threshold #41051

Merged

Conversation

jduo
Copy link
Member

@jduo jduo commented Apr 6, 2024

Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

What changes are included in this PR?

  • Update to grpc-java 1.63.0
  • Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
  • Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

Are these changes tested?

Tested through existing unit tests.

Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

@jduo jduo requested a review from lidavidm as a code owner April 6, 2024 09:53
* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking
due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.
@jduo jduo force-pushed the 40745-flight-java-backpressure-threshold branch from cabd60a to dd55c79 Compare April 6, 2024 09:55
@vibhatha
Copy link
Collaborator

vibhatha commented Apr 6, 2024

@github-actions crossbow submit java

Copy link

github-actions bot commented Apr 6, 2024

Revision: dd55c79

Submitted crossbow builds: ursacomputing/crossbow @ actions-ae0551804f

Task Status
java-jars GitHub Actions
verify-rc-source-java-linux-almalinux-8-amd64 GitHub Actions
verify-rc-source-java-linux-conda-latest-amd64 GitHub Actions
verify-rc-source-java-linux-ubuntu-20.04-amd64 GitHub Actions
verify-rc-source-java-linux-ubuntu-22.04-amd64 GitHub Actions
verify-rc-source-java-macos-amd64 GitHub Actions

@github-actions github-actions bot added awaiting merge Awaiting merge and removed awaiting review Awaiting review labels Apr 7, 2024
@lidavidm lidavidm merged commit 6c14172 into apache:main Apr 7, 2024
17 checks passed
@lidavidm lidavidm removed the awaiting merge Awaiting merge label Apr 7, 2024
Copy link

After merging your PR, Conbench analyzed the 4 benchmarking runs that have been run so far on merge-commit 6c14172.

There were no benchmark performance regressions. 🎉

The full Conbench report has more details.

verma-kartik pushed a commit to verma-kartik/arrow that referenced this pull request Apr 11, 2024
…reshold (apache#41051)

### Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

### What changes are included in this PR?

* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

### Are these changes tested?

Tested through existing unit tests.

### Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

* GitHub Issue: apache#40745

Authored-by: James Duong <[email protected]>
Signed-off-by: David Li <[email protected]>
tolleybot pushed a commit to tmct/arrow that referenced this pull request May 2, 2024
…reshold (apache#41051)

### Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

### What changes are included in this PR?

* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

### Are these changes tested?

Tested through existing unit tests.

### Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

* GitHub Issue: apache#40745

Authored-by: James Duong <[email protected]>
Signed-off-by: David Li <[email protected]>
tolleybot pushed a commit to tmct/arrow that referenced this pull request May 4, 2024
…reshold (apache#41051)

### Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

### What changes are included in this PR?

* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

### Are these changes tested?

Tested through existing unit tests.

### Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

* GitHub Issue: apache#40745

Authored-by: James Duong <[email protected]>
Signed-off-by: David Li <[email protected]>
rok pushed a commit to tmct/arrow that referenced this pull request May 8, 2024
…reshold (apache#41051)

### Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

### What changes are included in this PR?

* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

### Are these changes tested?

Tested through existing unit tests.

### Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

* GitHub Issue: apache#40745

Authored-by: James Duong <[email protected]>
Signed-off-by: David Li <[email protected]>
rok pushed a commit to tmct/arrow that referenced this pull request May 8, 2024
…reshold (apache#41051)

### Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

### What changes are included in this PR?

* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

### Are these changes tested?

Tested through existing unit tests.

### Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

* GitHub Issue: apache#40745

Authored-by: James Duong <[email protected]>
Signed-off-by: David Li <[email protected]>
vibhatha pushed a commit to vibhatha/arrow that referenced this pull request May 25, 2024
…reshold (apache#41051)

### Rationale for this change

gRPC uses a default backpressure threshold that is too low for services that send large amounts of data such as Arrow Flight. This causes excessive blocking and reduces throughput.

### What changes are included in this PR?

* Update to grpc-java 1.63.0
* Add to FlightServer.Builder an option to set the number of bytes queued before blocking due to backpressure. Set the default to 10MB instead of gRPC's default of 64K.
* Add a ServerInterceptor for automating setting the backpressure threshold on ServerCalls.

### Are these changes tested?

Tested through existing unit tests.

### Are there any user-facing changes?

The FlightServer.Builder class has an extra configuration option to let users change the backpressure threshold themselves.

* GitHub Issue: apache#40745

Authored-by: James Duong <[email protected]>
Signed-off-by: David Li <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants