mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-20 19:42:17 +00:00
56 lines
2.4 KiB
Rust
56 lines
2.4 KiB
Rust
// Copyright 2024 RustFS Team
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
use crate::error::{Error, Result};
|
|
use crate::object_api::{GetObjectReader, ObjectInfo, ObjectOptions, PutObjReader};
|
|
use tokio::time::Duration;
|
|
|
|
const LOG_COMPONENT_ECSTORE: &str = "ecstore";
|
|
const LOG_SUBSYSTEM_REBALANCE: &str = "rebalance";
|
|
const EVENT_REBALANCE_STATE: &str = "rebalance_state";
|
|
const EVENT_REBALANCE_BUCKET: &str = "rebalance_bucket";
|
|
const EVENT_REBALANCE_ENTRY: &str = "rebalance_entry";
|
|
const EVENT_REBALANCE_LISTING: &str = "rebalance_listing";
|
|
|
|
const REBAL_META_FMT: u16 = 1; // Replace with actual format value
|
|
const REBAL_META_VER: u16 = 1; // Replace with actual version value
|
|
pub(crate) const REBAL_META_NAME: &str = "rebalance.bin";
|
|
const DEFAULT_REBALANCE_MAX_ATTEMPTS: usize = 3;
|
|
const REBALANCE_MAX_ATTEMPTS_ENV: &str = "RUSTFS_REBALANCE_MAX_ATTEMPTS";
|
|
const REBALANCE_STOP_PROPAGATION_ERROR_PREFIX: &str = "rebalance stop propagation incomplete: ";
|
|
const REBALANCE_LISTING_RETRY_BASE_DELAY: Duration = Duration::from_millis(250);
|
|
const REBALANCE_MIGRATION_RETRY_BASE_DELAY: Duration = Duration::from_millis(250);
|
|
const REBALANCE_MIGRATION_LOCK_RETRY_CAP: Duration = Duration::from_secs(10);
|
|
const REBALANCE_DEFERRED_ENTRY_ERROR_PREFIX: &str = "deferred transient rebalance entry failure:";
|
|
const REBALANCE_CLEANUP_WARNING_ENTRY_LIMIT: usize = 10;
|
|
|
|
mod control;
|
|
mod entry;
|
|
mod meta;
|
|
mod migration;
|
|
mod runtime;
|
|
mod types;
|
|
mod worker;
|
|
|
|
pub(crate) use meta::is_rebalance_conflicting_with_decommission;
|
|
pub use meta::{decode_rebalance_stop_propagation_record, encode_rebalance_stop_propagation_record};
|
|
pub use types::{
|
|
DiskStat, RebalSaveOpt, RebalStatus, RebalanceCleanupWarningEntry, RebalanceCleanupWarnings, RebalanceInfo, RebalanceMeta,
|
|
RebalanceStats, RebalanceStopPropagationRecord,
|
|
};
|
|
use types::{RebalanceBucketConfigs, RebalanceBucketOutcome, RebalanceEntryOutcome};
|
|
|
|
#[cfg(test)]
|
|
mod rebalance_unit_tests;
|