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

Use sync.Pool for MapEntries in bulk loader #3763

Merged
merged 2 commits into from
Aug 6, 2019

Conversation

manishrjain
Copy link
Contributor

@manishrjain manishrjain commented Aug 6, 2019

This PR has a significant impact on the allocated objects and space. For addMapEntry it went down from 7.35GB to 5.48GB. For addIndexMapEntries, it went down from 15.67GB to 10.11GB. The profiles were taken 30s into bulk loader. The other allocations line up nicely to verify that (lexer.Emit and rdfChunker.Parse).

Current master:

Showing nodes accounting for 45.97GB, 82.78% of 55.53GB total
Dropped 112 nodes (cum <= 0.28GB)
Showing top 10 nodes out of 54
      flat  flat%   sum%        cum   cum%
   13.61GB 24.51% 24.51%    13.61GB 24.51%  github.com/dgraph-io/dgraph/lex.(*Lexer).Emit
    7.35GB 13.23% 37.74%     7.35GB 13.23%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addMapEntry
    6.82GB 12.29% 50.02%    15.67GB 28.21%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addIndexMapEntries
    3.62GB  6.51% 56.54%    24.84GB 44.74%  github.com/dgraph-io/dgraph/chunker.rdfChunker.Parse
    3.04GB  5.48% 62.02%     3.04GB  5.48%  github.com/dgraph-io/dgraph/posting.NewPosting
    2.95GB  5.32% 67.34%     2.95GB  5.32%  bytes.makeSlice
    2.80GB  5.04% 72.38%     2.80GB  5.04%  github.com/dgraph-io/dgraph/gql.NQuad.createEdgePrototype
    2.71GB  4.87% 77.25%     2.71GB  4.87%  github.com/dgraph-io/dgraph/lex.NewLexer
    1.62GB  2.92% 80.18%     1.62GB  2.92%  strings.makeCutsetFunc
    1.45GB  2.61% 82.78%     1.45GB  2.61%  github.com/dgraph-io/dgraph/x.generateKey

This PR:

Showing nodes accounting for 39.94GB, 80.85% of 49.40GB total
Dropped 148 nodes (cum <= 0.25GB)
Showing top 10 nodes out of 54
      flat  flat%   sum%        cum   cum%
   13.47GB 27.26% 27.26%    13.47GB 27.26%  github.com/dgraph-io/dgraph/lex.(*Lexer).Emit
    4.40GB  8.90% 36.16%    10.11GB 20.47%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addIndexMapEntries
    3.63GB  7.36% 43.52%    24.81GB 50.23%  github.com/dgraph-io/dgraph/chunker.rdfChunker.Parse
    3.47GB  7.03% 50.54%     3.47GB  7.03%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.newMapper.func1
    2.97GB  6.01% 56.55%     2.97GB  6.01%  bytes.makeSlice
    2.92GB  5.91% 62.46%     2.92GB  5.91%  github.com/dgraph-io/dgraph/posting.NewPosting
    2.76GB  5.59% 68.05%     2.76GB  5.59%  github.com/dgraph-io/dgraph/lex.NewLexer
    2.69GB  5.45% 73.51%     2.69GB  5.45%  github.com/dgraph-io/dgraph/gql.NQuad.createEdgePrototype
       2GB  4.05% 77.56%     5.48GB 11.09%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addMapEntry
    1.63GB  3.29% 80.85%     1.63GB  3.29%  strings.makeCutsetFunc

This change is Reviewable

@manishrjain manishrjain requested a review from a team as a code owner August 6, 2019 23:36
Copy link

@pullrequest pullrequest bot left a comment

Choose a reason for hiding this comment

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

✅ A review job has been created and sent to the PullRequest network.


Check the status or cancel PullRequest code review here.

Copy link

@pullrequest pullrequest bot left a comment

Choose a reason for hiding this comment

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

1 Message
The description of this pull request is blank. Adding a high-level summary will help our reviewers provide better feedback.

Copy link

@gitlw gitlw left a comment

Choose a reason for hiding this comment

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

:lgtm:

Reviewable status: 0 of 1 files reviewed, all discussions resolved

@manishrjain manishrjain merged commit 3e52a8f into master Aug 6, 2019
@manishrjain manishrjain deleted the mrjn/reuse-mapentries branch August 6, 2019 23:46
danielmai pushed a commit that referenced this pull request Aug 9, 2019
This PR has a significant impact on the allocated objects and space. For addMapEntry it went down from 7.35GB to 5.48GB. For addIndexMapEntries, it went down from 15.67GB to 10.11GB. The profiles were taken 30s into bulk loader. The other allocations line up nicely to verify that (lexer.Emit and rdfChunker.Parse).

Current master:
```
Showing nodes accounting for 45.97GB, 82.78% of 55.53GB total
Dropped 112 nodes (cum <= 0.28GB)
Showing top 10 nodes out of 54
      flat  flat%   sum%        cum   cum%
   13.61GB 24.51% 24.51%    13.61GB 24.51%  github.com/dgraph-io/dgraph/lex.(*Lexer).Emit
    7.35GB 13.23% 37.74%     7.35GB 13.23%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addMapEntry
    6.82GB 12.29% 50.02%    15.67GB 28.21%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addIndexMapEntries
    3.62GB  6.51% 56.54%    24.84GB 44.74%  github.com/dgraph-io/dgraph/chunker.rdfChunker.Parse
    3.04GB  5.48% 62.02%     3.04GB  5.48%  github.com/dgraph-io/dgraph/posting.NewPosting
    2.95GB  5.32% 67.34%     2.95GB  5.32%  bytes.makeSlice
    2.80GB  5.04% 72.38%     2.80GB  5.04%  github.com/dgraph-io/dgraph/gql.NQuad.createEdgePrototype
    2.71GB  4.87% 77.25%     2.71GB  4.87%  github.com/dgraph-io/dgraph/lex.NewLexer
    1.62GB  2.92% 80.18%     1.62GB  2.92%  strings.makeCutsetFunc
    1.45GB  2.61% 82.78%     1.45GB  2.61%  github.com/dgraph-io/dgraph/x.generateKey
```

This PR:
```
Showing nodes accounting for 39.94GB, 80.85% of 49.40GB total
Dropped 148 nodes (cum <= 0.25GB)
Showing top 10 nodes out of 54
      flat  flat%   sum%        cum   cum%
   13.47GB 27.26% 27.26%    13.47GB 27.26%  github.com/dgraph-io/dgraph/lex.(*Lexer).Emit
    4.40GB  8.90% 36.16%    10.11GB 20.47%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addIndexMapEntries
    3.63GB  7.36% 43.52%    24.81GB 50.23%  github.com/dgraph-io/dgraph/chunker.rdfChunker.Parse
    3.47GB  7.03% 50.54%     3.47GB  7.03%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.newMapper.func1
    2.97GB  6.01% 56.55%     2.97GB  6.01%  bytes.makeSlice
    2.92GB  5.91% 62.46%     2.92GB  5.91%  github.com/dgraph-io/dgraph/posting.NewPosting
    2.76GB  5.59% 68.05%     2.76GB  5.59%  github.com/dgraph-io/dgraph/lex.NewLexer
    2.69GB  5.45% 73.51%     2.69GB  5.45%  github.com/dgraph-io/dgraph/gql.NQuad.createEdgePrototype
       2GB  4.05% 77.56%     5.48GB 11.09%  github.com/dgraph-io/dgraph/dgraph/cmd/bulk.(*mapper).addMapEntry
    1.63GB  3.29% 80.85%     1.63GB  3.29%  strings.makeCutsetFunc
```

(cherry picked from commit 3e52a8f)
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