Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • 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
  • 02:12
    kaid starred dotnet/orleans
  • 01:41
    ReubenBond synchronize #6986
  • 01:35
    ReubenBond opened #6986
Kevin Ashton
@ashtonkj_twitter
Will check it out
Veikko Eeva
@veikkoeeva
And I suck with Illustrator. Currently I'm pushing stuff to my little brother (programmer, but fluent with Photoshop). I've also been looking at Fiverr etc. if someone could do the aforementioned color palette things etc., but heck, even people doing business card design often do not seem to understand RGB glow from the screen is the opposite of "CMYK" reflection from a physical surface.
@ashtonkj_twitter You may find http://www.oecd.org/going-digital/topics/blockchain/the-tokenisation-of-assets-and-potential-implications-for-financial-markets.htm interesting also, or https://github.com/lumoin/circomy. I'd need to actually push updates to the doc at some point in the near future. Though I'm off to tour in Europe for about 1.5 weeks soon discussing about these issues so have to wait. :)
Kevin Ashton
@ashtonkj_twitter
Tough life (Going on tour of Europe and all) :D
Veikko Eeva
@veikkoeeva
@ashtonkj_twitter Well, we are self-funded so I need to take days off from a paying job. But it has been a blast during the past few years. It appears there's a lot of demand on what we're working on. Probably need to go out more and find someone willing to join a good cause and be able to program. :) Off to the gym now!
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.