Improve XML documentation coverage across src modules and sync generated analysis artifacts.
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user