Skip to content

Commit

Permalink
fix bug: PageEntriesVersionSetWithDelta::compactDeltaAndBase should N…
Browse files Browse the repository at this point in the history
…OT change delta
  • Loading branch information
JaySon-Huang authored and zanmato1984 committed Nov 4, 2019
1 parent cf45445 commit 1c10330
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,12 @@ void PageEntriesVersionSetWithDelta::collectLiveFilesFromVersionList( //
PageEntriesVersionSetWithDelta::VersionPtr //
PageEntriesVersionSetWithDelta::compactDeltaAndBase( //
const PageEntriesVersionSetWithDelta::VersionPtr & old_base,
PageEntriesVersionSetWithDelta::VersionPtr & delta) const
const PageEntriesVersionSetWithDelta::VersionPtr & delta) const
{
PageEntriesVersionSetWithDelta::VersionPtr base = PageEntriesForDelta::createBase();
base->copyEntries(*old_base);
// apply delta edits
delta->prev = base;
base->merge(*delta);
delta->clear();
return base;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class PageEntriesVersionSetWithDelta : public ::DB::MVCC::VersionSetWithDelta< /

VersionPtr compactDeltas(const VersionPtr & tail) const override;

VersionPtr compactDeltaAndBase(const VersionPtr & old_base, VersionPtr & delta) const override;
VersionPtr compactDeltaAndBase(const VersionPtr & old_base, const VersionPtr & delta) const override;

private:
void collectLiveFilesFromVersionList(VersionPtr tail, std::set<VersionPtr> & visited, std::set<PageFileIdAndLevel> & liveFiles) const;
Expand Down
3 changes: 2 additions & 1 deletion dbms/src/Storages/Page/mvcc/VersionSetWithDelta.h
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,7 @@ class VersionSetWithDelta
if (this->rebase(tail, new_base) == RebaseResult::INVALID_VERSION)
{
// Another thread may have done compaction and rebase, then we just release `tail`. In case we may add more code after do compaction on base
ProfileEvents::increment(ProfileEvents::PSMVCCCompactOnDeltaRebaseRejected);
break;
}
}
Expand All @@ -275,7 +276,7 @@ class VersionSetWithDelta

virtual VersionPtr compactDeltas(const VersionPtr & tail) const = 0;

virtual VersionPtr compactDeltaAndBase(const VersionPtr & old_base, VersionPtr & delta) const = 0;
virtual VersionPtr compactDeltaAndBase(const VersionPtr & old_base, const VersionPtr & delta) const = 0;

public:
/// Some helper functions
Expand Down

0 comments on commit 1c10330

Please sign in to comment.