Skip to content
This repository has been archived by the owner on Jun 23, 2022. It is now read-only.

fix(dup_enhancement#20): put async_duplicate_checkpoint_from_master_replica into DEFAULT_POOL to avoid thread lock #1076

Merged

Conversation

foreverneverer
Copy link
Contributor

Ref-Issue

apache/incubator-pegasus#892

Change

THREAD_POOL_REPLICATION_LONG has limited count, when duplicate_checkpoint put into it and sync execute, it will be exhausted and casue thread lock, this pr fix it

_duplicating_checkpoint = true;
async_duplicate_checkpoint_from_master_replica();
tasking::enqueue(LPC_DUPLICATE_CHECKPOINT, &_tracker, [=]() mutable {
async_duplicate_checkpoint_from_master_replica();
Copy link
Contributor Author

Choose a reason for hiding this comment

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

For review: LPC_DUPLICATE_CHECKPOINT in DEFAULT_POOL, when execute _tracker.wait_outstanding_tasks(), it won't be lock

@foreverneverer foreverneverer changed the title fix(dup_enhancement#20): put duplicate_checkpoint into DEFAULT_POOL to avoid thread lock fix(dup_enhancement#20): put async_duplicate_checkpoint_from_master_replica into DEFAULT_POOL to avoid thread lock Mar 16, 2022
@foreverneverer foreverneverer merged commit 3126991 into XiaoMi:duplication_dev Mar 16, 2022
foreverneverer added a commit that referenced this pull request Mar 29, 2022
…replica` into `DEFAULT_POOL` to avoid thread lock (#1076)
foreverneverer added a commit that referenced this pull request Mar 29, 2022
…replica` into `DEFAULT_POOL` to avoid thread lock (#1076)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants