orleans icon indicating copy to clipboard operation
orleans copied to clipboard

Multiple Silos on single Host (One Cluster) Not updating database status with UseAdoNetClustering (3.2.2 and 3.7.1)

Open AditiAimetric89 opened this issue 11 months ago • 1 comments

Dear Orleans Team,

I hope this message finds you well.

Problem description-

  • Orleans Version - 3.2.2/3.7.1
  • Our software isn't deployed to the cloud
  • We currently run a single service per deployment, which hosts an Orleans cluster containing a single silo
  • Our intention is to scale this out so that we can have multiple services per deployment, each containing one Orleans silo which are all part of a single cluster.

var invariant = "System.Data.SqlClient"; // for Microsoft SQL Server var connectionString = " Data Source= .;Initial Catalog=Clustering;Integrated Security=True;Pooling=False;Max Pool Size=200;MultipleActiveResultSets=True";

SILO Host Config-- // Define the cluster configuration var builder = new SiloHostBuilder() .Configure<ClusterOptions>(options => { options.ClusterId = "dev"; // Unique ID for the Orleans cluster options.ServiceId = "SiloHostService"; // Unique ID for your application })

     .ConfigureEndpoints(siloPort: 11112, gatewayPort: 22223)

     //ADODOTNET Clustering            
     .UseAdoNetClustering(options =>
     {
         options.Invariant = invariant;
         options.ConnectionString = connectionString;
     })

     .UseDashboard(options => {  })

     this._siloHost = builder.Build();

Client Config -- var clientBuilder = new ClientBuilder()

  .Configure<ClusterOptions>(options =>
  {
      options.ClusterId = "dev"; // Unique ID for the Orleans cluster
      options.ServiceId = "SiloHostService"; // Unique ID for your application

  })
 //ADONETclustering
 .UseAdoNetClustering(options =>
 {
     options.Invariant = invariant;
     options.ConnectionString = connectionString;
 })
  1. We have two windows services (Silos) with different Silo ports and Gateway Ports running on the same localhost/Machine, along with one Web application/website tied to one of the Services mentioned.
  2. Both windows services started normally , We are able to see both Silos running on OrleansDashboard with Orleans 3.2.2 activated grain using AdoNetClustering method. OrleansDashboard not supported with 3.7.1.
  • If all silos are stopped, the status of the last one is not updated in the membership table (it remains at 3). This prevents other silos from being restarted - how can this be resolved?
  • observed issue in silo status update in membership table.

AditiAimetric89 avatar Apr 02 '24 04:04 AditiAimetric89