[
https://issues.apache.org/jira/browse/TINKERPOP-2546?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17320494#comment-17320494
]
ASF GitHub Bot commented on TINKERPOP-2546:
-------------------------------------------
lyndonb-bq opened a new pull request #1416:
URL: https://github.com/apache/tinkerpop/pull/1416
Switching branch to fix commit history, old pull request is here:
https://github.com/apache/tinkerpop/pull/1415
https://issues.apache.org/jira/browse/TINKERPOP-2546
# Motivation
The current Tornado implementation of gremlin-python has a number of issues
including heartbeat timeout, multithreading issues with DriverRemoteConnection,
errors in the build due to the IOLoop, and issues with being unable to use the
asyncio event loop when using the driver.
Because Python 2 support is dropped for Tinkerpop 3.5, this is a good time
to switch to another implementation and do a clean cut of all these issues.
This implementation uses AIOHTTP, this will also put gremlin-python one step
closer to having a fully asyncio compatible solution that properly leverages
the async/await syntax.
See more on the discussion here
https://lists.apache.org/thread.html/rc4d047ba0245fde3261bad0ea156a0f35db1ab0f92c8e80d4fb1b815%40%3Cdev.tinkerpop.apache.org%3E
## Changes
The following changes were made:
- Removed Tornado
- Added AIOHTTP implementation
- Added dependency on AIOHTTP and removed dependency on Tornado
- Added max_content_length and heartbeat parameters to transport
- Removed compression_options parameter from transport
- Added some unit tests
- Switched transport.closed to `abc.abstractmethod`/`@property` from
`@abstractproperty` since the latter is deprecated
### Applicable Tickets
Ticket for change to be made
https://issues.apache.org/jira/browse/TINKERPOP-2546
The following issues are fixed with these changes:
- Heartbeat timeout issue:
https://issues.apache.org/jira/browse/TINKERPOP-1886
- DriverRemoteConnection multithreading issue:
https://issues.apache.org/jira/browse/TINKERPOP-2388
- IOLoop close build errors:
https://issues.apache.org/jira/browse/TINKERPOP-2484
### Testing Consideration
The following tests were done
- Builds with `mvn clean install -pl gremlin-python`
- Manually tested that if idleConnectionTimeout is set and a heartbeat is
provided, connection does not drop
- Manually tested that if idleConnectionTimeout is set and a heartbeat is
NOT provided, connection does drop
- Observed that the build output no longer prints IOLoop errors
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Change transport layer to use AIOHTTP instead of Tornado
> --------------------------------------------------------
>
> Key: TINKERPOP-2546
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2546
> Project: TinkerPop
> Issue Type: Improvement
> Components: python
> Affects Versions: 3.5.0
> Reporter: Lyndon Bauto
> Priority: Major
> Fix For: 3.5.0
>
>
> Following discussion here
> https://lists.apache.org/thread.html/rc4d047ba0245fde3261bad0ea156a0f35db1ab0f92c8e80d4fb1b815%40%3Cdev.tinkerpop.apache.org%3E,
> this ticket will track rewriting the tranport layer of gremlin-python to use
> AIOHTTP instead of Tornado. I am currently working on this and will have a
> pull request shortly.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)