Improve XML documentation coverage across src modules and sync generated analysis artifacts.

This commit is contained in:
Joseph Doherty
2026-03-14 03:56:58 -04:00
parent ba0d65317a
commit 46ead5ea9f
152 changed files with 2821 additions and 11284 deletions

View File

@@ -31,6 +31,11 @@ public static class PlacementEngine
/// Overloaded peers are tried only after preferred candidates are exhausted.
/// 8. Throw InvalidOperationException if fewer than replicas peers can be selected.
/// </summary>
/// <param name="groupName">RAFT group name being placed.</param>
/// <param name="replicas">Required number of replicas/peers.</param>
/// <param name="availablePeers">Available cluster peers considered for placement.</param>
/// <param name="policy">Optional placement policy with cluster/tag constraints.</param>
/// <param name="assetCostWeight">Per-asset storage penalty used in scoring.</param>
public static RaftGroup SelectPeerGroup(
string groupName,
int replicas,
@@ -201,10 +206,15 @@ public static class PlacementEngine
/// </summary>
public sealed class PeerInfo
{
/// <summary>Unique peer identifier used in RAFT group membership.</summary>
public required string PeerId { get; init; }
/// <summary>Cluster name/partition where this peer resides.</summary>
public string Cluster { get; set; } = string.Empty;
/// <summary>Capability and topology tags advertised by this peer.</summary>
public HashSet<string> Tags { get; init; } = new(StringComparer.OrdinalIgnoreCase);
/// <summary>Whether this peer is currently eligible for new assignments.</summary>
public bool Available { get; set; } = true;
/// <summary>Approximate remaining storage available for new assets.</summary>
public long AvailableStorage { get; set; } = long.MaxValue;
/// <summary>
@@ -228,8 +238,11 @@ public sealed class PeerInfo
/// </summary>
public sealed class PlacementPolicy
{
/// <summary>Optional cluster affinity constraint.</summary>
public string? Cluster { get; set; }
/// <summary>Required tags that must all be present on a candidate peer.</summary>
public HashSet<string>? Tags { get; set; }
/// <summary>Tags that disqualify a candidate peer when present.</summary>
public HashSet<string>? ExcludeTags { get; set; }
/// <summary>