Skip to content

Commit 7047eae

Browse files
authored
Merge pull request #108306 from anantshankar17/master
Updating docs for Ephemeral & RequestDrain
2 parents ea03ca5 + 6bf542a commit 7047eae

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

articles/service-fabric/service-fabric-application-upgrade-advanced.md

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ Similarly, service types can be removed from an application as part of an upgrad
1515

1616
## Avoid connection drops during stateless service planned downtime (preview)
1717

18-
For planned stateless instance downtimes, such as application/cluster upgrade or node deactivation, connections can get dropped due to the exposed endpoint being removed after it goes down.
18+
For planned stateless instance downtimes, such as application/cluster upgrade or node deactivation, connections can get dropped due to the exposed endpoint is removed after the instance goes down, which results in forced connection closures.
1919

20-
To avoid this, configure the *RequestDrain* (preview) feature by adding a replica *instance close delay duration* in the service configuration. This ensures the endpoint advertised by the stateless instance is removed *before* the delay timer starts for closing the instance. This delay enables existing requests to drain gracefully before the instance actually goes down. Clients are notified of the endpoint change by callback function, so they can re-resolve the endpoint and avoid sending new requests to the instance going down.
20+
To avoid this, configure the *RequestDrain* (preview) feature by adding an *instance close delay duration* in the service configuration to allow drain while receiving requests from other services within the cluster and are using Reverse Proxy or using resolve API with notification model for updating endpoints. This ensures that the endpoint advertised by the stateless instance is removed *before* the delay starts prior to closing the instance. This delay enables existing requests to drain gracefully before the instance actually goes down. Clients are notified of the endpoint change by a callback function at the time of starting the delay, so that they can re-resolve the endpoint and avoid sending new requests to the instance which is going down.
2121

2222
### Service configuration
2323

@@ -45,24 +45,8 @@ There are several ways to configure the delay on the service side.
4545
4646
### Client configuration
4747
48-
To receive notification when an endpoint has changed, clients can register a callback (`ServiceManager_ServiceNotificationFilterMatched`) like this:
49-
50-
```csharp
51-
var filterDescription = new ServiceNotificationFilterDescription
52-
{
53-
Name = new Uri(serviceName),
54-
MatchNamePrefix = true
55-
};
56-
fbClient.ServiceManager.ServiceNotificationFilterMatched += ServiceManager_ServiceNotificationFilterMatched;
57-
await fbClient.ServiceManager.RegisterServiceNotificationFilterAsync(filterDescription);
58-
59-
private static void ServiceManager_ServiceNotificationFilterMatched(object sender, EventArgs e)
60-
{
61-
// Resolve service to get a new endpoint list
62-
}
63-
```
64-
65-
The change notification is an indication that the endpoints have changed, the client should re-resolve the endpoints, and not use the endpoints which are not advertised anymore as they will go down soon.
48+
To receive notification when an endpoint has changed, clients should register a callback see [ServiceNotificationFilterDescription](https://docs.microsoft.com/dotnet/api/system.fabric.description.servicenotificationfilterdescription).
49+
The change notification is an indication that the endpoints have changed, the client should re-resolve the endpoints, and not use the endpoints which are not advertised anymore, as they will go down soon.
6650
6751
### Optional upgrade overrides
6852
@@ -76,6 +60,17 @@ Start-ServiceFabricClusterUpgrade [-CodePackageVersion] <String> [-ClusterManife
7660

7761
The delay duration only applies to the invoked upgrade instance and does not otherwise change individual service delay configurations. For example, you can use this to specify a delay of `0` in order to skip any preconfigured upgrade delays.
7862

63+
> [!NOTE]
64+
> The setting to drain requests is not honored for requests from Azure Load balancer.
65+
> The setting are not honored if the calling service uses complaint based resolve.
66+
>
67+
>
68+
69+
> [!NOTE]
70+
> This feature can be configured in existing services using Update-ServiceFabricService cmdlet as mentioned above, when the cluster code version is 7.1.XXX or above.
71+
>
72+
>
73+
7974
## Manual upgrade mode
8075

8176
> [!NOTE]

articles/service-fabric/service-fabric-cluster-azure-deployment-preparation.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,16 @@ Ephemeral OS disks is not a specific Service Fabric feature, but rather a featur
8282
}
8383
```
8484

85+
> [!NOTE]
86+
> User applications should not have any dependency/file/artifact on the OS disk, as the OS disk would be lost in the case of an OS upgrade.
87+
> Hence, it is not recommended to use [PatchOrchestrationApplication](https://github.com/microsoft/Service-Fabric-POA) with ephemeral disks.
88+
>
89+
90+
> [!NOTE]
91+
> Existing non-ephemeral VMSS can't be upgraded in-place to use ephemeral disks.
92+
> To migrate, users will have to [add](./virtual-machine-scale-set-scale-node-type-scale-out.md) a new nodeType with ephemeral disks, move the workloads to the new nodeType & [remove](./service-fabric-how-to-remove-node-type.md) the existing nodeType.
93+
>
94+
8595
For more info and further configuration options, see [Ephemeral OS disks for Azure VMs](../virtual-machines/windows/ephemeral-os-disks.md)
8696

8797

0 commit comments

Comments
 (0)