Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 23:17
    benjaminpetit opened #6989
  • 23:02
    benjaminpetit opened #6988
  • 23:02
    benjaminpetit milestoned #6988
  • 22:19
    ReubenBond synchronize #6986
  • 21:52

    benjaminpetit on master

    Remove .NET Standard 2.0 target… (compare)

  • 21:52
    benjaminpetit closed #6984
  • 21:39
    ReubenBond synchronize #6984
  • 21:39
    ReubenBond synchronize #6986
  • 21:27
    ReubenBond synchronize #6984
  • 21:21

    benjaminpetit on master

    Remove Orleans.TelemetryConsume… (compare)

  • 21:21
    benjaminpetit closed #6972
  • 16:30
    ReubenBond commented #6987
  • 09:10
    stasyanko starred dotnet/orleans
  • 08:14
    Ilchert synchronize #6853
  • 07:19
    Difficulty-in-naming opened #6987
  • 03:15
    ReubenBond commented #6981
  • 03:15

    ReubenBond on master

    Code cleanup in Task Scheduler … (compare)

  • 03:15
    ReubenBond closed #6981
  • 03:12

    ReubenBond on master

    Fix retry logic in PersistentSt… (compare)

  • 03:12
    ReubenBond closed #6982
burgerTo
@burgerTo
@sergeybykov thanks, also for the hint with potential grain deactivation. I try to handle this in the grain statemachine.
COCPORN
@COCPORN
What time was the meetup again?
Reuben Bond
@ReubenBond
1700-1800 GMT (9am PST)
COCPORN
@COCPORN
Ah, excellent, thanks.
David Christensen
@OracPrime
"Cannot enqueue message to invalid activation" - what does that mean?
I've got my grain placement going, but everything's stopped working now :( I think the vast majority of calls should be in-silo. Can I see what calls are cross-silo? I'm suffering from Orleans producing too much debugging information but I can't see anything useful.
Tom Nelson
@Zeroshi
@veikkoeeva i use vista print and they are able to handle each one of your issues. they are fast, affordable, and very good. that design looks nice and i can see a metallic foil making it "pop"
Reuben Bond
@ReubenBond
@OracPrime send me your placement director code
pawanrao
@pawanrao
Hi all,
I'm trying to integrate Orleans Streams with SQS and I'm seeing consistent exceptions when connecting to local SQS instance(localstack) or on AWS
Exception while calling IQueueAdapter.CreateNewReceiver. System.NullReferenceException: Object reference not set to an instance of an object. at OrleansAWSUtils.Storage.SQSStorage.CreateClient() in D:\build\agent\_work\23\s\src\AWS\Orleans.Streaming.SQS\Storage\SQSStorage.cs:line 86 at OrleansAWSUtils.Streams.SQSAdapterReceiver.Create(SerializationManager serializationManager, ILoggerFactory loggerFactory, QueueId queueId, String dataConnectionString, String serviceId) in D:\build\agent\_work\23\s\src\AWS\Orleans.Streaming.SQS\Streams\SQSAdapterReceiver.cs:line 30 at OrleansAWSUtils.Streams.SQSAdapter.CreateReceiver(QueueId queueId) in D:\build\agent\_work\23\s\src\AWS\Orleans.Streaming.SQS\Streams\SQSAdapter.cs:line 39 at Orleans.Streams.PersistentStreamPullingAgent.InitializeInternal(IQueueAdapter qAdapter, IQueueAdapterCache queueAdapterCache, IStreamFailureHandler failureHandler) in D:\build\agent\_work\23\s\src\Orleans.Runtime\Streams\PersistentStream\PersistentStreamPullingAgent.cs:line 107
Is there a specific way the connection string should be specified?
I currently have something like this:
http://localhost:4576/123456789012/test_queue
Sergey Bykov
@sergeybykov
We are starting the meetup in a couple of minutes.
Veikko Eeva
@veikkoeeva
@Zeroshi :point_up: January 22, 2020 5:37 PM I have to check if they support Pantone (or an accurate enough transformation from RGB) and edge painting (I might paint myself too, though).
Not and Orleans issue directly, though, but maybe there are startups considering Orleans who need to think this kind of stuff. :P
Kevin Ashton
@ashtonkj_twitter
Will the link to the recording be posted on the OrleansContrib meetups too?
Reuben Bond
@ReubenBond
Yes, we will
COCPORN
@COCPORN
Can we chat about this, because I was a little late to the party?
Kevin Ashton
@ashtonkj_twitter
Fantastic. Great meetup all. Some exciting stuff coming by the looks of it
makuchma
@makuchma
Hi all, say I have two Orleans clusters that are independent from each other and I want grains from C1 to access grains in C2. In this case can we just add an Orleans client to C1 as if it was just another client application?
Tom Nelson
@Zeroshi
@veikkoeeva dont kill yourself with pantones. i have photoshop if to need some conversions and touch ups.
i am curios to hear more about k8 hosting and the config setup needed to do so.
COCPORN
@COCPORN
I have done AKS with Orleans. I am sure it wasn't ideal, but it was performant and good.
Reuben Bond
@ReubenBond

@illia-maier

My question about tools for some kind on deployment help features like "suspend" cluster, when all grains deactivating and save state and no one new created, because now i implementing it for Blue-Green deploy in k8s, we has many inputs(HTTP, message bus) so can not use builtin k8s features for HTTP only

I'd like to understand this more - could you open an issue so we can discuss?

Sergey Bykov
@sergeybykov
@makuchma Yes, a separate cluster client for C2 should be sufficient for making calls to C1.
Reuben Bond
@ReubenBond

@jdom

I assume pluggable grain directory would bring some out of the box options that would allow, for example, to guarantee a single activation for a certain grain instance... is that correct?

It's certainly a step in that direction. There would need to be an active deactivation protocol or leasing mechanism to give strong guarantees (because a silo might not know that it's been declared dead, for example, and a grain could still be processing some long-running request, etc)

@OracPrime

Presumably you've checked that having string ids doesn't hit performance? Non-fixed size sounds like memory overhead and trouble.

Yes, they cheap and internable (poolable). There is a mechanism for amortizing allocations even when they're frequently sent over the wire.

makuchma
@makuchma
Thanks @sergeybykov . For a local setup how should I configure the silos and clients? I think the the standard local configuration (http://dotnet.github.io/orleans/Documentation/clusters_and_clients/configuration_guide/local_development_configuration.html) is geared towards a single cluster scenario (which makes sense). Should I use UseDevelopmentClustering (server) + UseStaticClustering (client)(http://dotnet.github.io/orleans/Documentation/clusters_and_clients/configuration_guide/typical_configurations.html#unreliable-deployment-on-a-cluster-of-dedicated-servers) instead?
(just to clarify, I mean using UseDevelopmentClustering with one IP on each case, not trying to put all clusters together since they are meant to work independently)
makuchma
@makuchma
Just to give an idea about what I'm trying:
// server 1
                .UseOrleans(builder =>
                {
                    builder
                        .UseDevelopmentClustering(new IPEndPoint(IPAddress.Parse(myIp), 11111))
                        .ConfigureEndpoints(siloPort: 11111, gatewayPort: 30001)
                        .Configure<ClusterOptions>(options =>
                        {
                            options.ClusterId = "ResourceManagerCluster";
                            options.ServiceId = "ResourceManagerService";
                        })
                        .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(AllocatorGrain).Assembly).WithReferences())
                        .AddMemoryGrainStorage(name: "ResourceManagerStorage");
                })

// server 2
                .UseOrleans(builder =>
                {
                    builder
                        .UseDevelopmentClustering(new IPEndPoint(IPAddress.Parse(myIp), 11112))
                        .ConfigureEndpoints(siloPort: 11112, gatewayPort: 30002)
                        .Configure<ClusterOptions>(options =>
                        {
                            options.ClusterId = "WorkloadManagerCluster";
                            options.ServiceId = "WorkloadManagerService";
                        })
                        .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(SchedulerGrain).Assembly).WithReferences())
                        .AddMemoryGrainStorage(name: "WorkloadManagerStorage");
                })

// client 1
            Client = new ClientBuilder()
                .UseStaticClustering(new[] { new IPEndPoint(IPAddress.Parse(myIp), 30001) })
                .Configure<ClusterOptions>(options =>
                {
                    options.ClusterId = "ResourceManagerCluster";
                    options.ServiceId = "ResourceManagerService";
                })
                .Build();

// client 2
            Client = new ClientBuilder()
                .UseStaticClustering(new[] { new IPEndPoint(IPAddress.Parse(myIp), 30002) })
                .Configure<ClusterOptions>(options =>
                {
                    options.ClusterId = "WorkloadManagerCluster";
                    options.ServiceId = "WorkloadManagerService";
                })
                .Build();
Samir Mowade
@sammym1982
@sergeybykov Is there a recording / presentation you will be putting somewhere. I had a hard conflict at this time and would love listen to raodmap and details discussed.
makuchma
@makuchma
I can get my front-end to use clients 1 and 2 and talk to both Orleans clusters. However, whenever I try a test using front-end --> C1 --> C2, it just hangs and fails with:
An unhandled exception occurred while processing the request.
TimeoutException: Response did not arrive on time in 00:00:30 for message: Request *cli/a29af79c@b0dd2faa->S10.123.248.74:30002:0*grn/3413AF80/00000000 #16: . Target History is: <S10.123.248.74:30002:0:*grn/3413AF80/00000000:>.
So I wonder if there is something wrong with the combination of IP, silo port, gateway port, etc. Any ideas?
Reuben Bond
@ReubenBond
@sammym1982 we will be uploading it
Sergey Bykov
@sergeybykov
Veikko Eeva
@veikkoeeva
makuchma
@makuchma

Still struggling with my multi-cluster setup. I created a simple project reproducing the problem I mentioned earlier: https://dev.azure.com/makuchma/_git/orleans-multi-cluster

The behavior I observed is: both clusters respond fine if I hit grain methods that work within their respective cluster only (i.e: /test-service1, /test-service2 in my sample app). As soon as I hit the grain method that tries to access the other Orleans cluster via IClusterClient then it hangs. Interestingly, after that, even the test that worked before starts hanging (I guess the grain is "busy" somehow?).

Anyway, if there is any documentation/sample showing how to setup multiple independent clusters, feel free to point me in that direction and I can review all my configs again. It maybe some silly mistake that I'm just not finding at the moment.

Jorge Candeias
@JorgeCandeias
When a regular grain calls a grain service interface, will the request always be fulfilled by the local grain service instance, if it exists? Will the request ever be redirect to another silo where such service implementation exists? If so, in what conditions?
Kevin Ashton
@ashtonkj_twitter
There were a couple of people asking about k8s in yesterday's meetup. I'm always happy to give my 2c (Though I don't claim to be an expert, if there are things I don't know I can harass my devops team).
David Christensen
@OracPrime
@makuchma for my development setup I use LocalHostClustering, making sure I specify an IPEndPoint (that differs for each silo) and a primarySiloEndPoint which is the first silo for all instances. Without the shared primarySiloEndpoint nothing worked well!
@makuchma
private static async Task<ISiloHost> StartSilo()
{
const int cMaxPerMachine = 4;
const int cBaseSiloPort = 11111;
const int cBaseGatewayPort = 30000;
  int instanceNum = 0;
  for (int i = 0; i < cMaxPerMachine; ++i)
  {
    instanceNum = i;
    sSiloMutex = new Mutex(false,
      "ISCO" + i, out bool mutexWasCreated);
    if (mutexWasCreated)
      break;
  }

  // define the cluster configuration
  ISiloHostBuilder builder = new SiloHostBuilder()
    .AddGrainControl()
    .UseLocalhostClustering(cBaseSiloPort + instanceNum, cBaseGatewayPort + instanceNum, new IPEndPoint(IPAddress.Loopback, cBaseSiloPort))
    .Configure<ClusterOptions>(options =>
    {
      options.ClusterId = "dev";
      options.ServiceId = "IglooShapedCalcOrleans";
    })
    .Configure<StatisticsOptions>(options => { options.CollectionLevel = StatisticsLevel.Critical; })
    .Configure<SchedulingOptions>(options =>
    {
      options.TurnWarningLengthThreshold = TimeSpan.FromMilliseconds(1000);
    })
    .ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(SliceReference).Assembly).WithReferences())
    .ConfigureLogging(logging => logging.AddConsole())
    .ConfigureServices(ConfigureServices);

  var host = builder.Build();
  await host.StartAsync();
  return host;
}
I'm told the mutex approach only works on Windows, not linux
Rasmus V. Plauborg
@rvplauborg
Hi everyone - is it possible to have an per-grain outgoing filter? In the docs it is only shown possible with an incoming filter.
Eugene Krapivin
@EugeneKrapivin
Hey guys!
streams related questions:
a. Would it be possible to invoke a grain from a kafka message (given I use a kafka stream provider like https://github.com/jonathansant/Orleans.Streams.Kafka )?
Currently I see 1 option is to get StatelessWorker grains that consume the input from a kafka topic and dispatch the events into stateful grains for processing.
b. Is it possible to use Implicit subscription if the procuder and consumer arent in the same silo?
David Christensen
@OracPrime
Is there a guide to the category names for logging filters anywhere? e.g. .ConfigureLogging(builder => builder.AddFilter("SingleStateTransactionalGrain.data", LogLevel.Trace))
Kevin Ashton
@ashtonkj_twitter
Not that I'm aware of. What I do is enable the category names in the log output to see what they are and then add filters post that.
Harald Schult Ulriksen
@Ulriksen
We're using application insights Telemetry filters.
COCPORN
@COCPORN
Hi, guys. It's me again. Was the meetup recorded yesterday?