## Description
main changes are:
- instead of updating object snapshot at epoch boundary, now we update
object snapshot following a sliding window of checkpoints, so that each
update will not take too long
- fix object history, prev it skipped intermediate object versions,
which is correct for `objects` which only tracks latest versions, but
not the case for `objects_history`, which is supposed to track all
versions
- move advance epoch before checkpoint persisting, so that checkpoint
can always be the watermark, in case of pod crashing and resuming, the
advance epoch process will be resumed properly too
## Test Plan
local run and verify that
- objects_history table has all intermediate versions & checkpoints
- object snapshot can be update properly per the objects_history
---
If your changes are not user-facing and not a breaking change, you can
skip the following section. Otherwise, please indicate what changed, and
then add to the Release Notes section as highlighted during the release
process.
### Type of Change (Check all that apply)
- [ ] protocol change
- [ ] user-visible impact
- [ ] breaking change for a client SDKs
- [ ] breaking change for FNs (FN binary must upgrade)
- [ ] breaking change for validators or node operators (must upgrade
binaries)
- [ ] breaking change for on-chain data layout
- [ ] necessitate either a data wipe or data migration
### Release notes