diff --git a/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationService.cs b/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationService.cs
index a1d3acb0..d21adc53 100644
--- a/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationService.cs
+++ b/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationService.cs
@@ -226,7 +226,7 @@ public bool TryGetScalingMonitor(out ScalingMonitor monitor)
try
{
ILoadPublisherService loadPublisher = string.IsNullOrEmpty(this.Settings.LoadInformationAzureTableName) ?
- new AzureBlobLoadPublisher(this.Settings.BlobStorageConnection, this.Settings.HubName)
+ new AzureBlobLoadPublisher(this.Settings.BlobStorageConnection, this.Settings.HubName, this.Settings.TaskhubParametersFilePath)
: new AzureTableLoadPublisher(this.Settings.TableStorageConnection, this.Settings.LoadInformationAzureTableName, this.Settings.HubName);
monitor = new ScalingMonitor(
diff --git a/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationServiceSettings.cs b/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationServiceSettings.cs
index 52fc2542..e96747d3 100644
--- a/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationServiceSettings.cs
+++ b/src/DurableTask.Netherite/OrchestrationService/NetheriteOrchestrationServiceSettings.cs
@@ -118,6 +118,11 @@ public class NetheriteOrchestrationServiceSettings
///
public string PartitionManagementParameters { get; set; } = null;
+ ///
+ /// The path to the file containing the taskhub parameters.
+ ///
+ public string TaskhubParametersFilePath { get; set; } = "taskhubparameters.json";
+
///
/// Gets or sets the activity scheduler option
///
diff --git a/src/DurableTask.Netherite/Scaling/AzureBlobLoadPublisher.cs b/src/DurableTask.Netherite/Scaling/AzureBlobLoadPublisher.cs
index 5ba30353..c2cf511c 100644
--- a/src/DurableTask.Netherite/Scaling/AzureBlobLoadPublisher.cs
+++ b/src/DurableTask.Netherite/Scaling/AzureBlobLoadPublisher.cs
@@ -19,6 +19,7 @@ class AzureBlobLoadPublisher : ILoadPublisherService
{
readonly string taskHubName;
readonly Task blobContainer;
+ readonly string taskhubParametersFilePath;
TaskhubParameters parameters;
readonly static JsonSerializerSettings serializerSettings = new JsonSerializerSettings()
@@ -27,10 +28,11 @@ class AzureBlobLoadPublisher : ILoadPublisherService
MissingMemberHandling = MissingMemberHandling.Ignore,
};
- public AzureBlobLoadPublisher(ConnectionInfo connectionInfo, string taskHubName)
+ public AzureBlobLoadPublisher(ConnectionInfo connectionInfo, string taskHubName, string taskHubParametersFilePath)
{
this.blobContainer = this.GetBlobContainer(connectionInfo, taskHubName);
this.taskHubName = taskHubName;
+ this.taskhubParametersFilePath = taskHubParametersFilePath;
}
async Task GetBlobContainer(ConnectionInfo connectionInfo, string taskHubName)
@@ -54,7 +56,7 @@ async ValueTask LoadParameters(bool throwIfNotFound, CancellationToken can
if (this.parameters == null)
{
this.parameters = await this.ReadJsonBlobAsync(
- (await this.blobContainer).GetBlockBlobReference("taskhubparameters.json"),
+ (await this.blobContainer).GetBlockBlobReference(this.taskhubParametersFilePath),
throwIfNotFound: throwIfNotFound,
throwOnParseError: throwIfNotFound,
cancellationToken).ConfigureAwait(false);
diff --git a/src/DurableTask.Netherite/StorageLayer/Faster/FasterStorageProvider.cs b/src/DurableTask.Netherite/StorageLayer/Faster/FasterStorageProvider.cs
index c652e2d8..a80d9d47 100644
--- a/src/DurableTask.Netherite/StorageLayer/Faster/FasterStorageProvider.cs
+++ b/src/DurableTask.Netherite/StorageLayer/Faster/FasterStorageProvider.cs
@@ -73,7 +73,7 @@ async Task GetBlobContainerAsync()
async Task GetTaskhubParametersAsync()
{
var cloudBlobContainer = await this.cloudBlobContainer;
- return cloudBlobContainer.GetBlockBlobReference("taskhubparameters.json");
+ return cloudBlobContainer.GetBlockBlobReference(settings.TaskhubParametersFilePath);
}
this.traceHelper.TraceProgress("Creating LoadPublisher Service");
@@ -83,7 +83,7 @@ async Task GetTaskhubParametersAsync()
}
else
{
- this.LoadPublisher = new AzureBlobLoadPublisher(settings.BlobStorageConnection, settings.HubName);
+ this.LoadPublisher = new AzureBlobLoadPublisher(settings.BlobStorageConnection, settings.HubName, settings.TaskhubParametersFilePath);
}
}
diff --git a/test/PerformanceTests/host.json b/test/PerformanceTests/host.json
index 6d9a9bac..c6ae40c8 100644
--- a/test/PerformanceTests/host.json
+++ b/test/PerformanceTests/host.json
@@ -100,6 +100,8 @@
// "PartitionManagement": "RecoveryTester",
// "PartitionManagementParameters": "7",
+ //"TaskhubParametersFilePath": "preserved-hub.json",
+
// set this to "Local" to disable the global activity distribution algorithm
// options: "Local", "Static", "Locavore"
"ActivityScheduler": "Locavore",