forked from MaterializeInc/materialize
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add template for a proposal for a new optimization.
- Loading branch information
Andi Wang
committed
Feb 7, 2022
1 parent
a28dcdc
commit 6bf93f8
Showing
1 changed file
with
61 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# Copyright Materialize, Inc. and contributors. All rights reserved. | ||
# | ||
# Use of this software is governed by the Business Source License | ||
# included in the LICENSE file at the root of this repository. | ||
# | ||
# As of the Change Date specified in that file, in accordance with | ||
# the Business Source License, use of this software will be governed | ||
# by the Apache License, Version 2.0. | ||
|
||
name: "Internal - Proposed Optimization" | ||
description: A proposal for a new query optimization. Contributor use only. | ||
labels: ["A-optimization", "needs-discussion"] | ||
body: | ||
- type: textarea | ||
attributes: | ||
label: Elevator pitch | ||
description: Each question should be answered comprehensively but using as | ||
few sentences as possible. | ||
value: | | ||
1. What does the transformation do? Give a representative SQL query. | ||
2. Why should we add it? | ||
3. When would it be good to have? | ||
4. When would it be ineffectual? | ||
5. When would be bad to have? | ||
6. In the worst case, how would it degrade performance? | ||
validations: | ||
required: true | ||
- type: textarea | ||
attributes: | ||
label: List real life instances where this transformation would help. | ||
- type: textarea | ||
attributes: | ||
label: Cost Model | ||
description: | | ||
If both the implementation and cost model are simple, this section can | ||
be skipped if the implementation section is filled in. | ||
Each subsection is meant to be answered with formulae. Take into account | ||
memory, CPU, liveness, and skew. Approximations are ok if it is not | ||
possible to calculate exact numbers. | ||
If the transformation is always good to have, you only have to fill out | ||
the first subsection. | ||
value: | | ||
1. What is the benefit of the transformation? | ||
2. What is the overhead? | ||
3. When would the transformation be worthwhile? Intuitively, this should | ||
be when benefit > overhead, but sometimes a benefit with regards to X | ||
comes at a cost with regards to Y, and it would be worthwhile to discuss | ||
when it is worthwhile to sacrifice Y to gain a benefit in X. | ||
- type: textarea | ||
attributes: | ||
label: List any knobs that we may need to tune or expose to the user. | ||
- type: textarea | ||
attributes: | ||
label: Proposed implementation | ||
value: | | ||
1. Describe the implementation. | ||
2. Which queries will do better with the given implementation? | ||
3. Which queries will do worse? | ||
4. Break the implementation down into stages. |