-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
enhance: make pchannel level flusher #39275
enhance: make pchannel level flusher #39275
Conversation
Invalid PR Title Format Detected Your PR submission does not adhere to our required standards. To ensure clarity and consistency, please meet the following criteria:
Required Title Structure:
Where Example:
Please review and update your PR to comply with these guidelines. |
17e4298
to
44e5e19
Compare
@chyezh go-sdk check failed, comment |
44e5e19
to
22ad3ac
Compare
@chyezh go-sdk check failed, comment |
@chyezh E2e jenkins job failed, comment |
22ad3ac
to
e2f0c28
Compare
@chyezh E2e jenkins job failed, comment |
@chyezh cpp-unit-test check failed, comment |
/run-cpu-e2e |
@chyezh go-sdk check failed, comment |
1c8d96c
to
35c53a9
Compare
@chyezh go-sdk check failed, comment |
@chyezh E2e jenkins job failed, comment |
35c53a9
to
ec9d889
Compare
@chyezh cpp-unit-test check failed, comment |
@chyezh go-sdk check failed, comment |
13e31a0
to
86e9c2a
Compare
@chyezh go-sdk check failed, comment |
86e9c2a
to
c020806
Compare
rerun ut |
@chyezh E2e jenkins job failed, comment |
/run-cpu-e2e |
1 similar comment
/run-cpu-e2e |
c020806
to
3e8866b
Compare
@chyezh go-sdk check failed, comment |
- Add a pchannel level checkpoint for flush processing - Refactor the recovery of flushers of wal - make a shared wal scanner first, then make multi datasyncservice on it Signed-off-by: chyezh <[email protected]>
3e8866b
to
b172067
Compare
@chyezh go-sdk check failed, comment |
rerun go-sdk |
startMessageID = message.MustUnmarshalMessageID(walName, checkpoint.MessageID.Id) | ||
previous = startMessageID | ||
} else { | ||
startMessageID = vchannelManager.MinimumCheckpoint() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could vchannelManager.MinimumCheckpoint() possibly be nil?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, if there's no vchannel, the scan operation will consume from the beginning of wal.
impl.logger.DPanic("the message type is not CreateCollectionMessage", zap.Error(err)) | ||
return nil | ||
} | ||
impl.flusherComponents.WhenCreateCollection(createCollectionMsg) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whay if the create collection message is produced successfully but the collection creation fails, I think we should add a rollback mechanism?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Got it, I will modify the rootcoord current create collection logic.
if there's a rollback operation, the rootcoord should promise to send a dropcollection message to wal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Implement it in another PR.
[APPROVALNOTIFIER] This PR is APPROVED Approval requirements bypassed by manually added approval. This pull-request has been approved by: chyezh The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |
dataServices[vchannel] = ds.(*dataSyncServiceWrapper) | ||
continue | ||
} | ||
if firstErr == nil { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
return err if any error is not nil directly.
return err | ||
} | ||
// The channel has been dropped, skip to recover it. | ||
if len(resp.GetInfo().GetSeekPosition().GetMsgID()) == 0 && resp.GetInfo().GetSeekPosition().GetTimestamp() == math.MaxUint64 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wrapping the isDroppedChannel method clarifies the implicit checks involved with a dropped channel.
issue: #38399