Documentation
¶
Overview ¶
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package ais provides core functionality for the AIStore object storage.
- Copyright (c) 2018-2024, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2025-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Package reb provides global cluster-wide rebalance upon adding/removing storage nodes.
- Copyright (c) 2018-2026, NVIDIA CORPORATION. All rights reserved.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func OffTimedGFN ¶ added in v1.3.18
func OffTimedGFN(detail string)
func OnTimedGFN ¶ added in v1.3.18
func OnTimedGFN()
Types ¶
type Reb ¶
type Reb struct {
// contains filtered or unexported fields
}
func (*Reb) AbortLocal ¶
(limited usage; compare with `abortAll` below)
func (*Reb) RebStatus ¶
via GET /v1/health (apc.Health) - lock-free: all fields below are independently atomic - this path is used by peer health/status polling and must not contend with writers in fini/_renew/cleanup
func (*Reb) Run ¶ added in v1.3.31
Run() is the main method: serialized to execute one at a time (while possibly _preempting_ currently running rebalance) and go through controlled enumerated stages.
Prior to starting to run over this target's buckets (of user data), there's a certain startup phase that also entails constructing and opening a new data mover (DM), whereby (NewDM + RegRecv + Open) is an atomic generation-start transition.
No other rebalance generation may observe or replace the DM between its registration and open; any failure (below) unregisters the same DM instance and zeros it before returning.
A note on stage management:
- Non-EC and EC rebalances run in parallel
- Execution starts after the `Reb` sets the current stage to rebStageTraverse
- Only EC rebalance changes the current stage
- Global rebalance performs checks such as `stage > rebStageTraverse` or `stage < rebStagePostTraverse`. Since all EC stages are between `Traverse` and `PostTraverse` non-EC rebalance does not "notice" stage changes.
See also: README.md in this package.
func (*Reb) RunCleanup ¶ added in v1.4.5
RunCleanup walks mountpaths and removes local copies of objects whose HRW target already has them. Piggy-backs on the rebalance lifecycle (xreg slot, markers, smap snapshot, abort plumbing) but is not a migration: no DM, no streams, no GFN, no cross-target post-traverse synchronization.
Cleanup mode is the post-#288 / post-lomAcks-removal recovery tool: an operator-driven pass that reclaims source-side leftovers from a prior rebalance using HeadObjT2T as the per-LOM safety check.
See also: 'ais space-cleanup' (recommended for routine use).
type Status ¶
type Status struct {
Targets meta.Nodes `json:"targets"` // targets I'm waiting for ACKs from
SmapVersion int64 `json:"smap_version,string"` // current Smap version (via smapOwner)
RebVersion int64 `json:"reb_version,string"` // Smap version of *this* rebalancing op
RebID int64 `json:"reb_id,string"` // rebalance ID
Stats core.Stats `json:"stats"` // transmitted/received totals
Stage uint32 `json:"stage"` // the current stage - see enum above
Aborted bool `json:"aborted"` // aborted?
Running bool `json:"running"` // running?
}