perf(central): set-based ingest, aligned partition purge, KPI query shapes, EF hygiene

This commit is contained in:
Joseph Doherty
2026-08-14 21:07:12 -04:00
parent ee193cd2bb
commit 5db2a810c0
29 changed files with 3790 additions and 266 deletions
@@ -52,22 +52,31 @@ public class AuditLogEntityTypeConfigurationTests : IDisposable
}
[Fact]
public void Configure_DeclaresUniqueIndex_OnEventIdAlone_ForIdempotencyLookups()
public void Configure_DeclaresNoNonAlignedEventIdIndex_UniquenessRidesTheAlignedClusteredKey()
{
// EventId remains globally unique (the idempotency key for
// InsertIfNotExistsAsync) via a dedicated unique index independent of the
// composite PK.
// WP2.2 (AlignAuditLogEventIdUniqueness): the standalone non-aligned
// UX_AuditLog_EventId is gone. EventId uniqueness now rides the clustered
// PK (EventId, OccurredAtUtc), which is partition-aligned on
// ps_AuditLog_Month — so ALTER TABLE ... SWITCH PARTITION no longer needs
// an offline index drop/rebuild around every retention purge. EventId is a
// GUID minted once at the site alongside OccurredAtUtc, so pair-uniqueness
// is EventId-uniqueness in practice, and the idempotency probe
// (WHERE EventId = @id) still seeks the clustered key's leading column.
//
// Re-declaring a single-column unique index here would silently reinstate
// the SWITCH incompatibility, so this test pins its absence.
var entity = _context.Model.FindEntityType(typeof(AuditLogRow));
Assert.NotNull(entity);
var eventIdIndex = entity!.GetIndexes()
.SingleOrDefault(i => i.GetDatabaseName() == "UX_AuditLog_EventId");
Assert.DoesNotContain(
entity!.GetIndexes(),
i => i.GetDatabaseName() == "UX_AuditLog_EventId");
Assert.NotNull(eventIdIndex);
Assert.True(eventIdIndex!.IsUnique);
var indexedProperty = Assert.Single(eventIdIndex.Properties);
Assert.Equal(nameof(AuditLogRow.EventId), indexedProperty.Name);
var pk = entity.FindPrimaryKey();
Assert.NotNull(pk);
Assert.Equal(
new[] { nameof(AuditLogRow.EventId), nameof(AuditLogRow.OccurredAtUtc) },
pk!.Properties.Select(p => p.Name).ToArray());
}
[Fact]
@@ -164,7 +173,8 @@ public class AuditLogEntityTypeConfigurationTests : IDisposable
"IX_AuditLog_ParentExecution",
"IX_AuditLog_Site_Occurred",
"IX_AuditLog_Target_Occurred",
"UX_AuditLog_EventId",
// UX_AuditLog_EventId is intentionally absent — dropped by
// AlignAuditLogEventIdUniqueness; the aligned clustered PK carries it.
};
Assert.Equal(expected, indexNames);