Skip to content

[Backport] Speed up FrameFileTest, SuperSorterTest. (#17068)#17190

Merged
kfaraz merged 1 commit intoapache:31.0.0from
kfaraz:backport_17068
Sep 30, 2024
Merged

[Backport] Speed up FrameFileTest, SuperSorterTest. (#17068)#17190
kfaraz merged 1 commit intoapache:31.0.0from
kfaraz:backport_17068

Conversation

@kfaraz
Copy link
Copy Markdown
Contributor

@kfaraz kfaraz commented Sep 30, 2024

Backport #17068

* Speed up FrameFileTest, SuperSorterTest.

These are two heavily parameterized tests that, together, account for
about 60% of runtime in the test suite.

FrameFileTest changes:

1) Cache frame files in a static, rather than building the frame file
   for each parameterization of the test.

2) Adjust TestArrayCursorFactory to cache the signature, rather than
   re-creating it on each call to getColumnCapabilities.

SuperSorterTest changes:

1) Dramatically reduce the number of tests that run with
   "maxRowsPerFrame" = 1. These are particularly slow due to writing so
   many small files. Some still run, since it's useful to test edge cases,
   but much fewer than before.

2) Reduce the "maxActiveProcessors" axis of the test from [1, 2, 4] to
   [1, 3]. The aim is to reduce the number of cases while still getting
   good coverage of the feature.

3) Reduce the "maxChannelsPerProcessor" axis of the test from [2, 3, 8]
   to [2, 7]. The aim is to reduce the number of cases while still getting
   good coverage of the feature.

4) Use in-memory input channels rather than file channels.

5) Defer formatting of assertion failure messages until they are needed.

6) Cache the cursor factory and its signature in a static.

7) Cache sorted test rows (used for verification) in a static.

* It helps to include the file.

* Style.
@kfaraz kfaraz added this to the 31.0.0 milestone Sep 30, 2024
@kfaraz kfaraz merged commit 8c7c422 into apache:31.0.0 Sep 30, 2024
@kfaraz kfaraz deleted the backport_17068 branch September 30, 2024 11:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants