ThinClient issues

classic Classic list List threaded Threaded
5 messages Options
Wolfgang Meyerle Wolfgang Meyerle
Reply | Threaded
Open this post in threaded view
|

ThinClient issues

Hi,

today I tried to use the thin client to connect to two server nodes and
test the performance.

Basically I tried to push random data from nodes where the Ignite
database is not running.

I used the put_all method of the c++ thin client api to do that with
concurrent threads.

However after a short amount of time I get connection problems and there
does not seem to be a disconnect or close connection method available by
the API.

Therefore I tried to create the thin client and the configuration as a
pointer with new and deleted them in case of errors safely.

Each thread has its own client and configuration instance.

For some reason the client is however unable to reconnect.

Can somebody explain me why?

Is there a connection limit set by the default configuration so that the
number of nodes and threads is limited in some way?
What am I doing wrong?
As there are no examples online available for the thinclient where I can
further dig in this is very difficult.

I tried to look at the thin client c++ code and there is indeed a close
function but this is not visible to the outside world for usage....

Regards,

Wolfgang

akorensh akorensh
Reply | Threaded
Open this post in threaded view
|

Re: ThinClient issues

Hi,
  The connection parameters are set by the thin client connector.
see:
https://ignite.apache.org/docs/latest/thin-clients/getting-started-with-thin-clients#configuring-thin-client-connector

 all attributes are listed here:

https://ignite.apache.org/releases/2.9.0/javadoc/org/apache/ignite/configuration/ClientConnectorConfiguration.html
see:
https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/configuration/ClientConnectorConfiguration.html#getThreadPoolSize--
(this specifies the number of threads set to process client requests)

Simple C++ put/get example:
https://github.com/apache/ignite/blob/master/modules/platforms/cpp/examples/thin-client-put-get-example/src/thin_client_put_get_example.cpp

connection resources should released when you destroy the IgniteClient
object.

monitor the Server logs to see what is happening.
see if the app is still connected using netstat.

try to connect via other thin clients to see if connection requests are
honored or not.

Thanks, Alex



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/
Wolfgang Meyerle Wolfgang Meyerle
Reply | Threaded
Open this post in threaded view
|

Re: ThinClient issues

Finally found the issue.
In the thin client configuration I had only one port provided to connect
to the server nodes. As soon as I provided the default range
(10800-10900) the connections seemed to behave better. This resolved the
issue somehow.

However I tried it out at the cluster on the campus. With 50 nodes as
thin clients connecting to two server nodes the server nodes seem to be
completely overwhelmed.

Then I thought why not let every node have it's own Ignite instance.
It seems that a lot of resources are consumed from the Ignite Servers on
the nodes even why no load at all on requests.

Then I realized that starting up all servers is a nightmare. It takes
several minutes and just activating all nodes is more than 3 minutes
without even reliably bringing up all of the nodes....

Does anybody know how to define the consistend-id's in the xml file?

Regards,

Wolfgang





Am 02.12.20 um 10:58 PM schrieb akorensh:

> Hi,
>    The connection parameters are set by the thin client connector.
> see:
> https://ignite.apache.org/docs/latest/thin-clients/getting-started-with-thin-clients#configuring-thin-client-connector
>
>   all attributes are listed here:
>
> https://ignite.apache.org/releases/2.9.0/javadoc/org/apache/ignite/configuration/ClientConnectorConfiguration.html
> see:
> https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/configuration/ClientConnectorConfiguration.html#getThreadPoolSize--
> (this specifies the number of threads set to process client requests)
>
> Simple C++ put/get example:
> https://github.com/apache/ignite/blob/master/modules/platforms/cpp/examples/thin-client-put-get-example/src/thin_client_put_get_example.cpp
>
> connection resources should released when you destroy the IgniteClient
> object.
>
> monitor the Server logs to see what is happening.
> see if the app is still connected using netstat.
>
> try to connect via other thin clients to see if connection requests are
> honored or not.
>
> Thanks, Alex
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>
akorensh akorensh
Reply | Threaded
Open this post in threaded view
|

Re: ThinClient issues

ilya.kasnacheev ilya.kasnacheev
Reply | Threaded
Open this post in threaded view
|

Re: ThinClient issues

In reply to this post by Wolfgang Meyerle
Hello!

I think you need a core pool of server nodes, larger pool of clients with client connector to handle thin client connections, and supply all these clients' addressed to thin clients.

Regards,
--
Ilya Kasnacheev


чт, 3 дек. 2020 г. в 23:29, Wolfgang Meyerle <[hidden email]>:
Finally found the issue.
In the thin client configuration I had only one port provided to connect
to the server nodes. As soon as I provided the default range
(10800-10900) the connections seemed to behave better. This resolved the
issue somehow.

However I tried it out at the cluster on the campus. With 50 nodes as
thin clients connecting to two server nodes the server nodes seem to be
completely overwhelmed.

Then I thought why not let every node have it's own Ignite instance.
It seems that a lot of resources are consumed from the Ignite Servers on
the nodes even why no load at all on requests.

Then I realized that starting up all servers is a nightmare. It takes
several minutes and just activating all nodes is more than 3 minutes
without even reliably bringing up all of the nodes....

Does anybody know how to define the consistend-id's in the xml file?

Regards,

Wolfgang





Am 02.12.20 um 10:58 PM schrieb akorensh:
> Hi,
>    The connection parameters are set by the thin client connector.
> see:
> https://ignite.apache.org/docs/latest/thin-clients/getting-started-with-thin-clients#configuring-thin-client-connector
>
>   all attributes are listed here:
>
> https://ignite.apache.org/releases/2.9.0/javadoc/org/apache/ignite/configuration/ClientConnectorConfiguration.html
> see:
> https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/configuration/ClientConnectorConfiguration.html#getThreadPoolSize--
> (this specifies the number of threads set to process client requests)
>
> Simple C++ put/get example:
> https://github.com/apache/ignite/blob/master/modules/platforms/cpp/examples/thin-client-put-get-example/src/thin_client_put_get_example.cpp
>
> connection resources should released when you destroy the IgniteClient
> object.
>
> monitor the Server logs to see what is happening.
> see if the app is still connected using netstat.
>
> try to connect via other thin clients to see if connection requests are
> honored or not.
>
> Thanks, Alex
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>