Skip to content

perf: Make executor data uploads async internally#2529

Merged
TrevorBergeron merged 4 commits intomainfrom
async-uploads-executor
Mar 24, 2026
Merged

perf: Make executor data uploads async internally#2529
TrevorBergeron merged 4 commits intomainfrom
async-uploads-executor

Conversation

@TrevorBergeron
Copy link
Copy Markdown
Contributor

Thank you for opening a Pull Request! Before submitting your PR, there are a few things you can do to make sure it goes smoothly:

  • Make sure to open an issue as a bug/issue before writing your code! That way we can discuss the change, evaluate designs, and agree on the general idea
  • Ensure the tests and linter pass
  • Code coverage does not decrease (if any source code was changed)
  • Appropriate docs were updated (if necessary)

Fixes #<issue_number_goes_here> 🦕

@product-auto-label product-auto-label bot added size: m Pull request size is medium. api: bigquery Issues related to the googleapis/python-bigquery-dataframes API. labels Mar 20, 2026
@product-auto-label product-auto-label bot added size: s Pull request size is small. and removed size: m Pull request size is medium. labels Mar 23, 2026
@TrevorBergeron TrevorBergeron marked this pull request as ready for review March 23, 2026 22:00
@TrevorBergeron TrevorBergeron requested review from a team as code owners March 23, 2026 22:00
@TrevorBergeron TrevorBergeron requested a review from mpovoa March 23, 2026 22:00
@TrevorBergeron TrevorBergeron requested review from sycai and removed request for mpovoa March 23, 2026 22:27
Comment on lines +307 to +313
def read_data_async(
self, local_data: local_data.ManagedArrowTable, offsets_col: str
) -> concurrent.futures.Future[bq_data.BigqueryDataSource]:
future = self._threadpool.submit(
self._load_data_or_write_data, local_data, offsets_col
)
return future
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we write a test for this function?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This functionality is covered by the tests in https://github.com/googleapis/python-bigquery-dataframes/blob/main/tests/system/small/test_large_local_data.py. I'm uncertain about adding more targeted tests of internal classes, since the current class/method boundaries will be subject to further change soon

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay, I'm good as long as it's under some test coverage.

@TrevorBergeron TrevorBergeron requested a review from sycai March 24, 2026 16:43
@TrevorBergeron TrevorBergeron merged commit 96597f0 into main Mar 24, 2026
19 of 25 checks passed
@TrevorBergeron TrevorBergeron deleted the async-uploads-executor branch March 24, 2026 17:29
sycai added a commit that referenced this pull request Apr 1, 2026
PR created by the Librarian CLI to initialize a release. Merging this PR
will auto trigger a release.

Librarian Version: v0.7.0
Language Image:
us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:160860d189ff1c2f7515638478823712fa5b243e27ccc33a2728669fa1e2ed0c
<details><summary>bigframes: 2.39.0</summary>

##
[2.39.0](v2.38.0...v2.39.0)
(2026-03-31)

### Features

* add `df.bigquery.ai.forecast` method to pandas dataframe accessor
(#2518)
([1126cec](1126cec9))

* support full round-trip persistence for multimodal reference cols
(#2511)
([494a0a1](494a0a11))

* expose DataFrame.bigquery in both pandas and bigframes DataFrames
(#2533)
([69fe317](69fe3176))

### Bug Fixes

* to_gbq may swap data columns when replace table (#2532)
([17ecc65](17ecc65e))

* handle aggregate operations on empty selections (#2510)
([34fb5da](34fb5daa))

* Localize BigQuery log suppression for gbq.py (#2541)
([af49ca2](af49ca29))

* Respect remote function config changes even if logic unchanged (#2512)
([b952428](b9524284))

* support melting empty DataFrames without crashing (#2509)
([e8c4603](e8c46032))

### Performance Improvements

* Make executor data uploads async internally (#2529)
([96597f0](96597f0b))

### Documentation

* gemini retouch of the index page for seo (#2514)
([2e5311e](2e5311e2))

* Rename Blob column references to ObjectRef column (#2535)
([44e0ffd](44e0ffd9))

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api: bigquery Issues related to the googleapis/python-bigquery-dataframes API. size: s Pull request size is small.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants