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

PERF-5373 Fix NoSuchField.yml so that it hits 'max works' as intended #1224

Merged
merged 2 commits into from
Jun 5, 2024

Conversation

dstorch
Copy link
Contributor

@dstorch dstorch commented May 30, 2024

Jira Ticket: PERF-5373

Whats Changed

I confirmed that as originally implemented, the multi-planning trial period would end after the plan using index {x1: 1} hit EOF. By changing this predicate from {x: {$lt: *selectivity}} to {x1: { $lte: 1}}, I've made it so that all of the indexed plans need to perform a large index scan. After this change, I've confirmed that none of the plans will hit EOF, and the trial period will instead terminate by hitting the "max works" condition.

In addition, I noticed that we were unnecessarily repeating the collMod command to hide indexes 1000 times, so I fixed this to just hide indexes once.

Patch Testing Results

I've confirmed that this lints locally by running ./run-genny -v lint-yaml --format.

Kicked off a patch build: https://spruce.mongodb.com/version/6658beef88b0fc0007615e39/tasks. As of this writing, I'm letting it auto-generate tasks first and will need to come back and schedule the generated Genny task for this workload later.

@dpercy
Copy link
Contributor

dpercy commented Jun 4, 2024

In addition, I noticed that we were unnecessarily repeating the collMod command to hide indexes 1000 times, so I fixed this to just hide indexes once.

Nice catch!

@dstorch dstorch added this pull request to the merge queue Jun 5, 2024
Merged via the queue into master with commit 0e40d5c Jun 5, 2024
11 checks passed
github-merge-queue bot pushed a commit that referenced this pull request Jun 5, 2024
**Jira Ticket:** [PERF-5375](https://jira.mongodb.org/browse/PERF-5375)

### Whats Changed

I've opted to delete the workload because it seems redundant with
NoSuchField.yml, which I'm improving in related PR
#1224. The scenarios are slightly
different because in NoSuchField.yml the extra predicate matches
nothing, whereas in this case the extra predicate does match some data
but cannot be answered efficiently. Still, the rationale for testing
both of these cases is more or less the same so they seem redundant.

I did consider applying the improvements originally described by this
ticket to NoSuchField.yml -- namely, the idea of increasing the data
size so that the "max works" value gets set based `0.3 *
collectionSize`. I ultimately decided against doing so because it makes
the workload take a lot longer to run. Just generating the data set and
building the indexes took a few minutes, and a single invocation of the
query with 64 indexes took over 2 minutes. It seems more important to me
to allow the workload to run a few minutes total rather than covering
the case where max works exceeds 10,000.

### Patch Testing Results

As far as I know, just the automatically executed genny self-tests
should be sufficient.
@dstorch dstorch deleted the storch/PERF-5373 branch June 5, 2024 14:17
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.

3 participants