You guys should just switch to a real Asyncio (aiohttp) client
implementation that actually leverages the async/await syntax. As Stephen
mentioned I already did it with aiogremlin if you want to see an example. I
don't control the repo anymore but there is an example implementation there
with an async GLV as well: https://github.com/goblin-ogm/aiogremlin



On Fri, Apr 2, 2021 at 4:17 AM Stephen Mallette <spmalle...@gmail.com>
wrote:

> This is an important body of work and I think it is being done in the right
> fashion. I had thought that we would completely remove the Transport
> abstraction but since "it works" it seems as though there is no need at
> this point. I do seem to recall that David Brown had this abstraction in
> play with aoihttp in mind because aoigremlin was also developed but we
> couldn't use the work here because of our endless dependence on Python 2.
> With Python 2 gone in 3.5.0 we are free from that requirement.
>
> As for keeping Tornado around, I'm on the fence to some degree. I like
> keeping the idea of keeping legacy code around for a bit between versions
> but the problem in this case is that Tornado doesn't really work in 3.5.0.
> It just has too many problems. i think I'm leaning toward simply removing
> it. Please voice concerns for removing Tornado in the next 72 hours (April
> 5, 2021, 7:15am ET) otherwise I think Lyndon should proceed with that path.
>
>
>
> On Thu, Apr 1, 2021 at 4:45 PM Lyndon Bauto <lynd...@bitquilltech.com>
> wrote:
>
> > Hi all,
> >
> > I am looking to rewrite the current transport layer of the Gremlin-Python
> > client to use AIOHTTP [1] instead of Tornado. My plan is to keep the
> > current abstract base class the same and simply rewrite the underlying
> > functions to utilize AIOHTTP.
> >
> > My plan is to use AIOHTTP v3.7.x, which supports Python 3.6+. This will
> > deprecate support of older Python versions, but the current docker Python
> > version for the repository is 3.6, so this should not pose a problem.
> >
> > I have done some prototyping and testing and found the rewrite fixed the
> > following errors:
> >
> >    - Event loop issues when using Tornado [2]
> >    - Heartbeat timeout support [3]
> >    - Multithreaded DriverRemoteConnection [4]
> >    - Build asyncio task errors [5]
> >
> >
> > Because my plan is to rewrite the transport layer using the same abstract
> > base class, we have the option of keeping the old Tornado library as is
> and
> > deprecating it while making the AIOHTTP implementation the default
> > implementation. Otherwise we can fully remove it. I am fine with either
> > option but wanted to get some other opinions on it.
> >
> > Please let me know your thoughts around this and I will take it all into
> > consideration before generating a pull request.
> >
> > [1] https://github.com/aio-libs/aiohttp
> > [2] https://github.com/jupyter/notebook/issues/3397
> > [3] https://issues.apache.org/jira/browse/TINKERPOP-1886
> > [4] https://issues.apache.org/jira/browse/TINKERPOP-2388
> > [5] https://issues.apache.org/jira/browse/TINKERPOP-2484
> >
> > --
> > *Lyndon Bauto*
> > Senior Software Developer
> > Bit Quill Technologies Inc.
> > lynd...@bitquilltech.com
> > https://www.bitquilltech.com
> >
>

Reply via email to