pub struct MetaCacheEntries(pub Vec<Option<MetaCacheEntry>>);Tuple Fields§
§0: Vec<Option<MetaCacheEntry>>Implementations§
Source§impl MetaCacheEntries
impl MetaCacheEntries
pub fn as_ref(&self) -> &[Option<MetaCacheEntry>]
pub fn resolve( &self, params: MetadataResolutionParams, ) -> Option<MetaCacheEntry>
pub fn resolve_with_write_quorum( &self, params: MetadataResolutionParams, ) -> Option<MetaCacheEntry>
Sourcepub fn resolve_union(&self, bucket: &str) -> Option<MetaCacheEntry>
pub fn resolve_union(&self, bucket: &str) -> Option<MetaCacheEntry>
Resolve the cross-disk UNION of every version present on ANY disk slot.
This mirrors MinIO’s global heal enumeration (cmd/global-heal.go
healErasureSet -> listPathRaw with objQuorum = 1 feeding
mergeEntries/mergeXLV2Versions): at quorum 1 the merge is forced
strict and returns the union of all per-disk version streams, so a version
that survives on FEWER than read-quorum disks is still surfaced for
healing. Read-quorum resolution (resolve with obj_quorum >= 2) would
silently drop such a sub-quorum version, which is exactly the durability
gap this enumerator closes (backlog#920).
bucket is only used to tag the merged entry; strict:false lets the
non-strict header reconciliation collapse equal-but-differently-signed
replicas of the SAME version id while still retaining genuinely distinct
version ids.
Sourcepub fn discover_heal_candidates(
&self,
bucket: &str,
max_candidates: usize,
) -> MetaCacheHealDiscovery
pub fn discover_heal_candidates( &self, bucket: &str, max_candidates: usize, ) -> MetaCacheHealDiscovery
Discover validated object/delete-marker versions and safe unversioned
inspection candidates in the raw entries without applying read quorum.
This is intentionally separate from Self::resolve: a sub-quorum
version is a valid heal target even though it must not participate in
normal reads or writes.
The validated list is bounded and deduplicated by object, version id,
and metadata kind; each candidate retains the number of raw disk
entries that carried it so callers can classify sub-quorum versions.
Entries whose xl.meta cannot be decoded are counted separately for
discovery accounting; they never become versionless destructive heal
requests and do not consume the validated quota. An
MetaCacheHealCandidateKind::UnversionedObject is always consumed by
a non-destructive scanner request.