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

Haoran Xuan commented on KAFKA-10800:
-------------------------------------

[~jagsancio]  Thanks for the clarification, now I'm clear about the validation 
part. :)

About these:
{code:java}
1. Set the baseOffset to the snapshotId's endOffset - 1 for every record batch.
2. Set the relative offset for every record to 0.
3. Se the epoch of every batch to the snapshotId's epoch.{code}
I think it's easy to understand 3, but I'm curious why would we need to do 1 
and 2? I guess there should be some benefit or restriction which I'm not 
realized? Thanks!

 

 

> Validate the snapshot id when the state machine creates a snapshot
> ------------------------------------------------------------------
>
>                 Key: KAFKA-10800
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10800
>             Project: Kafka
>          Issue Type: Sub-task
>          Components: replication
>            Reporter: Jose Armando Garcia Sancio
>            Assignee: Haoran Xuan
>            Priority: Major
>
> When the state machine attempts to create a snapshot writer we should 
> validate that the following is true:
>  # The end offset and epoch of the snapshot is less than the high-watermark.
>  # The end offset and epoch of the snapshot is valid based on the leader 
> epoch cache.
> Note that this validation should not be performed when the raft client 
> creates the snapshot writer because in that case the local log is out of date 
> and the follower should trust the snapshot id sent by the partition leader.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to