Skip to content

[KV] Kvscan Server Side#3151

Open
polyzos wants to merge 5 commits intoapache:mainfrom
polyzos:kvscan-server-side
Open

[KV] Kvscan Server Side#3151
polyzos wants to merge 5 commits intoapache:mainfrom
polyzos:kvscan-server-side

Conversation

@polyzos
Copy link
Copy Markdown
Contributor

@polyzos polyzos commented Apr 21, 2026

This PR brings in the server-side implementation for FIP-17, introduced here

#2809

@polyzos polyzos force-pushed the kvscan-server-side branch from 4577f63 to 8fe21dc Compare April 21, 2026 13:21
@polyzos
Copy link
Copy Markdown
Contributor Author

polyzos commented Apr 21, 2026

@polyzos polyzos requested review from Copilot and wuchong April 21, 2026 13:22
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds server-side support for KV full-scan sessions (FIP-17), including session lifecycle management, RPC handling, and operator-facing configuration.

Changes:

  • Introduces ScannerManager/ScannerContext to manage server-side scan sessions with TTL eviction and concurrency limits.
  • Implements TabletService#scanKv to open/continue/close scans and stream batched results.
  • Wires scanner cleanup into replica leadership/stop paths and documents new configuration options.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
website/docs/maintenance/configuration.md Documents new KV scanner TTL/limits configs.
fluss-common/src/main/java/org/apache/fluss/config/ConfigOptions.java Adds config keys for scanner TTL, eviction interval, and limits.
fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java Adds openScan to create snapshot-backed scan contexts.
fluss-server/src/main/java/org/apache/fluss/server/kv/scan/ScannerContext.java New scan session state holder (snapshot/iterator/lease).
fluss-server/src/main/java/org/apache/fluss/server/kv/scan/ScannerManager.java New session manager with TTL eviction and limit enforcement.
fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletService.java Implements scanKv RPC using ScannerManager.
fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletServer.java Instantiates/closes ScannerManager and injects into services.
fluss-server/src/main/java/org/apache/fluss/server/replica/ReplicaManager.java Closes scanners on leadership change / stopReplica; adds leader KV accessor.
fluss-server/src/main/java/org/apache/fluss/server/replica/Replica.java Safety-net close of scanners in dropKv().
fluss-server/src/test/java/org/apache/fluss/server/kv/KvTabletTest.java Adds unit tests for openScan behavior.
fluss-server/src/test/java/org/apache/fluss/server/kv/scan/ScannerManagerTest.java New tests for session creation, limits, TTL eviction, and shutdown.
fluss-server/src/test/java/org/apache/fluss/server/replica/ReplicaManagerTest.java Ensures scanners are closed when stopping replicas.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java
Comment thread fluss-server/src/main/java/org/apache/fluss/server/kv/KvTablet.java
Comment thread fluss-server/src/main/java/org/apache/fluss/server/tablet/TabletService.java Outdated
Comment thread fluss-common/src/main/java/org/apache/fluss/config/ConfigOptions.java Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants