Skip to content

fix(compaction): Use separate compactors for L0, L1#1466

Merged
jarifibrahim merged 7 commits intomasterfrom
ibrahim/compaction-change
Aug 19, 2020
Merged

fix(compaction): Use separate compactors for L0, L1#1466
jarifibrahim merged 7 commits intomasterfrom
ibrahim/compaction-change

Conversation

@jarifibrahim
Copy link
Contributor

@jarifibrahim jarifibrahim commented Aug 19, 2020

Related to #1459

This PR contains the following changes to compactions

  • Use a separate thread for compacting Level 0 and 1 and a separate one for other levels
  • Pick levels to compact based on score.
  • Stall Level 0 if compactions cannot keep up (we had added this in Do not stall Level 0 and 1 #1186)
  • Limit the number of open table builders to 5 in compactions.

This change is Reviewable

Copy link
Contributor

@manishrjain manishrjain left a comment

Choose a reason for hiding this comment

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

:lgtm:

Reviewed 3 of 5 files at r1, 3 of 3 files at r2.
Reviewable status: :shipit: complete! all files reviewed, all discussions resolved (waiting on @ashish-goswami)

@jarifibrahim jarifibrahim merged commit 0b8eb4c into master Aug 19, 2020
@jarifibrahim jarifibrahim deleted the ibrahim/compaction-change branch August 19, 2020 13:12
jarifibrahim pushed a commit that referenced this pull request Aug 19, 2020
This PR contains a  bunch of improvements
1. This PR reverts the following reverts (adds them back)
    - Revert "Compress/Encrypt Blocks in the background  6001230
    - Revert "Buffer pool for decompression 800305e
   - Revert "fix: Fix race condition in block.incRef 63d9309
    - Revert "add assert to check integer overflow for table size e0d058c
2. Calloc and Free for memory allocation
    - The block buffers for decompression and encryption are now allocated using calloc and free.
      The `y/calloc.go` file contains the code.

The compaction changes are moved to a separate PR for easier cherry-picking
#1466
jarifibrahim pushed a commit that referenced this pull request Aug 20, 2020
Related to #1459

This PR contains the following changes to compactions
- Use a separate thread for compacting Level 0 and 1 and a separate one for other levels
- Pick levels to compact based on score.
- Stall Level 0 if compactions cannot keep up (we had added this in #1186)
- Limit the number of open table builders to 5 in compactions.

(cherry picked from commit 0b8eb4c)
jarifibrahim pushed a commit that referenced this pull request Aug 25, 2020
Related to #1459

This PR contains the following changes to compactions
- Use a separate thread for compacting Level 0 and 1 and a separate one for other levels
- Pick levels to compact based on score.
- Stall Level 0 if compactions cannot keep up (we had added this in #1186)
- Limit the number of open table builders to 5 in compactions.

(cherry picked from commit 0b8eb4c)
jarifibrahim pushed a commit that referenced this pull request Oct 2, 2020
Related to #1459

This PR contains the following changes to compactions
- Use a separate thread for compacting Level 0 and 1 and a separate one for other levels
- Pick levels to compact based on score.
- Stall Level 0 if compactions cannot keep up (we had added this in #1186)
- Limit the number of open table builders to 5 in compactions.
jarifibrahim pushed a commit that referenced this pull request Oct 2, 2020
This PR contains a  bunch of improvements
1. This PR reverts the following reverts (adds them back)
    - Revert "Compress/Encrypt Blocks in the background  6001230
    - Revert "Buffer pool for decompression 800305e
   - Revert "fix: Fix race condition in block.incRef 63d9309
    - Revert "add assert to check integer overflow for table size e0d058c
2. Calloc and Free for memory allocation
    - The block buffers for decompression and encryption are now allocated using calloc and free.
      The `y/calloc.go` file contains the code.

The compaction changes are moved to a separate PR for easier cherry-picking
#1466
manishrjain pushed a commit that referenced this pull request Oct 15, 2020
Related to #1459

This PR contains the following changes to compactions
- Use a separate thread for compacting Level 0 and 1 and a separate one for other levels
- Pick levels to compact based on score.
- Stall Level 0 if compactions cannot keep up (we had added this in #1186)
- Limit the number of open table builders to 5 in compactions.
danielmai added a commit to dgraph-io/dgraph that referenced this pull request Oct 15, 2020
Include cherry-pick for the following change:

Author: Ibrahim Jarif <ibrahim@dgraph.io>
Date:   Wed Aug 19 18:42:06 2020 +0530

    fix(compaction): Use separate compactors for L0, L1 (dgraph-io/badger#1466)
manishrjain pushed a commit to outcaste-io/outserv that referenced this pull request Jul 6, 2022
This PR contains a  bunch of improvements
1. This PR reverts the following reverts (adds them back)
    - Revert "Compress/Encrypt Blocks in the background  dgraph-io/badger@8ad3232
    - Revert "Buffer pool for decompression dgraph-io/badger@d37ba0b
   - Revert "fix: Fix race condition in block.incRef dgraph-io/badger@2ddc993
    - Revert "add assert to check integer overflow for table size dgraph-io/badger@b3881c7
2. Calloc and Free for memory allocation
    - The block buffers for decompression and encryption are now allocated using calloc and free.
      The `y/calloc.go` file contains the code.

The compaction changes are moved to a separate PR for easier cherry-picking
dgraph-io/badger#1466
mYmNeo added a commit to mYmNeo/badger that referenced this pull request Jan 16, 2023
Signed-off-by: thomassong <thomassong2012@gmail.com>
mYmNeo added a commit to mYmNeo/badger that referenced this pull request Feb 13, 2023
Signed-off-by: thomassong <thomassong2012@gmail.com>
mYmNeo added a commit to mYmNeo/badger that referenced this pull request Sep 14, 2024
Signed-off-by: thomassong <thomassong2012@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants