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 >