[Server] Support importing completed KV snapshots
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 625
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 97
Description
### Search before asking
- [x] I searched in the [issues](https://github.com/apache/fluss/issues) and found nothing similar.
### Description
Fluss should be able to import a completed KV snapshot produced outside a
TabletServer and restore it through the ordinary snapshot recovery path.
This is the storage foundation for bulk loading. The imported result should be
indistinguishable from an ordinary completed Fluss snapshot after it has been
validated and adopted.
#### Scope
- Define portable metadata for completed KV snapshot files.
- Serialize and deserialize the snapshot metadata with compatibility checks.
- Validate imported files, including their paths, sizes, digests, snapshot ID,
and log end offset.
- Adopt a validated snapshot into the existing completed-snapshot store.
- Restore replicas from an imported snapshot through the ordinary KV recovery
path.
- Preserve active snapshot references so imported files are not removed while
they are still in use.
- Keep existing locally generated and tiered snapshot behavior unchanged.
### Willingness to contribute
- [x] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing the existing completed-snapshot store and ordinary KV recovery path, then identify how locally generated and tiered snapshots are represented. Define the portable metadata and compatibility checks, validate paths, sizes, digests, snapshot ID, and log end offset, and confirm that adoption, replica recovery, and active references preserve existing behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, distributed-systems
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100