Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
InĀ FLINK-8790, it was suggested to use RocksDB's deleteRange API to more efficiently clip the databases for the desired target group.
During the PR for that ticket, #5582, the change did not end up using the deleteRange method as it was an experimental feature in RocksDB.
At this point deleteRange is in a far less experimental state now but I believe is still formally "experimental". It is heavily by many others like CockroachDB and TiKV and they have teased out several bugs in complex interactions over the years.
For certain re-scaling situations where restores trigger restoreWithScaling and the DB clipping logic, this would likely reduce an O[n] operation (N = state size/records) to O(1). For large state apps, this would potentially represent a non-trivial amount of time spent for re-scaling. In the case of my workplace, we have an operator with 100s of billions of records in state and re-scaling was taking a long time (>>30min, but it has been awhile since doing it).
Attachments
Issue Links
- causes
-
FLINK-26789 RescaleCheckpointManuallyITCase.testCheckpointRescalingInKeyedState failed
- Closed
- is a child of
-
FLINK-28038 RocksDB rescaling improvement & rescaling benchmark - umbrella ticket
- Resolved
- is blocked by
-
FLINK-14482 Bump up rocksdb version
- Closed
- relates to
-
FLINK-26560 Make the threshold of the overlap fraction of incremental restoring configurable
- Resolved
-
FLINK-23399 Add a performance benchmark for statebackend rescaling
- Resolved
-
FLINK-8790 Improve performance for recovery from incremental checkpoint
- Closed
- links to