Venkata Phani Kumar Mangipudi created TINKERPOP-1249:
--------------------------------------------------------

             Summary: 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: Bug
          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)

Reply via email to