[ 
https://issues.apache.org/jira/browse/KAFKA-14347?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17627365#comment-17627365
 ] 

Vincent Jiang commented on KAFKA-14347:
---------------------------------------

Related issue: https://issues.apache.org/jira/browse/KAFKA-4546

> deleted records may be kept unexpectedly when leader changes while adding a 
> new replica
> ---------------------------------------------------------------------------------------
>
>                 Key: KAFKA-14347
>                 URL: https://issues.apache.org/jira/browse/KAFKA-14347
>             Project: Kafka
>          Issue Type: Improvement
>            Reporter: Vincent Jiang
>            Priority: Major
>
> Consider that in a compacted topic, a regular record _k1=v1_  is deleted by a 
> later tombstone record {_}k1=null{_}{_}.{_}  And imagine that somehow __ log 
> compaction is making different progress on the three replicas, {_}r1{_}, _r2_ 
> and _r3:_
> _-_ on replica {_}r1{_}, log compaction has not cleaned _k1=v1_ or _k1=null_ 
> yet.
> - on replica {_}r2{_}, log compaction cleaned and removed both _k1=v1_ and 
> _k1=null._
> In this case, following sequence can cause record _k1=v1_ being kept 
> unexpectedly:
> 1.  Replica _r3_ is re-assigned to a different node and starts to replicate 
> data from leader. 
> 2. At the beginning, _r1_ is the leader, so _r3_ replicates record _k1=v1_ 
> from {_}r1{_}.
> 3. Before _k1=null_ is replicated from {_}r1{_}, leader changes to {_}r2{_}.
> 4. _r3_ replicates data from {_}r2{_}.  Because _k1=null_ record has been 
> cleaned in {_}r2{_}, it will not be replicated.
> As a result, _r3_ has record _k1=v1_ but not {_}k1=null{_}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to