Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Orleans.Core/Placement/IPlacementFilterDirector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ namespace Orleans.Placement;

public interface IPlacementFilterDirector
{
IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementFilterContext context, IEnumerable<SiloAddress> silos);
IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementTarget target, IEnumerable<SiloAddress> silos);
}
6 changes: 0 additions & 6 deletions src/Orleans.Core/Placement/PlacementFilterContext.cs

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ internal class PreferredMatchSiloMetadataPlacementFilterDirector(
ISiloMetadataCache siloMetadataCache)
: IPlacementFilterDirector
{
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementFilterContext context, IEnumerable<SiloAddress> silos)
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementTarget target, IEnumerable<SiloAddress> silos)
{
var preferredMatchSiloMetadataPlacementFilterStrategy = filterStrategy as PreferredMatchSiloMetadataPlacementFilterStrategy;
var minCandidates = preferredMatchSiloMetadataPlacementFilterStrategy?.MinCandidates ?? 1;
Expand Down Expand Up @@ -77,4 +77,4 @@ public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, P

return siloList.Where((_, i) => siloScores[i] >= scoreCutOff);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ namespace Orleans.Runtime.Placement.Filtering;
internal class RequiredMatchSiloMetadataPlacementFilterDirector(ILocalSiloDetails localSiloDetails, ISiloMetadataCache siloMetadataCache)
: IPlacementFilterDirector
{
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementFilterContext context, IEnumerable<SiloAddress> silos)
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementTarget target, IEnumerable<SiloAddress> silos)
{
var metadataKeys = (filterStrategy as RequiredMatchSiloMetadataPlacementFilterStrategy)?.MetadataKeys ?? [];

Expand Down Expand Up @@ -51,4 +51,4 @@ private static bool DoesMetadataMatch(string?[] localMetadata, SiloMetadata silo

return result;
}
}
}
3 changes: 1 addition & 2 deletions src/Orleans.Runtime/Placement/PlacementService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,10 @@ public SiloAddress[] GetCompatibleSilos(PlacementTarget target)
if (filters.Length > 0)
{
IEnumerable<SiloAddress> filteredSilos = compatibleSilos;
var context = new PlacementFilterContext(target.GrainIdentity.Type, target.InterfaceType, target.InterfaceVersion);
foreach (var placementFilter in filters)
{
var director = _placementFilterDirectoryResolver.GetFilterDirector(placementFilter);
filteredSilos = director.Filter(placementFilter, context, filteredSilos);
filteredSilos = director.Filter(placementFilter, target, filteredSilos);
}

compatibleSilos = filteredSilos.ToArray();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
using Orleans.Placement;
using Orleans.Runtime.Placement;
using Orleans.TestingHost;
using TestExtensions;
using Xunit;

namespace UnitTests.PlacementFilterTests;
Expand Down Expand Up @@ -147,7 +146,7 @@ public class TestPlacementFilterDirector() : IPlacementFilterDirector
{
public static SemaphoreSlim Triggered { get; } = new(0);

public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementFilterContext context, IEnumerable<SiloAddress> silos)
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementTarget target, IEnumerable<SiloAddress> silos)
{
Triggered.Release(1);
return silos;
Expand All @@ -167,10 +166,10 @@ public OrderAPlacementFilterStrategy() : this(0)

public class OrderAPlacementFilterDirector : IPlacementFilterDirector
{
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementFilterContext context, IEnumerable<SiloAddress> silos)
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementTarget target, IEnumerable<SiloAddress> silos)
{
var dict = GrainPlacementFilterTests.FilterScratchpad;
var list = dict.GetValueOrAddNew(context.GrainType.ToString());
var list = dict.GetValueOrAddNew(target.GrainIdentity.Type.ToString());
list.Add("A");
return silos;
}
Expand All @@ -189,10 +188,10 @@ public OrderBPlacementFilterStrategy() : this(0)

public class OrderBPlacementFilterDirector() : IPlacementFilterDirector
{
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementFilterContext context, IEnumerable<SiloAddress> silos)
public IEnumerable<SiloAddress> Filter(PlacementFilterStrategy filterStrategy, PlacementTarget target, IEnumerable<SiloAddress> silos)
{
var dict = GrainPlacementFilterTests.FilterScratchpad;
var list = dict.GetValueOrAddNew(context.GrainType.ToString());
var list = dict.GetValueOrAddNew(target.GrainIdentity.Type.ToString());
list.Add("B");
return silos;
}
Expand Down Expand Up @@ -259,4 +258,4 @@ public class TestDuplicateOrderFilteredGrain : Grain, ITestDuplicateOrderFiltere
public interface ITestDuplicateOrderFilteredGrain : IGrainWithIntegerKey
{
Task Ping();
}
}