Hi Lijun, Sorry, I think more about this, and read your reply again, I think I misunderstood it.
> If the user is fine with -1 as the retention.ms, which means they're not troubled by this metadata increasing issue yet, they don't need to do the migration. I don't think this is accepted. Firstly, no one is OK with the unbounded size topic. They use -1 just because it is the default value and the disk size is still enough so far. So, everyone needs a migration plan. Therefore, the goal is: how we can make the existing retention.ms=-1 users successfully migrate to the compacted topic without data loss. Look forward to your good solution. :) Luke On Wed, Aug 19, 2026 at 11:28 AM Luke Chen <[email protected]> wrote: > Hi Lijun, > > I like the updated solution. > 1. When upgrading to the new version containing this feature, the ` > remote.log.metadata.topic.retention.ms` is still -1 (or any > existing value). The only change is that the new metadata records will be > written with a key. > 2. Then we need the detailed design to this: "we can directly do some > message format check and decide whether it's ok to make the topic > compacted". So users don't need to worry about the data loss during the > migration process. > > Look forward to the detailed design. > > Thank you, > Luke > > > On Wed, Aug 19, 2026 at 8:49 AM Lijun Tong <[email protected]> > wrote: > >> Hey Luke, >> >> Thanks for your response! >> >> > "and once the old keyless records age out, the transition to >> > compaction-based cleanup is complete." >> > >> > How will you achieve this? Could you elaborate more on this? >> >> >> I do want to point out that even without this KIP's change, currently user >> needs to set their __remote_log_metadata topic's retention time so their >> remote metadata will not increase permanently, this is recorded in the >> tiered storage KIP[1] like I excerpted below: >> >> *remote.log.metadata.topic.retention.ms >> <http://remote.log.metadata.topic.retention.ms>* >> >> Retention of the topic in milli seconds. >> >> Default: -1, that means unlimited. >> >> Users can configure this value based on their usecases. To avoid any data >> loss, this value should be more than the maximum retention period of any >> topic enabled with tiered storage in the cluster. >> >> So the old keyless records will age out naturally even we don't ask the >> user to configure retention.ms in the migration path. >> >> If the user is fine with -1 as the retention.ms, which means they're not >> troubled by this metadata increasing issue yet, they don't need to do the >> migration. >> >> If we decide to remove the retention.ms from the migration path, I don't >> envision we will need a 3 steps migration anymore, we can directly do some >> message format check and decide whether it's ok to make the topic >> compacted, the metadata remote.log.metadata.version will only have 2 >> value, >> which is 0 and 1. I think this change will answer most of the edge case >> related questions you have listed above. >> >> >> Let me know if you have other questions, thanks! >> >> [1] >> >> https://cwiki.apache.org/confluence/spaces/KAFKA/pages/97554472/KIP-405+Kafka+Tiered+Storage#KIP405%3AKafkaTieredStorage-Configs >> >> Best, >> Lijun Tong >> >> >> Luke Chen <[email protected]> 于2026年8月18日周二 02:02写道: >> >> > Hi Lijun, >> > >> > Thanks for the reply. >> > >> > > "and once the old keyless records age out, the transition to >> > compaction-based cleanup is complete." >> > >> > How will you achieve this? Could you elaborate more on this? >> > >> > I want to make sure our migration strategy covers every edge case to >> > completely eliminate the risk of data loss, >> > >> > I think what I expect is our migration strategy covers every edge case >> to >> > completely eliminate the risk of data loss (i.e. unable to fetch from >> the >> > remote storage). So maybe you can think more about these questions >> first: >> > LC4.2: How can we avoid data loss when users directly move the version >> from >> > 0 -> 2? >> > LC4.3: How can we avoid data loss when a short retention.ms is set for >> the >> > internal topic? If it's the solution above, it needs more detailed >> > information. >> > LC4.4: How can we avoid data loss when users stay >> > in remote.log.metadata.version 1 for a long time? >> > LC4.6: How can we avoid data loss if the configs are altered >> > after remote.log.metadata.version moves to 1? >> > LC4.13. How can we avoid data loss if users are currently using >> > retention.bytes for tiered storage topics when migration? >> > >> > >> > Thank you, >> > Luke >> > >> > >> > On Wed, Aug 12, 2026 at 1:11 PM Lijun Tong <[email protected]> >> > wrote: >> > >> > > Hi Luke, >> > > >> > > Thanks for the thoughtful feedback — I appreciate you pushing on this. >> > > >> > > >> > > You raise a fair point about the distinction between user topics and >> > > internal control-plane topics like __remote_log_metadata. I agree >> that we >> > > should treat internal topics with extra care, and that relying on >> users >> > to >> > > manually coordinate retention.ms with their longest >> > remote-storage-enabled >> > > topic introduces a fragile safeguard. >> > > >> > > >> > > So here's an alternative approach: what if we simply don't ask the >> user >> > to >> > > explicitly set retention.ms on __remote_log_metadata at all during >> > > migration? Instead, we can just use whatever retention value is >> already >> > > configured on the topic. The migration would still complete naturally >> > once >> > > all the legacy keyless messages have been deleted by the existing >> > retention >> > > policy — no manual user intervention required. >> > > >> > > This way, we avoid introducing any new risk of data loss during >> > migration, >> > > since we're not asking users to change anything on the control-plane >> > topic. >> > > The migration simply works with the retention behavior that's already >> in >> > > effect, and once the old keyless records age out, the transition to >> > > compaction-based cleanup is complete. >> > > >> > > >> > > What do you think? Would this address your concern? >> > > >> > > Best, Lijun >> > > >> > > Luke Chen <[email protected]> 于2026年8月11日周二 20:25写道: >> > > >> > > > Hi Lijun, >> > > > >> > > > Thanks for the response. >> > > > >> > > > > The scenario you outlined — where a user sets retention.ms to 14 >> > days >> > > > on a >> > > > topic that has remote-storage-enabled data spanning 30 days — is >> > > actually a >> > > > risk that exists *today*, independent of this KIP. As soon as a user >> > > > enables tiered storage for a topic, they already bear the >> > responsibility >> > > of >> > > > configuring retention.ms correctly to avoid unintended data >> deletion. >> > > This >> > > > KIP doesn't introduce that risk; it inherits it from the original >> > tiered >> > > > storage design. >> > > > >> > > > I know what you mean. I think there is a key difference between >> setting >> > > > retention.ms on a user topic vs. the internal __remote_log_metadata >> > > topic: >> > > > the __remote_log_metadata is shared and cluster-wide control plane >> > topic >> > > > (that's why we call it internal topic), which serves for all tiered >> > > storage >> > > > topics. Its records are system pointers/indexes/metadata, not >> business >> > > > data. I think you know the risk, so instead of asking users to set a >> > > > retention time they like as a normal user topic, you ask users to >> set >> > > > retention.ms higher than the retention period of the longest >> > > > remote-storage-enabled topic. But then, we lose any other safeguard >> > when >> > > > users extend a user topic retention time from 14 days to 30 days, >> which >> > > > causes data loss (unable to fetch from the remote storage). This is >> > why I >> > > > think we should improve it. >> > > > >> > > > Again, we're handling the control-plane topic, which should treat it >> > more >> > > > carefully than user topics. >> > > > >> > > > > That said, I do want to highlight what this KIP is trying to >> > > accomplish: >> > > > once the migration is complete, this risk goes away. The new design >> > > > eliminates the need for operators to carefully coordinate >> retention.ms >> > > > with >> > > > their remote storage retention, because compaction can apply to new >> > data >> > > > going forward. So in a sense, the migration path is the bridge that >> > gets >> > > > users *out of* this risky situation, not into it. >> > > > >> > > > I know and thanks for the proposal for the migration path. I can >> see we >> > > > want to help users on the migration path, but we still need to >> > eliminate >> > > > the risks of data loss during migration. >> > > > >> > > > >> > > > Thank you, >> > > > Luke >> > > > >> > > > On Wed, Aug 12, 2026 at 12:15 AM Lijun Tong < >> [email protected]> >> > > > wrote: >> > > > >> > > > > Hey Luke, >> > > > > >> > > > > Thanks for the feedback — I really appreciate you taking the time >> to >> > > walk >> > > > > through that scenario. Data durability is absolutely a top >> priority, >> > > and >> > > > > I'm glad we're digging into this. >> > > > > >> > > > > I'd like to offer a slightly different perspective on the risk you >> > > > > described, though. >> > > > > >> > > > > The scenario you outlined — where a user sets retention.ms to 14 >> > days >> > > > on a >> > > > > topic that has remote-storage-enabled data spanning 30 days — is >> > > > actually a >> > > > > risk that exists *today*, independent of this KIP. As soon as a >> user >> > > > > enables tiered storage for a topic, they already bear the >> > > responsibility >> > > > of >> > > > > configuring retention.ms correctly to avoid unintended data >> > deletion. >> > > > This >> > > > > KIP doesn't introduce that risk; it inherits it from the original >> > > tiered >> > > > > storage design. >> > > > > >> > > > > If we believe this risk is too significant to ask operators to >> manage >> > > > > during a migration window, then I think we'd also need to >> acknowledge >> > > > that >> > > > > it's too significant to let operators manage in normal production >> > usage >> > > > > right now — because the exposure is the same. In both cases, a >> > > > > misconfigured retention.ms on a tiered-storage-enabled topic can >> > lead >> > > to >> > > > > data loss. >> > > > > >> > > > > That said, I do want to highlight what this KIP is trying to >> > > accomplish: >> > > > > once the migration is complete, this risk goes away. The new >> design >> > > > > eliminates the need for operators to carefully coordinate >> > retention.ms >> > > > > with >> > > > > their remote storage retention, because compaction can apply to >> new >> > > data >> > > > > going forward. So in a sense, the migration path is the bridge >> that >> > > gets >> > > > > users *out of* this risky situation, not into it. >> > > > > >> > > > > Even in the scenario where we simply respect the retention.ms >> that >> > the >> > > > > user >> > > > > has already configured — without requiring any additional manual >> > > checks — >> > > > > the end state is still strictly better than what users have today, >> > > > because >> > > > > new messages will benefit from compaction. >> > > > > >> > > > > I completely agree that we should make the migration as safe and >> > smooth >> > > > as >> > > > > possible, and I'll take a closer look at KIP-866 and KIP-848 for >> > > > > inspiration on how they handled their migration paths. If there >> are >> > > > > reasonable guardrails we can add (such as automatic configuration >> of >> > > the >> > > > > retention.ms based on current longest remote-storage-enabled >> topic's >> > > > > retention time), I'm very open to that. I just want to make sure >> > we're >> > > > > framing the risk accurately — as a pre-existing concern rather >> than >> > one >> > > > > introduced by this proposal. >> > > > > >> > > > > Happy to discuss further. Thanks again for the thoughtful review! >> > > > > >> > > > > Thanks, >> > > > > >> > > > > Lijun Tong >> > > > > >> > > > > Luke Chen <[email protected]> 于2026年8月11日周二 01:01写道: >> > > > > >> > > > > > Hi Lijun, >> > > > > > >> > > > > > Thanks for your reply. >> > > > > > I’ll send a detailed reply later when available, but I wanted to >> > > > address >> > > > > a >> > > > > > core concern first. >> > > > > > >> > > > > > About the migration strategy, we can't rely on documentation to >> > > prevent >> > > > > > potential data loss. We have to protect users from operational >> > > mistakes >> > > > > > because data durability is why users trust Kafka in the first >> > place. >> > > > > > >> > > > > > In the current design of the migration path, for example, we >> want >> > > users >> > > > > to >> > > > > > set retention.ms higher than the retention period of the >> longest >> > > > > > remote-storage-enabled topic. That means the operator needs to >> > check >> > > it >> > > > > > before migrating to version 1. It is easy for a 10 topic >> cluster. >> > But >> > > > > for a >> > > > > > hundreds of topic cluster, it'll be difficult and error-prone. >> Even >> > > if >> > > > > they >> > > > > > complete the check and set to 14 days retention time, some users >> > > could >> > > > > > still change the retention period for a remote-storage-enabled >> > topic >> > > to >> > > > > 30 >> > > > > > days later. Then 14 days later, the retention deletion kicks >> off, >> > it >> > > > will >> > > > > > cause data loss for the topics, right? Also, if the >> > > > > remote-storage-enabled >> > > > > > topic is set as retention size, not retention time, what can >> they >> > do? >> > > > > > >> > > > > > This is just an example to highlight the flaw in the current >> > design. >> > > We >> > > > > > need to rethink this path so the system can protect unexpected >> > issues >> > > > > > happening rather than leaving it as a manual effort for >> operators. >> > > > > > >> > > > > > You can check other KIPs to see how they have considered to >> achieve >> > > the >> > > > > > migration. The best example is KIP-866[1] : ZK migrating to >> KRaft. >> > > The >> > > > > > other good example is KIP-848[2]. >> > > > > > >> > > > > > I really appreciate the thought and effort put into this >> proposal! >> > > > Please >> > > > > > let me know if you have any questions, and we can discuss >> further. >> > > > > > >> > > > > > >> > > > > > [1]: >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://cwiki.apache.org/confluence/spaces/KAFKA/pages/225153708/KIP-866+ZooKeeper+to+KRaft+Migration >> > > > > > [2] >> > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://cwiki.apache.org/confluence/spaces/KAFKA/pages/217387038/KIP-848+The+Next+Generation+of+the+Consumer+Rebalance+Protocol#KIP848%3ATheNextGenerationoftheConsumerRebalanceProtocol-SupportingOnlineConsumerGroupUpgrade >> > > > > > >> > > > > > >> > > > > > >> > > > > > Thank you, >> > > > > > Luke >> > > > > > >> > > > > > >> > > > > > >> > > > > > On Mon, Aug 10, 2026 at 12:49 PM Lijun Tong < >> > [email protected] >> > > > >> > > > > > wrote: >> > > > > > >> > > > > > > Hey Luke, >> > > > > > > >> > > > > > > Thanks for your response, I have answered your questions >> below. >> > > > > > > >> > > > > > > LC1. In scenario 1, we have 2 records with different keys (one >> > with >> > > > > > :UPDATE >> > > > > > > suffix), how could we achieve the final result after log >> > > compaction: >> > > > > > > Retains only latest → abc123:topicA:0:1000:3 = FINISHED (T1 >> > > compacted >> > > > > > away) >> > > > > > > >> > > > > > > Current log compaction only compares the record key and keeps >> the >> > > > > latest >> > > > > > > value for the same key. So in this case, shouldn't we keep >> these >> > 2 >> > > > > > records >> > > > > > > after log compaction? >> > > > > > > >> > > > > > > *Re LC1:* This is correct. My apologies for the inconsistency >> in >> > > the >> > > > > > > proposal. I have updated the proposal to fix this issue. >> > > > > > > >> > > > > > > LC2. What does "Audit topic" mean here? >> > > > > > > >> > > > > > > *Re LC2:* Please disregard the reference to the audit topic. I >> > > > thought >> > > > > I >> > > > > > > had already refactored the proposal to remove it. >> > > > > > > >> > > > > > > For some background, my original intention was to retain the >> > > keyless >> > > > > > topic >> > > > > > > as an audit topic. However, after discussing this with others >> > > earlier >> > > > > in >> > > > > > > this email thread, we concluded that an audit topic is >> > unnecessary, >> > > > so >> > > > > I >> > > > > > > removed this concept from the design. >> > > > > > > >> > > > > > > LC3. If we already store the endOffset and brokerLeaderEpoch >> in >> > the >> > > > > > record >> > > > > > > key, why should we still need them stored in the record value? >> > > > > > > >> > > > > > > *Re LC3:* This is a good question. The reason is related to >> how >> > > > > > > RemoteLogManager currently interacts with >> RemoteMetadataManager. >> > > > > > > >> > > > > > > With the current implementation, RemoteLogManager only has >> access >> > > to >> > > > > the >> > > > > > > metadata value; it does not have the record key available at >> that >> > > > > point. >> > > > > > > TopicBasedRemoteLogMetadataManager is only one implementation >> > for >> > > > the >> > > > > > > RemoteLogMetadataManager, the key needs to be constructed from >> > the >> > > > > > metadata >> > > > > > > value rather than the other way around. >> > > > > > > >> > > > > > > For example, see: >> > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://github.com/apache/kafka/blob/4.3.1/storage/src/main/java/org/apache/kafka/server/log/remote/storage/RemoteLogManager.java#L1053 >> > > > > > > >> > > > > > > LC4. About the migration: >> > > > > > > >> > > > > > > LC4.1. For "upgrade-to-v1" and "upgrade-to-v2", what's the >> > > difference >> > > > > > with: >> > > > > > > bin/kafka-features.sh --bootstrap-server localhost:9092 >> upgrade >> > > > > --feature >> > > > > > > remote.log.storage.version=1 >> > > > > > > >> > > > > > > *Re LC4.1:* I actually changed the feature name from >> > > > > > > remote.log.storage.version to remote.log.metadata.version, >> since >> > I >> > > > > think >> > > > > > > the latter better reflects what is being versioned. >> > > > > > > >> > > > > > > If the user runs: >> > > > > > > >> > > > > > > kafka-remote-log-metadata-migration.sh --bootstrap-server >> > > > > localhost:9092 >> > > > > > > --upgrade-to-v1 >> > > > > > > >> > > > > > > the metadata version will be upgraded from 0 to 1. >> > > > > > > >> > > > > > > If the user runs the script with --upgrade-to-v2, the metadata >> > > > version >> > > > > > will >> > > > > > > be upgraded from 1 to 2. >> > > > > > > >> > > > > > > The migration script is different from directly changing the >> > > feature >> > > > > > > version with kafka-features.sh because the migration also >> > performs >> > > > the >> > > > > > > necessary data migration and validation steps. >> > > > > > > >> > > > > > > LC4.2. If the user runs the kafka-features.sh command >> directly to >> > > > > upgrade >> > > > > > > from 0 → 2, what will happen? >> > > > > > > >> > > > > > > *Re LC4.2:* Currently it will complain about the version jump, >> > but >> > > it >> > > > > > will >> > > > > > > still proceed with the change, this means we lost all the >> keyless >> > > > > > messages >> > > > > > > and data loss. >> > > > > > > >> > > > > > > I’m considering adding a safeguard to prevent users from >> > upgrading >> > > > > > directly >> > > > > > > from version 0 to version 2 through kafka-features.sh, since >> some >> > > > > > migration >> > > > > > > steps are required between these versions should be performed >> by >> > > the >> > > > > > > migration script. Furthermore, I have documented the migration >> > > > process >> > > > > in >> > > > > > > the feature doc >> > > > > > > < >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> https://github.com/apache/kafka/blob/1ccb860cf83f8d1ba53f3b0706b18f3ca71e5b34/docs/operations/remote-log-metadata-topic-compaction.md >> > > > > > > > >> > > > > > > and clearly directed users to use the migration tool for this >> > > > upgrade. >> > > > > > > >> > > > > > > I’m open to suggestions on how we can best ensure that users >> > follow >> > > > the >> > > > > > > migration path. >> > > > > > > >> > > > > > > LC4.3. What will happen if the setting of retention.ms is too >> > > short >> > > > > > before >> > > > > > > the existing consumers complete the fetch? >> > > > > > > >> > > > > > > *Re LC4.3:* With the current design, it is already the cluster >> > > > > operator's >> > > > > > > responsibility to configure retention.ms appropriately. If >> > > > > retention.ms >> > > > > > is >> > > > > > > too short and the metadata for an existing remote log segment >> is >> > > > > deleted >> > > > > > > before it is consumed, that metadata is lost permanently, >> which >> > can >> > > > > > result >> > > > > > > in data loss. This requirement exists independently of this >> > > migration >> > > > > and >> > > > > > > the proposed feature. And this biggest motivation for this >> > proposal >> > > > is >> > > > > to >> > > > > > > lift this burden from the kafka operator and after the >> migration, >> > > > there >> > > > > > is >> > > > > > > no such risk. >> > > > > > > >> > > > > > > The migration does not introduce a new retention requirement. >> As >> > > long >> > > > > as >> > > > > > > the operator follows the existing requirement and sets >> > > retention.ms >> > > > > > > appropriately, the migration is safe. >> > > > > > > >> > > > > > > Once the migration is complete, the keyed metadata log no >> longer >> > > > needs >> > > > > to >> > > > > > > be protected by this additional retention consideration. >> > > > > > > >> > > > > > > LC4.4. If the user sets 14 days retention.ms and upgrades to >> v1, >> > > and >> > > > > > some >> > > > > > > more metadata is added. If one month later they are still on >> v1, >> > > will >> > > > > the >> > > > > > > keyed metadata log be deleted unexpectedly due to log >> retention? >> > > > > > > >> > > > > > > *Re LC4.4:* The keyed metadata log can be truncated according >> to >> > > the >> > > > > > > configured retention policy while the cluster remains on v1. I >> > > don't >> > > > > > think >> > > > > > > this should be considered unexpected, since it is the expected >> > > > behavior >> > > > > > of >> > > > > > > the retention policy. >> > > > > > > >> > > > > > > I also don't think this creates a correctness issue, provided >> > that >> > > > > > > retention.ms should be configured to be at least as long as >> the >> > > > > > retention >> > > > > > > period of the longest remote-storage-enabled topic. Under that >> > > > > condition, >> > > > > > > even if some older keyed metadata records are removed, they >> will >> > no >> > > > > > longer >> > > > > > > be needed by the remote storage system. >> > > > > > > >> > > > > > > >> > > > > > > LC4.6. "Log cleaner won't compact yet (blocked by >> > > > > min.compaction.lag.ms >> > > > > > )", >> > > > > > > what will happen if a user or operator changes the config to a >> > > > shorter >> > > > > > > value? >> > > > > > > >> > > > > > > *Re LC4.6:* The migration script will set >> min.compaction.lag.ms >> > to >> > > > the >> > > > > > > same >> > > > > > > value as retention.ms. Therefore, if the operator changes the >> > > > > > > configuration >> > > > > > > before running the migration, the migration script will >> overwrite >> > > > that >> > > > > > > value. >> > > > > > > >> > > > > > > However, if the operator changes min.compaction.lag.ms after >> the >> > > > > > migration >> > > > > > > has started and sets it to a value that is shorter than the >> > > required >> > > > > > > period, metadata associated with active remote log segments >> could >> > > be >> > > > > > > compacted away prematurely. I will clarify this requirement in >> > the >> > > > KIP. >> > > > > > > >> > > > > > > LC4.7. In "upgrade-to-v2", what does "Tool displays retention >> > > > reminder >> > > > > > and >> > > > > > > checks if enough time has passed" mean? >> > > > > > > >> > > > > > > *Re LC4.7:* When migrating from remote.log.metadata.version=1 >> to >> > 2, >> > > > the >> > > > > > > migration script will scan the topic and verify whether all >> > > existing >> > > > > > > messages have keys. >> > > > > > > >> > > > > > > If it finds keyless messages, it will record the latest >> timestamp >> > > > among >> > > > > > > those messages. Based on that timestamp and the topic's >> > > retention.ms >> > > > , >> > > > > > the >> > > > > > > tool can calculate an estimated time when the last keyless >> > message >> > > > > should >> > > > > > > have been removed by retention. >> > > > > > > >> > > > > > > The tool will display this information to the user. The user >> can >> > > then >> > > > > > rerun >> > > > > > > the migration after that estimated time and proceed to v2 once >> > the >> > > > > > keyless >> > > > > > > messages have expired. >> > > > > > > >> > > > > > > LC4.8. In "upgrade-to-v2", "Scans topic for null-key >> messages", >> > > does >> > > > > that >> > > > > > > mean we'll launch a consumer and read the whole log of the >> > > > > > > __remote_log_metadata topic? If each broker already loads all >> > logs >> > > in >> > > > > > some >> > > > > > > __remote_log_metadata partitions, can't we do the scan during >> > > loading >> > > > > and >> > > > > > > directly return the result to the admin client? >> > > > > > > >> > > > > > > *Re LC4.8:* This is true: each broker already loads all >> records >> > > from >> > > > > its >> > > > > > > assigned partitions of __remote_log_metadata during startup. >> > > > > > > >> > > > > > > However, the validation required for the migration—checking >> > whether >> > > > > > records >> > > > > > > are keyed and, for keyless records, determining their >> > timestamps—is >> > > > > > > unrelated to the existing loading logic. >> > > > > > > >> > > > > > > I would prefer not to introduce migration-specific logic into >> the >> > > > > > existing >> > > > > > > metadata loading path and then remove or maintain that logic >> > after >> > > > the >> > > > > > > migration is complete. Keeping the migration scan separate >> makes >> > > the >> > > > > > > existing runtime path simpler and avoids introducing >> additional >> > > > > > complexity >> > > > > > > into the first version of this feature. >> > > > > > > >> > > > > > > LC4.9. Could you show the command result of >> > > > > > > kafka-remote-log-metadata-migration.sh in the KIP? >> > > > > > > >> > > > > > > *Re LC4.9:* Updated. Thanks for the suggestion! >> > > > > > > >> > > > > > > LC4.10. Also, could you show the --help result of >> > > > > > > kafka-remote-log-metadata-migration.sh? >> > > > > > > >> > > > > > > *Re LC4.10:* Updated. Thanks for the suggestion! >> > > > > > > >> > > > > > > LC4.11. Have you considered how a Kubernetes operator can >> > automate >> > > > the >> > > > > > > migration steps? >> > > > > > > >> > > > > > > *Re LC4.11:* I’ll need some time to investigate this and >> > understand >> > > > the >> > > > > > > implications for Kubernetes operators. I’ll follow up once >> I’ve >> > > had a >> > > > > > > chance to look into it in more detail. >> > > > > > > >> > > > > > > LC4.12. I think the migration plan is the most critical part >> of >> > > this >> > > > > KIP. >> > > > > > > Users cannot accept any metadata deleted before it is handled >> > > > > completely. >> > > > > > > We have to make sure all the edge cases are covered before >> moving >> > > > this >> > > > > > > forward. >> > > > > > > >> > > > > > > *Re LC4.12:* I agree that the migration plan is one of the >> most >> > > > > critical >> > > > > > > parts of this KIP. >> > > > > > > >> > > > > > > With the current migration design, the key requirement is that >> > > > > > > retention.ms >> > > > > > > must not be shorter than the retention period of the longest >> > > > > > > remote-storage-enabled topic. As long as this requirement is >> > > > satisfied, >> > > > > > the >> > > > > > > migration does not introduce any additional data-loss scenario >> > > beyond >> > > > > the >> > > > > > > requirements of the existing remote storage implementation. >> > > > > > > >> > > > > > > I will make this requirement more explicit in the migration >> > section >> > > > and >> > > > > > > clarify the relevant edge cases. >> > > > > > > >> > > > > > > Let me know if you have more questions, thanks! >> > > > > > > >> > > > > > > >> > > > > > > Best, >> > > > > > > >> > > > > > > Lijun Tong >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > >> > >> >
