mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-24 05:06:28 +00:00
feat(listobjects): add guarded metadata-fast listing (#4311)
* feat(listobjects): add phase 0 observability metrics * perf(listobjects): reduce gather metadata decoding * test(listobjects): add adversarial listing coverage * feat(listobjects): add source-aware cursor fields * feat(listobjects): define index source modes * feat(listobjects): model index rebuild health * feat(listobjects): add opt-in index fallback gate * feat(listobjects): verify index candidate pages * docs(listobjects): add rollout runbook * docs(listobjects): untrack baseline fixtures * feat(listobjects): add opt-in key-only provider * feat(listobjects): add index verification metrics * perf(listobjects): gate list metrics on get stage switch * feat(listobjects): bind provider health generation * feat(listobjects): add persistent key-only provider * feat(listobjects): bind persistent provider lifecycle * feat(listobjects): track persistent index mutations * feat(listobjects): persist index mutation checkpoints * fix(listobjects): aggregate benchmark metric snapshots * feat(listobjects): store journal in system namespace * chore(listobjects): report fallback reasons in bench * test(listobjects): verify metadata-fast stale fallbacks * feat(listobjects): serve metadata-fast snapshots behind guardrails * test(listobjects): add metadata-fast chaos bench * fix(listobjects): attribute metadata-fast fallback metrics * test(listobjects): add metadata-fast fallback chaos probes * test(listobjects): add quorum journal chaos guardrails * fix(listobjects): satisfy pre-pr clippy gate * docs(listobjects): untrack rollout runbook * fix(ecstore): remove redundant heal error conversion * test(filemeta): satisfy replication info clippy ---- Co-Authored-By: heihutu <heihutu@gmail.com>
This commit is contained in:
@@ -896,22 +896,28 @@ mod tests {
|
||||
assert!(base.replication_info_equals(&FileInfo::default()));
|
||||
|
||||
// Differing mark_deleted breaks equality.
|
||||
let mut marked = FileInfo::default();
|
||||
marked.mark_deleted = true;
|
||||
let marked = FileInfo {
|
||||
mark_deleted: true,
|
||||
..Default::default()
|
||||
};
|
||||
assert!(!base.replication_info_equals(&marked));
|
||||
|
||||
// Differing replication_state_internal breaks equality (regression guard:
|
||||
// this field used to be ignored by replication_info_equals).
|
||||
let mut with_state = FileInfo::default();
|
||||
with_state.replication_state_internal = Some(ReplicationState {
|
||||
replicate_decision_str: "arn:aws:s3:::dest".to_string(),
|
||||
let with_state = FileInfo {
|
||||
replication_state_internal: Some(ReplicationState {
|
||||
replicate_decision_str: "arn:aws:s3:::dest".to_string(),
|
||||
..Default::default()
|
||||
}),
|
||||
..Default::default()
|
||||
});
|
||||
};
|
||||
assert!(!base.replication_info_equals(&with_state));
|
||||
|
||||
// Equal replication states remain equal.
|
||||
let mut with_state_clone = FileInfo::default();
|
||||
with_state_clone.replication_state_internal = with_state.replication_state_internal.clone();
|
||||
let with_state_clone = FileInfo {
|
||||
replication_state_internal: with_state.replication_state_internal.clone(),
|
||||
..Default::default()
|
||||
};
|
||||
assert!(with_state.replication_info_equals(&with_state_clone));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user