Search code examples
distributed-computingorleans

Orleans - What happens when system storage is down or inaccessible?


I'm evaluating Microsoft Orleans as the base for a custom distributed cache (among other features).

I was able to create a non-reliable cluster for evaluation purposes using MembershipTableGrain. All was working as described within the documentation.

Now I'm planning on set up a reliable cluster using on-premise servers (Azure is not an option). I appear to be leaning towards using the Relational Storage (SqlServer/ADO.net) Membership provider

My question is:

What happens to the status of the silos within the cluster if the Silo Membership database is down or it is not accessible (server outage, network issues, etc.)? I would assume it would affect the whole cluster as far as I understand the Orleans Membership Protocol.


Solution

  • You can read about it here:

    http://dotnet.github.io/orleans/Documentation/Runtime-Implementation-Details/Cluster-Management.html

    Basically, all existing silos and clients will keep working as is, and will not get impacted, but new silos or clients will not be able to join. Also, if a silo dies, it will not be excluded from the membership and thus some proportion of traffic will be failing until the membership is up.

    But as long as no one else fails or joins, failures/unavailability of the storage is completely transparent. That was a deliberate design choice.