Skip to content

[opt] avoid memcpy when building page#9727

Closed
dataroaring wants to merge 2 commits intoapache:masterfrom
dataroaring:page_builder
Closed

[opt] avoid memcpy when building page#9727
dataroaring wants to merge 2 commits intoapache:masterfrom
dataroaring:page_builder

Conversation

@dataroaring
Copy link
Copy Markdown
Contributor

PageBuilder finishes a page when the page is full, when the page is
full, its size is greater than page size, so the last row would
trigger an memcpy due to there is not enough space in faststring.

The patch fix the problem by 2 changes:

  1. PageBuilder reserves extra bytes
    If the last row is less than extra bytes, then no memory copy is
    triggered.
  2. faststring uses malloc/realloc/free rather than new/delete
    realloc can avoid memcopy some times.

The patch is not tested, so please do not merge.

Proposed changes

Issue Number: close #xxx

Problem Summary:

Describe the overview of changes.

Checklist(Required)

  1. Does it affect the original behavior: (Yes/No/I Don't know)
  2. Has unit tests been added: (Yes/No/No Need)
  3. Has document been added or modified: (Yes/No/No Need)
  4. Does it need to update dependencies: (Yes/No)
  5. Are there any changes that cannot be rolled back: (Yes/No)

Further comments

If this is a relatively large or complex change, kick off the discussion at dev@doris.apache.org by explaining why you chose the solution you did and what alternatives you considered, etc...

@morningman morningman added this to the v1.2 milestone May 27, 2022
PageBuilder finishes a page when the page is full, when the page is
full, its size is greater than page size, so the last row would
trigger an memcpy due to there is not enough space in faststring.

The patch fix the problem by 2 changes:
1. PageBuilder reserves extra bytes
   If the last row is less than extra bytes, then no memory copy is
   triggered.
2. faststring uses malloc/realloc/free rather than new/delete
   realloc can avoid memcopy some times.
@github-actions
Copy link
Copy Markdown
Contributor

We're closing this PR because it hasn't been updated in a while.
This isn't a judgement on the merit of the PR in any way. It's just a way of keeping the PR queue manageable.
If you'd like to revive this PR, please reopen it and feel free a maintainer to remove the Stale tag!

@github-actions github-actions bot added the Stale label Dec 27, 2022
@github-actions github-actions bot closed this Dec 28, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants