feat(mango
): keys-only covering indexes
#4482
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request aims to implement the first phase of the covering indexes work ("keys-only covering indexes") as it was described in the corresponding RFC document by @mikerhodes, see #4410 and #4413 for the details.
Ideally, end users should not notice any change in the behavior but speed-ups for certain kind of queries. Performance results obtained by k6 on my MacBook Pro 2021 M1 Max, with 10,000 documents, compared against
a9bce2f598edc8ef843baa9412c60d22157eeabf
with 3 nodes:min=0.60ms max=3223.65ms p(95)=2113.95ms p(98)=2354.79ms p(99)=2505.30ms
min=0.50ms max=615.87ms p(95)=95.89ms p(98)=140.80ms p(99)=171.90ms
min=73.09ms max=6245.72ms p(95)=3835.45ms p(98)=4376.79ms p(99)=5022.26ms
min=2.65ms max=579.62ms p(95)=211.18ms p(98)=264.66ms p(99)=305.37ms
min=0.80ms max=14991.06ms p(95)=13171.23ms p(98)=13975.51ms p(99)=14456.11ms
min=0.87ms max=15379.69ms p(95)=10748.65ms p(98)=11998.88ms p(99)=12171.89ms
Please find the details of the performance evaluation in
pgj/couchdb-k6/mango/couchdb_4482
.Unit test coverage increased significantly, see before:
and then after:
Tasks:
src/docs
folder