Hi devs,
Let me know if there are any comments here, otherwise I would like to start
a vote thread.

Best,
Giannis

On Thu, 5 Mar 2026 at 3:38 PM, Giannis Polyzos <[email protected]>
wrote:

> Hi devs,
>
> After a long time, i will like to reinitiate the discussions on FIP-17.
>
> I made quite a few updates on the FIP, which you can find here:
>
> https://cwiki.apache.org/confluence/display/FLUSS/FIP-17+Primary+Key+Table+Snapshot+Queries
> and updated the title to better reflect the goal. Let me know if it makes
> sense.
>
> Moreover in the end of the proposal, you will find a section as *extras *which
> has a suggestion for a heartbeat mechanism. However, during my PoC, I found
> that this is not really needed, but
> I would like your thoughts and feedback first.
>
> Best,
> Giannis
>
> On Wed, Oct 29, 2025 at 2:45 PM Giannis Polyzos <[email protected]>
> wrote:
>
>> Yang, thank you for your thoughtful comments.
>>
>> Indeed, we are streaming the results to the client; however, it's still a
>> batch operation. We could use "KV store (or PK table) Snapshot Query"  or
>> something similar, since we are querying a RocksDB snapshot. WDYT?
>> The newly introduced KvBatchScanner should be able to be reused from both
>> the client itself - assume a scenario that I want to periodically query the
>> full RocksDB KV store to power real-time dashboards - as well as Flink
>> (with more engines to follow later).
>> It issues requests to fetch the results per bucket and transmit them back
>> to the client.
>>
>> > Could you elaborate on why the new KvBatchScanner isn't reusable?
>> I think the reasoning here is that reach requests create a new
>> KvBatchScanner, which polls the records and then closes automatically. Any
>> reason you see this as a limitation, and we should consider making it
>> reusable?
>>
>> The design aims mainly for the Fluss client API.. Should we add an
>> integration design with Flink? Wang Cheng, WDYT?
>>
>> Best,
>> Giannis
>>
>>
>>
>> On Tue, Oct 28, 2025 at 4:44 AM Yang Wang <[email protected]>
>> wrote:
>>
>>> Hi Cheng,
>>>
>>> Thank you for driving this excellent work! Your FIP document shows great
>>> thought and initiative. I've gone through it and have some questions and
>>> suggestions that I hope can further enhance this valuable contribution.
>>>
>>> 1、Regarding the Title, I believe we could consider changing it to
>>> "Support
>>> full scan in batch mode for PrimaryKey Table". The term "Streaming" might
>>> cause confusion with Flink's streaming/batch modes, and this revised
>>> title
>>> would provide better clarity.
>>>
>>> 2、In the Motivation section, I think there are two particularly important
>>> benefits worth highlighting: (1) OLAP engines will be able to perform
>>> full
>>> snapshot reads on Fluss primary-key tables. (2) This approach can replace
>>> the current KvSnapshotBatchScanner, allowing the Fluss client to
>>> eliminate
>>> its RocksDB dependency entirely.
>>>
>>> 3、Concerning the Proposed Changes, could you clarify when exactly the
>>> client creates a KV snapshot on the server side, and when we send the
>>> bucket_scan_req?
>>>
>>> Let me share my thinking on this: When Flink attempts to read from a
>>> PrimaryKey table, the FlinkSourceEnumerator in the JobMaster generates
>>> HybridSnapshotLogSplit and dispatches them to SplitReaders running on the
>>> TaskManager. The JobMaster doesn't actually read data—it merely defines
>>> and
>>> manages the splits. Therefore, we need to ensure the JM has sufficient
>>> information to determine the boundary of the KV snapshot and the
>>> startOffset of the LogSplit.
>>>
>>> I suggest we explicitly create a snapshot (or as you've termed it, a
>>> new_scan_request) on the server side. This way, the FlinkSourceEnumerator
>>> can use it to define a HybridSnapshotLogSplit, and the SplitReaders can
>>> perform pollBatch operations on this snapshot (which would be bound to
>>> the
>>> specified scanner_id).
>>>
>>> 4、 Could you elaborate on why the new KvBatchScanner isn't reusable?
>>> What's
>>> the reasoning behind this limitation? (I believe RocksDB iterators do
>>> support the seekToFirst operation.) If a TaskManager fails over before a
>>> checkpoint, rescanning an existing snapshot seems like a natural
>>> requirement.
>>>
>>> 5、I think it would be beneficial to include some detailed design aspects
>>> regarding Flink's integration with the new BatchScanner.
>>>
>>> Overall, this is a solid foundation for an important enhancement. Looking
>>> forward to discussing these points further!
>>>
>>> Best regards, Yang
>>>
>>> Wang Cheng <[email protected]> 于2025年10月22日周三 17:09写道:
>>>
>>> > Hi all,
>>> >
>>> >
>>> > As of v0.8, Fluss only supports KV snapshot batch scan and limit KV
>>> batch
>>> > scan. The former approach is constrained by snapshot availability and
>>> > remote storage performance, while the later one is only applicable to
>>> > queries with LIMIT clause and risks high memory pressure.
>>> >
>>> >
>>> > To address those limitations, Giannis Polyzos and I are writing to
>>> propose
>>> > FIP-17: a general-purpose streaming KV scan for Fluss [1].
>>> >
>>> >
>>> > Any feedback and suggestions on this proposal are welcome!
>>> >
>>> >
>>> > [1]:
>>> >
>>> https://cwiki.apache.org/confluence/display/FLUSS/FIP-17+Streaming+KV+Scan+RPC
>>> >
>>> > Regards,
>>> > Cheng
>>> >
>>> >
>>> >
>>> > &nbsp;
>>>
>>

Reply via email to