You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Karthik Rajan (JIRA)" <ji...@apache.org> on 2016/08/22 04:20:20 UTC

[jira] [Commented] (TINKERPOP-1249) Gremlin driver to periodically issue ping / heartbeat to gremlin server

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

Karthik Rajan commented on TINKERPOP-1249:
------------------------------------------

Before we get the driver to fire periodic pings, is it possible to make the GremlinServer open a ping API that can be wired with the load balancer? I'm working on monitoring the server health from within the host, and the current plan is to use a Driver to manually do something like g.V().limit(1) to see if the server is healthy. Do you recommend any other workarounds in the meanwhile?

> Gremlin driver to periodically issue ping / heartbeat to gremlin server
> -----------------------------------------------------------------------
>
>                 Key: TINKERPOP-1249
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1249
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: driver
>    Affects Versions: 3.1.1-incubating
>         Environment: gremlin driver accessing gremlin server behind a load balancer / proxy (tested on nginx proxing the gremlin server)
>            Reporter: Venkata Phani Kumar Mangipudi
>            Priority: Critical
>
> Gremlin driver currently not sending any ping request to the gremlin server. As a result, the websocket channel gets closed by the nginx / load balancer/ proxy after a period of inactivity. 
> This forces the sockets to be left open indefinitely on the proxy/ load balancer. Which is not a good practice, because this would lead to socket leaks (not sure if that is the right word). What I mean by saying socket leak, is: if there are multiple clients (micro services) connecting to the same gremlin-server using gremlin driver. They all end up having open channels to the server. And the server would never be able to release the channels. 
> Meaning if the micro services using gremlin driver and having a pool size of 10 are restarted say 100 times, there will be 1000 channels open indefinitely and there is no way to revoke the killed instances' open channels. 
> This has been discussed in gremlin-users group: https://groups.google.com/forum/#!topic/gremlin-users/UjaV6sRuKMc



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)