Skip to content

sui_v1.42.0_1737401993_ci

@lxfind lxfind tagged this 20 Jan 17:19
## Description 

This PR implements parallel pruning.
This is necessary for the obj_info pruner, since its pruning is fairly
complicated and expensive. Without pruning multiple ranges in parallel
it cannot catch up.

In this change, we largely maintain the same structure we had before in
the pruner implementation. The primary change is that instead of pruning
the chunks one by one, we prune them in parallel. This does change how
we do accounting on watermarks. To handle it properly as well as deal
with failures and retries, we maintain a map that keeps track of all
pending ranges that need to be pruned. This will guide us in updating
watermark and metrics.

## Test plan 

We probably should add some unit tests for pruner.
---

## Release notes

Check each box that your changes affect. If none of the boxes relate to
your changes, release notes aren't required.

For each box you select, include information after the relevant heading
that describes the impact of your changes that a user might notice and
any actions they must take to implement updates.

- [ ] Protocol: 
- [ ] Nodes (Validators and Full nodes): 
- [ ] gRPC:
- [ ] JSON-RPC: 
- [ ] GraphQL: 
- [ ] CLI: 
- [ ] Rust SDK:
Assets 2
Loading