Hi  Kamal:

Thanks for your feedback.
I had already updated the KIP and relate code in draft PR. You can help to
review again. Thanks

Hi  Luke and all.

According to Kamal's suggestions. I do some small update for this KIP. Just
write a summary here to let you aware it.
(1) change the configure name to remote.copy.lazy.enable to reduce a little
confuse
(2) add broker level configure: log.remote.copy.lazy.enable for better
usage.
(3) note the analyst for the corner case for "local retention = remote
retention"

Thanks!

Regards
Jian


Kamal Chandraprakash <[email protected]> 于2026年1月28日周三 13:30写道:

> Hi Jian,
>
> Thanks for the response.
>
> 1. It is good to maintain the configs both at the topic and broker level.
>
> Topic config: `remote.copy.lazy.enable`
> Broker config: `log.remote.copy.lazy.enable`
>
> If a user wants to enable the lazy copy behaviour for all the topics
> (including the new ones), then they can set
> the broker level config: `log.remote.copy.lazy.enable` to true. Otherwise,
> it will be hard for the user to create
> the new topics with this config set when remote storage is enabled.
>
> > https://github.com/apache/kafka/pull/21361
>
> Left a few comments on the PR. Please take a look. Thanks for the PR!
>
> Thanks,
> Kamal
>
>
> On Mon, Jan 26, 2026 at 7:32 PM jian fu <[email protected]> wrote:
>
> > Hi Kamal:
> >
> > Thank you for your thorough review. Let me give feedback one by one:
> >
> >
> > Kamal 1 : Shall we rename the config `remote.log.latest.enable` to
> > `remote.copy.lazy.enable`?
> >
> > Jian: I think you may mean "remote.log.copy.lazy.enable".  Right? Some
> > other configures for the style's reference:
> > remote.log.copy.disable
> > remote.log.delete.on.disable
> >
> > I think your proposed name is a little better than
> > "remote.log.latest.enable":
> > remote.log.latest.enable focus on "result" and it is confused on "active
> > segment still not allow to be upload"
> > remote.log.copy.lazy.enable focus on "process" and it is confused on "all
> > segment are lazy update due to local segment need to be wait no-active"
> >
> > So I think I can adopt your propose but just want to wait your more
> > comments for this if we can keep current status or adopt
> > "remote.log.copy.lazy.enable"
> >
> >
> > Kamal  2. Do we want to have an equivalent broker config to enable the
> > feature for all the topics in the cluster?
> > Jian: I think we can keep current status especially if the name will be
> > changed to remote.log.copy.lazy.enable due to the another two configures
> > with same style are not broker level:
> > remote.log.copy.disable
> > remote.log.delete.on.disable
> > But it can be changed to broker level with few codes. So I am a little
> > confused if it is worthy to do it or just leave it there without any more
> > changes.
> > Wait for your and some guys' comments
> >
> > Kamal  3. the remote copy is configured to be lazy, What is the behaviour
> > when local and complete retention values are set to the same
> >
> > Jian: This is very interest corner case (I think maybe few person do this
> > thing, but it is interesting case). Let me try to deep dive for it:
> >
> > Actually, this is a valid case because local retention only not allow to
> >
> > remote retention in current code. If they are equal, it is better to skip
> > the update, as you mentioned, since the segment would be immediately
> > deleted after being uploaded to remote storage.
> >
> > However, if we do not upload it to remote storage, the local segment will
> > not be deleted because it waits for the highest offset in remote storage
> to
> > be updated after the upload.
> >
> > Moreover, if we skip the upload but directly update the highest offset in
> > remote storage, it becomes ambiguous whether the segment has already been
> > uploaded or not.
> >
> > Therefore, I came up with a solution. The demo PR is:
> > https://github.com/apache/kafka/pull/21361
> >
> > The idea is to skip the upload but still update the LogStartOffset.
> >
> > Considering this is a corner case, this solution also helps address
> another
> > issue: if the remote storage service is unavailable for a long time,
> local
> > segments may never get deleted forever even it over the retention time.
> >
> > I have added this case to the KIP and described this corner case there.
> > Thanks.
> >
> >
> > Hi @Luke Chen <[email protected]>
> > Sorry to  trouble you. Considering you already voted for this KIP. So I
> > ping you here. Can you also help to take a look the question1 and
> queston2
> > to give some more comments when you are free.
> >
> > Again. Thanks for all comments. They sparked further thoughts, and I look
> > forward to additional comments. Thanks a lot!
> >
> > Regards
> > Jian
> >
> >
> > Kamal Chandraprakash <[email protected]> 于2026年1月24日周六
> > 10:37写道:
> >
> > > Hi Jian,
> > >
> > > Thanks for the KIP! Few questions:
> > >
> > > 1. Shall we rename the config `remote.log.latest.enable` to
> > > `remote.copy.lazy.enable`?
> > >     The word latest somehow relates to the active segment and might
> > confuse
> > > the users.
> > >
> > > 2. Do we want to have an equivalent broker config to enable the feature
> > for
> > > all the topics in the cluster?
> > >     remote.copy.lazy.enable / log.remote.copy.lazy.enable
> > >     retention.ms / log.retention.ms
> > >     local.retention.ms / log.local.retention.ms
> > >
> > > 3. When the remote copy is configured to be lazy, What is the behaviour
> > > when local and complete retention values are set to the same?
> > >     Do we upload the data to remote, then immediately delete it from
> > > both remote and local? Or, do we skip uploading the segment to remote?
> > >
> > > Thanks,
> > > Kamal
> > >
> > > On Wed, Jan 7, 2026 at 6:18 PM jian fu <[email protected]> wrote:
> > >
> > > > Hi Luke:
> > > >
> > > > Thanks for your comments and I am sorry for the delayed response.
> > > > All of your understanding is right.
> > > >
> > > > "However in some cases, users are expecting consumer read with low
> > > > latency as much as possible" that is my case which I need to keep at
> > > least
> > > > one day's low latency to let business handle consume lag or some
> other
> > > > issues.
> > > >
> > > >
> > > > Regarding your comments:
> > > >
> > > >
> > > > 1. remote.log.keep.latest  or remote.log.latest.enable?
> > > >
> > > > remote.log.latest.enable,  let me correct the typo in the KIP content
> > > > though the code is right.
> > > >
> > > > 2. About the configuration doc: Determines whether to upload all
> > segments
> > > > to remote storage including the latest ones within local retention.
> > > > Why do we allow to upload the latest log segment to remote storage?
> The
> > > > latest log segment is the active log segment, right?
> > > >
> > > > Sorry,  it is my mistake.  The graph in the KIP is right. But the
> > > configure
> > > > doc is wrong, It should be
> > > > "Determines whether to upload all non-active segments to remote
> > storage,
> > > > including those still within local retention."
> > > >
> > > >
> > > > Done with the KIP content and related code change!
> > > >
> > > > Thanks a lot for your review and you can help to review again.
> > > >
> > > > Regards
> > > > Jian
> > > >
> > > >
> > > > Luke Chen <[email protected]> 于2026年1月6日周二 17:50写道:
> > > >
> > > > > Hi Jian,
> > > > >
> > > > > Thanks for the KIP!
> > > > >
> > > > > So, your goal is
> > > > > 1. allow consumers who are reading the hot data can still read from
> > the
> > > > > local storage.
> > > > > 2. try to avoid the duplicated data in local and remote as much as
> > > > > possible.
> > > > > Is my understanding correct?
> > > > >
> > > > > Currently, tiered storage keeps local for the local retention
> > time/size
> > > > > because we don't want the consumers who read the hot data with high
> > > > > latency. In this period of time, the duplication in local and
> remote
> > > > > storage is indeed a waste of cost. Although I also agree the cost
> > > should
> > > > > not be that huge because usually the local retention should not set
> > too
> > > > > high. However in some cases, users are expecting consumer read with
> > low
> > > > > latency as much as possible, the local retention is set to a high
> > value
> > > > and
> > > > > only expecting "very cold" data stored in the remote storage. In
> this
> > > > case,
> > > > > this KIP should be helpful.
> > > > >
> > > > >
> > > > > Comments:
> > > > > 1. remote.log.keep.latest  or remote.log.latest.enable?
> > > > > 2. About the configuration doc: Determines whether to upload all
> > > segments
> > > > > to remote storage including the latest ones within local retention.
> > > > > Why do we allow to upload the latest log segment to remote storage?
> > The
> > > > > latest log segment is the active log segment, right?
> > > > >
> > > > >
> > > > > Thank you,
> > > > > Luke
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > On Sun, Jan 4, 2026 at 10:19 PM jian fu <[email protected]>
> > wrote:
> > > > >
> > > > > > Hi All:
> > > > > >
> > > > > > Happy New Year! ! Bumping this thread again for more possible
> > > > discussion
> > > > > > before the vote starts.
> > > > > > Thanks a lot !
> > > > > >
> > > > > > Regards
> > > > > > Jian
> > > > > >
> > > > > > jian fu <[email protected]> 于2025年12月15日周一 20:00写道:
> > > > > >
> > > > > > > Hi All:
> > > > > > >
> > > > > > > Bumping this thread for more discussion. I’d really appreciate
> > more
> > > > > > > suggestions on this optional feature for tiered storage.
> Thanks a
> > > > lot !
> > > > > > >
> > > > > > > Regards
> > > > > > >
> > > > > > > Jian
> > > > > > >
> > > > > > > jian fu <[email protected]> 于2025年12月4日周四 21:54写道:
> > > > > > >
> > > > > > >> Hi All:
> > > > > > >>
> > > > > > >> I updated the KIP content according to Kamal and Haiying's
> > > > discussion:
> > > > > > >> 1  Explicitly emphasized that this is a topic-level optional
> > > feature
> > > > > > >> intended for users who prioritize cost.
> > > > > > >> 1  Added  the cost-saving calculation example
> > > > > > >> 2  Added  additional details about the operational drawback of
> > > this
> > > > > > >> feature: need extra disk expansion for the case: long time
> > remote
> > > > > > >> storage's outage.
> > > > > > >> 3  Added  the scenarios where it may not be very suitable/
> > > > beneficial
> > > > > to
> > > > > > >> enable the feature such as the topic's ratio for remote:local
> > > > > retention
> > > > > > is
> > > > > > >> a very big value.
> > > > > > >>
> > > > > > >> Thanks again for joining the discussion.
> > > > > > >>
> > > > > > >> Regards
> > > > > > >> Jian
> > > > > > >>
> > > > > > >> jian fu <[email protected]> 于2025年12月2日周二 20:27写道:
> > > > > > >>
> > > > > > >>> Hi Kamal:
> > > > > > >>>
> > > > > > >>> I think I understand what you mean now. I’ve updated the
> > picture
> > > in
> > > > > the
> > > > > > >>> link(
> > > > > >
> https://github.com/apache/kafka/pull/20913#issuecomment-3601274230
> > )
> > > > > > >>> .
> > > > > > >>> Could you help double-check whether we’ve reached the same
> > > > > > understanding?
> > > > > > >>> In short. the drawback of this KIP is that, during a long
> time
> > > > remote
> > > > > > >>> storage outage. it will occupied more disk. The max value is
> > the
> > > > > > redundant
> > > > > > >>> part we saving.
> > > > > > >>> Thus. After the outage recovered. It will come back to the
> > > > beginning.
> > > > > > >>> Pls help to correct me if my understanding is wrong!  Thanks
> > > again.
> > > > > > >>>
> > > > > > >>> Regards
> > > > > > >>> Jian
> > > > > > >>>
> > > > > > >>> Kamal Chandraprakash <[email protected]>
> > > > 于2025年12月2日周二
> > > > > > >>> 19:29写道:
> > > > > > >>>
> > > > > > >>>> The already uploaded segments are eligible for deletion from
> > the
> > > > > > broker.
> > > > > > >>>> So, when remote storage is down,
> > > > > > >>>> then those segments can be deleted as per the local
> retention
> > > > > settings
> > > > > > >>>> and
> > > > > > >>>> new segments can occupy those spaces.
> > > > > > >>>> This provides more time for the Admin to act when remote
> > storage
> > > > is
> > > > > > down
> > > > > > >>>> for a longer time.
> > > > > > >>>>
> > > > > > >>>> This is from a reliability perspective.
> > > > > > >>>>
> > > > > > >>>> On Tue, Dec 2, 2025 at 4:47 PM jian fu <
> [email protected]>
> > > > > wrote:
> > > > > > >>>>
> > > > > > >>>> > Hi Kamal and Haiying Cai:
> > > > > > >>>> >
> > > > > > >>>> > maybe you notice that my kafka clusters set 1day local + 3
> > > > days-7
> > > > > > days
> > > > > > >>>> > remote. thus  Haiying Cai‘s configure is 3 hours local + 3
> > > days
> > > > > > >>>> remote.
> > > > > > >>>> >
> > > > > > >>>> > I can explain more about my configure.
> > > > > > >>>> > I try to avoid the latency for some delay consumer to
> access
> > > the
> > > > > > >>>> remote.
> > > > > > >>>> > Maybe some applications may encounter some unexpected
> issue.
> > > but
> > > > > we
> > > > > > >>>> need to
> > > > > > >>>> > give enough time to handle it. In the period, we don't
> want
> > > the
> > > > > > >>>> consumer to
> > > > > > >>>> > access the remote to hurt the whole kafka clusters. So one
> > day
> > > > is
> > > > > > our
> > > > > > >>>> > expectation.
> > > > > > >>>> >
> > > > > > >>>> > I  saw one statement in  Haiying Cai  KIP1248:
> > > > > > >>>> > " Currently, when a new consumer or a fallen-off consumer
> > > > requires
> > > > > > >>>> fetching
> > > > > > >>>> > messages from a while ago, and those messages are no
> longer
> > > > > present
> > > > > > >>>> in the
> > > > > > >>>> > Kafka broker's local storage, the broker must download the
> > > > message
> > > > > > >>>> from the
> > > > > > >>>> > remote tiered storage and subsequently transfer the data
> > back
> > > to
> > > > > the
> > > > > > >>>> > consumer.   "
> > > > > > >>>> > Extend the local retention time is how we try to avoid the
> > > issue
> > > > > > >>>> (Here, we
> > > > > > >>>> > don't consider the case one new consumer use the earliest
> > > > strategy
> > > > > > to
> > > > > > >>>> > consume. it is not often happen in our cases.)
> > > > > > >>>> >
> > > > > > >>>> > So. based my configure. I will see there is one day's
> > > duplicated
> > > > > > >>>> segment
> > > > > > >>>> > wasting in remote storage. Thus I don't use them for real
> > time
> > > > > > >>>> analyst or
> > > > > > >>>> > care about the fast reboot or some thing else.  So propose
> > > this
> > > > > KIP
> > > > > > >>>> to take
> > > > > > >>>> > one topic level optional feature to help us to reduce
> waste
> > > and
> > > > > save
> > > > > > >>>> money.
> > > > > > >>>> >
> > > > > > >>>> > Regards
> > > > > > >>>> > Jian
> > > > > > >>>> >
> > > > > > >>>> > jian fu <[email protected]> 于2025年12月2日周二 18:42写道:
> > > > > > >>>> >
> > > > > > >>>> > > Hi  Kamal:
> > > > > > >>>> > >
> > > > > > >>>> > > Thanks for joining this discussion. Let me try to
> classify
> > > my
> > > > > > >>>> understands
> > > > > > >>>> > > for your good questions:
> > > > > > >>>> > >
> > > > > > >>>> > > 1  Kamal : Do you also have to update the RemoteCopy lag
> > > > > segments
> > > > > > >>>> and
> > > > > > >>>> > > bytes metric?
> > > > > > >>>> > >     Jian:  The code just delay the upload time for local
> > > > > segment.
> > > > > > >>>> So it
> > > > > > >>>> > > seems there is no need to change any lag segments or
> > > metrics.
> > > > > > right?
> > > > > > >>>> > >
> > > > > > >>>> > > 2   Kamal :  As Haiying mentioned, the segments get
> > > eventually
> > > > > > >>>> uploaded
> > > > > > >>>> > to
> > > > > > >>>> > > remote so not sure about the
> > > > > > >>>> > > benefit of this proposal. And, remote storage cost is
> > > > considered
> > > > > > as
> > > > > > >>>> low
> > > > > > >>>> > > when compared to broker local-disk.
> > > > > > >>>> > >      Jian: The cost benefit is about the total size for
> > > > > occupied.
> > > > > > >>>> Take
> > > > > > >>>> > AWS
> > > > > > >>>> > > S3 as example. Tiered price for: 1 GB is 0.02 USD (You
> can
> > > > refer
> > > > > > to
> > > > > > >>>> > > https://calculator.aws/#/createCalculator/S3).
> > > > > > >>>> > >   It is cheaper than local disk. So as I mentioned that
> > the
> > > > > saving
> > > > > > >>>> money
> > > > > > >>>> > > depend on the ratio local vs remote retention time.  If
> > your
> > > > set
> > > > > > the
> > > > > > >>>> > remote
> > > > > > >>>> > > storage time as a long time. The benefit is few, It is
> > just
> > > > > > >>>> avoiding the
> > > > > > >>>> > > waste instead of cost saving.
> > > > > > >>>> > >   So I take it as topic level optional configure instead
> > of
> > > > > > default
> > > > > > >>>> > > feature.
> > > > > > >>>> > >
> > > > > > >>>> > > 3  Kamal:   It provides some cushion during third-party
> > > object
> > > > > > >>>> storage
> > > > > > >>>> > > downtime.
> > > > > > >>>> > >      Jian:   I draw one picture to try to under the
> logic(
> > > > > > >>>> > >
> > > > > >
> https://github.com/apache/kafka/pull/20913#issuecomment-3601274230
> > ).
> > > > > > >>>> You
> > > > > > >>>> > > can help to check if my understanding is right. I seemed
> > > that
> > > > no
> > > > > > >>>> > difference
> > > > > > >>>> > > for them. So for this question. maybe we need to discuss
> > > more
> > > > > > about
> > > > > > >>>> it.
> > > > > > >>>> > The
> > > > > > >>>> > > only difference maybe we may increase a little local
> disk
> > > for
> > > > > temp
> > > > > > >>>> due to
> > > > > > >>>> > > the delay for upload remote. So in the original
> proposal.
> > I
> > > > want
> > > > > > to
> > > > > > >>>> > upload
> > > > > > >>>> > > N-1 segments. But it seems the value is not much.
> > > > > > >>>> > >
> > > > > > >>>> > > BTW. I want to classify one basic rule: this feature
> isn't
> > > to
> > > > > > >>>> change the
> > > > > > >>>> > > default behavior. and the saving amount is not very big
> > > value
> > > > in
> > > > > > all
> > > > > > >>>> > cases.
> > > > > > >>>> > > It is suitable for part of topic which set a low ratio
> for
> > > > > > >>>> remote/local
> > > > > > >>>> > > such as 7days/1days or 3days/1day
> > > > > > >>>> > > At the last. Thanks again for your time and your
> comments.
> > > All
> > > > > the
> > > > > > >>>> > > questions are valid and good for us to thing more about
> > it.
> > > > > > >>>> > >
> > > > > > >>>> > > Regards
> > > > > > >>>> > > Jian
> > > > > > >>>> > >
> > > > > > >>>> > >
> > > > > > >>>> > > Kamal Chandraprakash <[email protected]>
> > > > > > 于2025年12月2日周二
> > > > > > >>>> > > 17:41写道:
> > > > > > >>>> > >
> > > > > > >>>> > >> 1. Do you also have to update the RemoteCopy lag
> segments
> > > and
> > > > > > bytes
> > > > > > >>>> > >> metric?
> > > > > > >>>> > >> 2. As Haiying mentioned, the segments get eventually
> > > uploaded
> > > > > to
> > > > > > >>>> remote
> > > > > > >>>> > so
> > > > > > >>>> > >> not sure about the
> > > > > > >>>> > >> benefit of this proposal. And, remote storage cost is
> > > > > considered
> > > > > > >>>> as low
> > > > > > >>>> > >> when compared to broker local-disk.
> > > > > > >>>> > >> It provides some cushion during third-party object
> > storage
> > > > > > >>>> downtime.
> > > > > > >>>> > >>
> > > > > > >>>> > >>
> > > > > > >>>> > >> On Tue, Dec 2, 2025 at 2:45 PM Kamal Chandraprakash <
> > > > > > >>>> > >> [email protected]> wrote:
> > > > > > >>>> > >>
> > > > > > >>>> > >> > Hi Jian,
> > > > > > >>>> > >> >
> > > > > > >>>> > >> > Thanks for the KIP!
> > > > > > >>>> > >> >
> > > > > > >>>> > >> > When remote storage is unavailable for a few hrs,
> then
> > > with
> > > > > > lazy
> > > > > > >>>> > upload
> > > > > > >>>> > >> > there is a risk of the broker disk getting full soon.
> > > > > > >>>> > >> > The Admin has to configure the local retention
> configs
> > > > > > >>>> properly.  With
> > > > > > >>>> > >> > eager upload, the disk utilization won't grow
> > > > > > >>>> > >> > until the local retention time (expectation is that
> all
> > > the
> > > > > > >>>> > >> > passive segments are uploaded). And, provides some
> time
> > > > > > >>>> > >> > for the Admin to take any action based on the
> > situation.
> > > > > > >>>> > >> >
> > > > > > >>>> > >> > --
> > > > > > >>>> > >> > Kamal
> > > > > > >>>> > >> >
> > > > > > >>>> > >> > On Tue, Dec 2, 2025 at 10:28 AM Haiying Cai via dev <
> > > > > > >>>> > >> [email protected]>
> > > > > > >>>> > >> > wrote:
> > > > > > >>>> > >> >
> > > > > > >>>> > >> >> Jian,
> > > > > > >>>> > >> >>
> > > > > > >>>> > >> >> Understands this is an optional feature and the cost
> > > > saving
> > > > > > >>>> depends
> > > > > > >>>> > on
> > > > > > >>>> > >> >> the ratio between local.retention.ms and total
> > > > retention.ms
> > > > > .
> > > > > > >>>> > >> >>
> > > > > > >>>> > >> >> In our setup, we have local.retention set to 3 hours
> > and
> > > > > total
> > > > > > >>>> > >> retention
> > > > > > >>>> > >> >> set to 3 days, so the saving is not going to be
> > > > significant.
> > > > > > >>>> > >> >>
> > > > > > >>>> > >> >> On 2025/12/01 05:33:11 jian fu wrote:
> > > > > > >>>> > >> >> > Hi Haiying Cai,
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > Thanks for joining the discussion for this KIP.
> All
> > of
> > > > > your
> > > > > > >>>> > concerns
> > > > > > >>>> > >> are
> > > > > > >>>> > >> >> > valid, and that is exactly why I introduced a
> > > > topic-level
> > > > > > >>>> > >> configuration
> > > > > > >>>> > >> >> to
> > > > > > >>>> > >> >> > make this feature optional. This means that, by
> > > default,
> > > > > the
> > > > > > >>>> > behavior
> > > > > > >>>> > >> >> > remains unchanged. Only when users are not
> pursuing
> > > > faster
> > > > > > >>>> broker
> > > > > > >>>> > >> boot
> > > > > > >>>> > >> >> time
> > > > > > >>>> > >> >> > or other optimizations — and care more about cost
> —
> > > > would
> > > > > > they
> > > > > > >>>> > enable
> > > > > > >>>> > >> >> this
> > > > > > >>>> > >> >> > option to some topics to save resources.
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > Regarding cost self: the actual savings depend on
> > the
> > > > > ratio
> > > > > > >>>> between
> > > > > > >>>> > >> >> local
> > > > > > >>>> > >> >> > retention and remote retention. In the KIP/PR, I
> > > > provided
> > > > > a
> > > > > > >>>> test
> > > > > > >>>> > >> >> example:
> > > > > > >>>> > >> >> > if we configure 1 day of local retention and 2
> days
> > of
> > > > > > remote
> > > > > > >>>> > >> >> retention, we
> > > > > > >>>> > >> >> > can save about 50%. And realistically, I don't
> think
> > > > > anyone
> > > > > > >>>> would
> > > > > > >>>> > >> boldly
> > > > > > >>>> > >> >> > set local retention to a very small value (such as
> > > > > minutes)
> > > > > > >>>> due to
> > > > > > >>>> > >> the
> > > > > > >>>> > >> >> > latency concerns associated with remote storage.
> So
> > in
> > > > > > short,
> > > > > > >>>> the
> > > > > > >>>> > >> >> feature
> > > > > > >>>> > >> >> > will help reduce cost, and the amount saved simply
> > > > depends
> > > > > > on
> > > > > > >>>> the
> > > > > > >>>> > >> ratio.
> > > > > > >>>> > >> >> > Take my company's usage as real example, we
> > configure
> > > > most
> > > > > > of
> > > > > > >>>> the
> > > > > > >>>> > >> >> topics: 1
> > > > > > >>>> > >> >> > day of local retention and 3–7 days of remote
> > storage
> > > (3
> > > > > > days
> > > > > > >>>> for
> > > > > > >>>> > >> topic
> > > > > > >>>> > >> >> > with log/metric usage, 7 days for topic with
> normal
> > > > > business
> > > > > > >>>> > usage).
> > > > > > >>>> > >> >> and we
> > > > > > >>>> > >> >> > don't care about the boot speed and some thing
> else,
> > > > This
> > > > > > KIP
> > > > > > >>>> > allows
> > > > > > >>>> > >> us
> > > > > > >>>> > >> >> to
> > > > > > >>>> > >> >> > save 1/7 to 1/3 of the total disk usage for remote
> > > > > storage.
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > Anyway, this is just a topic-level optional
> feature
> > > > which
> > > > > > >>>> don't
> > > > > > >>>> > >> reject
> > > > > > >>>> > >> >> the
> > > > > > >>>> > >> >> > benifit for current design. Thanks again for the
> > > > > discussion.
> > > > > > >>>> I can
> > > > > > >>>> > >> >> update
> > > > > > >>>> > >> >> > the KIP to better classify scenarios where this
> > > optional
> > > > > > >>>> feature is
> > > > > > >>>> > >> not
> > > > > > >>>> > >> >> > suitable. Currently, I only listed real-time
> > analytics
> > > > as
> > > > > > the
> > > > > > >>>> > >> negative
> > > > > > >>>> > >> >> > example.
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > Welcome further discussion to help make this KIP
> > more
> > > > > > >>>> complete.
> > > > > > >>>> > >> Thanks!
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > Regards,
> > > > > > >>>> > >> >> > Jian
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > Haiying Cai via dev <[email protected]>
> > > > > 于2025年12月1日周一
> > > > > > >>>> > 12:40写道:
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >> > > Jian,
> > > > > > >>>> > >> >> > >
> > > > > > >>>> > >> >> > > Thanks for the contribution.  But I feel the
> > > uploading
> > > > > the
> > > > > > >>>> local
> > > > > > >>>> > >> >> segment
> > > > > > >>>> > >> >> > > file to remote storage ASAP is advantageous in
> > > several
> > > > > > >>>> scenarios:
> > > > > > >>>> > >> >> > >
> > > > > > >>>> > >> >> > > 1. Enable the fast bootstrapping a new broker.
> A
> > > new
> > > > > > broker
> > > > > > >>>> > >> doesn’t
> > > > > > >>>> > >> >> have
> > > > > > >>>> > >> >> > > to replicate all the data from the leader
> broker,
> > it
> > > > > only
> > > > > > >>>> needs
> > > > > > >>>> > to
> > > > > > >>>> > >> >> > > replicate the data from the tail of the remote
> log
> > > > > segment
> > > > > > >>>> to the
> > > > > > >>>> > >> >> tail of
> > > > > > >>>> > >> >> > > the current end of the topic (LSO) since all the
> > > other
> > > > > > data
> > > > > > >>>> are
> > > > > > >>>> > in
> > > > > > >>>> > >> the
> > > > > > >>>> > >> >> > > remote tiered storage and it can download them
> > later
> > > > > > >>>> lazily, this
> > > > > > >>>> > >> is
> > > > > > >>>> > >> >> what
> > > > > > >>>> > >> >> > > KIP-1023 trying to solve;
> > > > > > >>>> > >> >> > > 2. Although nobody has proposed a KIP to allow a
> > > > > consumer
> > > > > > >>>> client
> > > > > > >>>> > to
> > > > > > >>>> > >> >> read
> > > > > > >>>> > >> >> > > from the remote tiered storage directly, but
> this
> > > will
> > > > > > >>>> helps the
> > > > > > >>>> > >> >> > > fall-behind consumer to do catch-up reads or
> > perform
> > > > the
> > > > > > >>>> > backfill.
> > > > > > >>>> > >> >> This
> > > > > > >>>> > >> >> > > path allows the consumer backfill to finish
> > without
> > > > > > >>>> polluting the
> > > > > > >>>> > >> >> broker’s
> > > > > > >>>> > >> >> > > page cache.  The earlier the data is on the
> remote
> > > > > tiered
> > > > > > >>>> > storage,
> > > > > > >>>> > >> >> the more
> > > > > > >>>> > >> >> > > advantageous it is for the client.
> > > > > > >>>> > >> >> > >
> > > > > > >>>> > >> >> > > I think in your Proposal, you are delaying
> > uploading
> > > > the
> > > > > > >>>> segment
> > > > > > >>>> > >> but
> > > > > > >>>> > >> >> the
> > > > > > >>>> > >> >> > > file will still be uploaded at a later time, I
> > guess
> > > > > this
> > > > > > >>>> can
> > > > > > >>>> > >> saves a
> > > > > > >>>> > >> >> few
> > > > > > >>>> > >> >> > > hours storage cost for that file in the remote
> > > > storage,
> > > > > > not
> > > > > > >>>> sure
> > > > > > >>>> > >> >> whether
> > > > > > >>>> > >> >> > > that is a significant cost saved (if the file
> > needs
> > > to
> > > > > > stay
> > > > > > >>>> in
> > > > > > >>>> > >> remote
> > > > > > >>>> > >> >> > > tiered storage for several days or weeks due to
> > > > > retention
> > > > > > >>>> > policy).
> > > > > > >>>> > >> >> > >
> > > > > > >>>> > >> >> > > On 2025/11/19 13:29:11 jian fu wrote:
> > > > > > >>>> > >> >> > > > Hi everyone, I'd like to start a discussion on
> > > > > KIP-1241,
> > > > > > >>>> the
> > > > > > >>>> > goal
> > > > > > >>>> > >> >> is to
> > > > > > >>>> > >> >> > > > reduce the remote storage. KIP:
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> > >
> > > > > > >>>> > >> >>
> > > > > > >>>> > >>
> > > > > > >>>> >
> > > > > > >>>>
> > > > > >
> > > > >
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-1241%3A+Reduce+tiered+storage+redundancy+with+delayed+upload
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> > > > The Draft PR:
> > > > > > >>>> https://github.com/apache/kafka/pull/20913
> > > > > > >>>> > >> >> Problem:
> > > > > > >>>> > >> >> > > > Currently,
> > > > > > >>>> > >> >> > > > Kafka's tiered storage implementation uploads
> > all
> > > > > > >>>> non-active
> > > > > > >>>> > >> local
> > > > > > >>>> > >> >> log
> > > > > > >>>> > >> >> > > > segments to remote storage immediately, even
> > when
> > > > they
> > > > > > are
> > > > > > >>>> > still
> > > > > > >>>> > >> >> within
> > > > > > >>>> > >> >> > > the
> > > > > > >>>> > >> >> > > > local retention period.
> > > > > > >>>> > >> >> > > > This results in redundant storage of the same
> > data
> > > > in
> > > > > > both
> > > > > > >>>> > local
> > > > > > >>>> > >> and
> > > > > > >>>> > >> >> > > remote
> > > > > > >>>> > >> >> > > > tiers.
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> > > > When there is no requirement for real-time
> > > analytics
> > > > > or
> > > > > > >>>> > immediate
> > > > > > >>>> > >> >> > > > consumption based on remote storage. It has
> the
> > > > > > following
> > > > > > >>>> > >> drawbacks:
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> > > > 1. Wastes storage capacity and costs: The same
> > > data
> > > > is
> > > > > > >>>> stored
> > > > > > >>>> > >> twice
> > > > > > >>>> > >> >> > > during
> > > > > > >>>> > >> >> > > > the local retention window
> > > > > > >>>> > >> >> > > > 2. Provides no immediate benefit: During the
> > local
> > > > > > >>>> retention
> > > > > > >>>> > >> period,
> > > > > > >>>> > >> >> > > reads
> > > > > > >>>> > >> >> > > > prioritize local data, making the remote copy
> > > > > > unnecessary
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> > > > So. this KIP is to reduce tiered storage
> > > redundancy
> > > > > with
> > > > > > >>>> > delayed
> > > > > > >>>> > >> >> upload.
> > > > > > >>>> > >> >> > > > You can check the test result example here
> > > directly:
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >>
> > > > > >
> https://github.com/apache/kafka/pull/20913#issuecomment-3547156286
> > > > > > >>>> > >> >> > > > Looking forward to your feedback! Best
> regards,
> > > Jian
> > > > > > >>>> > >> >> > > >
> > > > > > >>>> > >> >> >
> > > > > > >>>> > >> >
> > > > > > >>>> > >> >
> > > > > > >>>> > >>
> > > > > > >>>> > >
> > > > > > >>>> > >
> > > > > > >>>> > >
> > > > > > >>>> > >
> > > > > > >>>> >
> > > > > > >>>>
> > > > > > >>>
> > > > > > >>>
> > > > > > >>>
> > > > > > >>>
> > > > > > >>>
> > > > > > >>
> > > > > > >>
> > > > > > >>
> > > > > > >
> > > > > > > --
> > > > > > > Regards
> > > > > > >
> > > > > > > Fu.Jian
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to