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

[FLASH-575] Improve the performance of stream operations in DM #296

Merged
merged 19 commits into from
Oct 30, 2019

Conversation

flowbehappy
Copy link
Contributor

@flowbehappy flowbehappy commented Oct 28, 2019

  • DMVersionFilterBlockInputStream
    • Optimize for iterations.
  • DeltaMergeBlockInputStream
    • Do range copy instead of one by one if delta rows are used continually.
    • Implement the logic of handle filter in it. To reduce the cost of data copy.
  • Support mange table xxx status command, to show the metrics about DM table.
  • PageStorage
    • Fix lock in PageEntriesVersionSetWithDelta::listAllLiveFiles

dbms/src/Storages/StorageDeltaMerge.cpp Show resolved Hide resolved
@@ -387,7 +391,7 @@ BlockInputStreams DeltaMergeStore::read(const Context & db_context,
task.ranges,
{},
max_version,
std::min(expected_block_size, DEFAULT_BLOCK_SIZE));
std::max(expected_block_size, STABLE_CHUNK_ROWS));
Copy link
Contributor

Choose a reason for hiding this comment

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

Maybe we should use min rather than max? The signature is IStorage::read( ..., size_t max_block_size, ...)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Normally expected_block_size = DEFAULT_BLOCK_SIZE (65536)。While STABLE_CHUNK_ROWS = 8192

Copy link
Contributor

@JaySon-Huang JaySon-Huang left a comment

Choose a reason for hiding this comment

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

LGTM

@flowbehappy
Copy link
Contributor Author

/run-integration-tests

5 similar comments
@JaySon-Huang
Copy link
Contributor

/run-integration-tests

@JaySon-Huang
Copy link
Contributor

/run-integration-tests

@flowbehappy
Copy link
Contributor Author

/run-integration-tests

@flowbehappy
Copy link
Contributor Author

/run-integration-tests

@JaySon-Huang
Copy link
Contributor

/run-integration-tests

@flowbehappy
Copy link
Contributor Author

/run-integration-tests

1 similar comment
@flowbehappy
Copy link
Contributor Author

/run-integration-tests

@flowbehappy
Copy link
Contributor Author

/build

@flowbehappy
Copy link
Contributor Author

/rebuild

@flowbehappy
Copy link
Contributor Author

/run-integration-tests

@JaySon-Huang
Copy link
Contributor

/rebuild

@JaySon-Huang
Copy link
Contributor

/run-integration-tests

@flowbehappy flowbehappy merged this pull request into DeltaMergeEngine Oct 30, 2019
JaySon-Huang pushed a commit to JaySon-Huang/tiflash that referenced this pull request Oct 30, 2019
…ap#296)

* do handle range filter in

* add status support for DM

* compact continue insert

* bug fix, and temporary split big insert block

* enable split logical

* add store restore log

* fix lock in PageEntriesVersionSetWithDelta::listAllLiveFiles

* disable posix_fadvise in PageStorage

* Update default DM settings

* optimize DMVersionFilterBlockInputStream

* optimize DMVersionFilterBlockInputStream v2

* added some metrics

* add dm_insert_max_rows setting

* Fix compilation error of TiDB.h

* address comment

* fix broken unit tests

* fix unit tests of DeltaTree

* Bug fix: DiskValueSpace::createAppendTask remove data pages by mistake

* remove debug code
JaySon-Huang pushed a commit to JaySon-Huang/tiflash that referenced this pull request Nov 1, 2019
…ap#296)

* do handle range filter in

* add status support for DM

* compact continue insert

* bug fix, and temporary split big insert block

* enable split logical

* add store restore log

* fix lock in PageEntriesVersionSetWithDelta::listAllLiveFiles

* disable posix_fadvise in PageStorage

* Update default DM settings

* optimize DMVersionFilterBlockInputStream

* optimize DMVersionFilterBlockInputStream v2

* added some metrics

* add dm_insert_max_rows setting

* Fix compilation error of TiDB.h

* address comment

* fix broken unit tests

* fix unit tests of DeltaTree

* Bug fix: DiskValueSpace::createAppendTask remove data pages by mistake

* remove debug code
JaySon-Huang pushed a commit to JaySon-Huang/tiflash that referenced this pull request Nov 1, 2019
…ap#296)

* do handle range filter in

* add status support for DM

* compact continue insert

* bug fix, and temporary split big insert block

* enable split logical

* add store restore log

* fix lock in PageEntriesVersionSetWithDelta::listAllLiveFiles

* disable posix_fadvise in PageStorage

* Update default DM settings

* optimize DMVersionFilterBlockInputStream

* optimize DMVersionFilterBlockInputStream v2

* added some metrics

* add dm_insert_max_rows setting

* Fix compilation error of TiDB.h

* address comment

* fix broken unit tests

* fix unit tests of DeltaTree

* Bug fix: DiskValueSpace::createAppendTask remove data pages by mistake

* remove debug code
JaySon-Huang pushed a commit to JaySon-Huang/tiflash that referenced this pull request Nov 5, 2019
…ap#296)

* do handle range filter in

* add status support for DM

* compact continue insert

* bug fix, and temporary split big insert block

* enable split logical

* add store restore log

* fix lock in PageEntriesVersionSetWithDelta::listAllLiveFiles

* disable posix_fadvise in PageStorage

* Update default DM settings

* optimize DMVersionFilterBlockInputStream

* optimize DMVersionFilterBlockInputStream v2

* added some metrics

* add dm_insert_max_rows setting

* Fix compilation error of TiDB.h

* address comment

* fix broken unit tests

* fix unit tests of DeltaTree

* Bug fix: DiskValueSpace::createAppendTask remove data pages by mistake

* remove debug code
@flowbehappy flowbehappy deleted the dm-performance branch November 6, 2019 02:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants