-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[fix](compatibility) Fix compatibility issue of PRowBatch and some tablet sink bugs #8000
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
[fix](compatibility) Fix compatibility issue of PRowBatch and some tablet sink bugs #8000
Conversation
be/src/exec/tablet_sink.cpp
Outdated
| auto st = channel->add_row(tuple, tablet_id); | ||
| if (!st.ok()) { | ||
| mark_as_failed(channel, st.get_error_msg(), tablet_id); | ||
| mark_as_failed(channel.get(), st.get_error_msg(), tablet_id); |
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.
Why not change mark_as_failed signature to accept shared_ptr ?
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.
I think it is not necessary, and it will cause extra shared ptr copy.
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.
But I don't think it's a good practice to mix smart pointers and raw pointers. When we use smart pointers, we already imply that object ownership is managed by smart pointers instead of accessing raw pointers.
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.
OK, I will change it
yangzhg
left a comment
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.
LGTM
|
PR approved by at least one committer and no changes requested. |
|
PR approved by anyone and no changes requested. |
1. set both tuple_offsets and new_tuple_offsets in PRowBatch for compatibility 2. set FE config `repair_slow_replica` default to false Avoid impacting the load process after upgrading. Eg, if there are only 2 replicas, one is with high version count. After upgrade, that replica will be set to bad, so that the load process will be stopped because only 1 replica is alive.
86c5ca8 to
fb21ee0
Compare
yangzhg
left a comment
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.
LGTM
|
PR approved by at least one committer and no changes requested. |
Proposed changes
Issue Number: close #xxx
Problem Summary:
tuple_offsetsandnew_tuple_offsetsin PRowBatch for compatibilityrepair_slow_replicadefault to falseAvoid impacting the load process after upgrading.
Eg, if there are only 2 replicas, one is with high version count. After upgrade,
that replica will be set to bad, so that the load process will be stopped
because only 1 replica is alive.
close_wait()Forget to set
add_batch_finishflag after the last rpc finished.Checklist(Required)
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...