Alexandr,

If .WithExecute is not planned to be made available in the C# client, what
is the plan to support custom thread pools from the C# side of things?

Thanks,
Raymond.


On Thu, Jul 18, 2019 at 9:28 AM Raymond Wilson <raymond_wil...@trimble.com>
wrote:

> The source of inbound requests into Server A is from client applications.
>
> Server B is really a cluster of servers that are performing clustered
> transformations and computations across a data set.
>
> I originally used IComputeJob and similar functions which work very well
> but have the restriction that they return the entire result set from a
> Server B node in a single response. These result sets can be large (100's
> of megabytes and larger), which makes life pretty hard for Server A if it
> has to field multiple incoming responses of this size. So, these types of
> requests progressively send responses back (using Ignite messaging) to
> Server A using the Ignite messaging fabric. As Server A receives each part
> of the overall response it processes it according the business rules
> relevant to the request.
>
> The cluster config and numbers of nodes are not really material to this.
>
> Raymond.
>
> On Thu, Jul 18, 2019 at 12:26 AM Alexandr Shapkin <lexw...@gmail.com>
> wrote:
>
>> Hi,
>>
>>
>>
>> Can you share a more detailed use case, please?
>>
>>
>>
>> Right now it’s not clear why do you need a messaging fabric.
>>
>> If you are interesting in a progress tracking, then you could try a
>> CacheAPI or QueryContinious, for example.
>>
>>
>>
>> What are the sources of inbound requests? Is it a client requests?
>>
>>
>>
>> What is your cluster config? How many nodes do you have for your
>> distributed computations?
>>
>>
>>
>> *From: *Raymond Wilson <raymond_wil...@trimble.com>
>> *Sent: *Wednesday, July 17, 2019 1:49 PM
>> *To: *user <user@ignite.apache.org>
>> *Subject: *Re: Threadpools and .WithExecute() for C# clients
>>
>>
>>
>> Hi Alexandr,
>>
>>
>>
>> To summarise from the original thread, say I have server A that accepts
>> requests. It contacts server B in order to help processing those requests.
>> Server B sends in-progress results to server A using the Ignite messaging
>> fabric. If the thread pool in server A is saturated with inbound requests,
>> then there are no available threads to service the messaging fabric traffic
>> from server B to server A resulting in a deadlock condition.
>>
>>
>>
>> In the original discussion it was suggested creating a custom thread pool
>> to handle the Server B to Server A traffic would resolve it.
>>
>>
>>
>> Thanks,
>>
>> Raymond.
>>
>>
>>
>> On Wed, Jul 17, 2019 at 9:48 PM Alexandr Shapkin <lexw...@gmail.com>
>> wrote:
>>
>> Hi, Raymond!
>>
>>
>>
>> As far as I can see, there are no plans for porting custom executors
>> configuration in .NET client right now [1].
>>
>>
>>
>> Please, remind, why do you need a separate pool instead of a default
>> PublicPool?
>>
>>
>>
>> [1] - https://issues.apache.org/jira/browse/IGNITE-6566
>>
>>
>>
>>
>>
>>
>>
>> *From: *Raymond Wilson <raymond_wil...@trimble.com>
>> *Sent: *Wednesday, July 17, 2019 10:58 AM
>> *To: *user <user@ignite.apache.org>
>> *Subject: *Threadpools and .WithExecute() for C# clients
>>
>>
>>
>> Some time ago I ran into and issue with thread pool exhaustion and
>> deadlocking in AI 2.2.
>>
>>
>>
>> This is the original thread:
>> http://apache-ignite-users.70518.x6.nabble.com/Possible-dead-lock-when-number-of-jobs-exceeds-thread-pool-td17262.html
>>
>>
>>
>>
>> At the time .WithExecutor() was not implemented in the C# client so there
>> was little option but to expand the size of the public thread pool
>> sufficiently to prevent the deadlocking.
>>
>>
>>
>> We have been revisiting this issue and see that .WithExecutor() is not
>> supported in the AI 2.7.5 client.
>>
>>
>>
>> Can this be supported in the C# client, or is there a workaround in the
>> .Net environment? that does not require this capability?
>>
>>
>>
>> Thanks,
>>
>> Raymond.
>>
>>
>>
>>
>>
>>
>>
>

Reply via email to