You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Anton Kalashnikov (Jira)" <ji...@apache.org> on 2020/07/08 10:09:00 UTC

[jira] [Commented] (IGNITE-13013) Thick client must not open server sockets when used by serverless functions

    [ https://issues.apache.org/jira/browse/IGNITE-13013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17153464#comment-17153464 ] 

Anton Kalashnikov commented on IGNITE-13013:
--------------------------------------------

As I understand, If we forbid to create a server socket on the client-side, client-to-client connection would be impossible. So I have several corresponded questions:
* Does it need to support client-to-client connection along with prohibiting a server socket? Or if the server socket is forbidden, the client-to-client connection can be unsupported?
* Should a server socket ban and forceClientToServerConnection(IGNITE-12438) be merged into one feature or it should be two different features(one depends on other)? (ex. when forceClientToServerConnection set to true, only client able to connect to the server and at the same time client doesn't open the server socket).
* If we still need client-to-client connection(I believe we do), is it ok to use one of the server nodes as a proxy for such connection? It means the client doesn't establish a direct connection to other client but it establishes a connection to the server node(I believe the router node is best in this case) then this server node establishes a connection to the second client. 

My personal answers are the following:
* client-to-client connection should be supported because of its looks useful in several scenarios and some internal features also use it(deployment).
* It should be two different features but when the server socket isn't open, forceClientToServerConnection should be set to true automatically.
* Server node as the proxy is not a bad idea but it can lead to some problem in the failure scenarios and it leads to performance drop(It should be investigated how frequently and in which scenarios the ignite use client-to-client connection for understanding how big drop could be).

[~dmagda] can you share your view about this problem?

> Thick client must not open server sockets when used by serverless functions
> ---------------------------------------------------------------------------
>
>                 Key: IGNITE-13013
>                 URL: https://issues.apache.org/jira/browse/IGNITE-13013
>             Project: Ignite
>          Issue Type: Improvement
>          Components: networking
>    Affects Versions: 2.8
>            Reporter: Denis A. Magda
>            Priority: Critical
>             Fix For: 2.9
>
>
> A thick client fails to start if being used inside of a serverless function such as AWS Lamda or Azure Functions. Cloud providers prohibit opening network ports to accept connections on the function's end. In short, the function can only connect to a remote address.
> To reproduce, you can follow this tutorial and swap the thin client (used in the tutorial) with the thick one: https://www.gridgain.com/docs/tutorials/serverless/azure_functions_tutorial
> The thick client needs to support a mode when the communication SPI doesn't create a server socket if the client is used for serverless computing. This improvement looks like an extra task of this initiative: https://issues.apache.org/jira/browse/IGNITE-12438



--
This message was sent by Atlassian Jira
(v8.3.4#803005)