You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Stephen Mallette (Jira)" <ji...@apache.org> on 2020/09/17 19:00:08 UTC
[jira] [Updated] (TINKERPOP-2249) Improve RequestOption passing
[ https://issues.apache.org/jira/browse/TINKERPOP-2249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stephen Mallette updated TINKERPOP-2249:
----------------------------------------
Description:
{{RequestOptions}} provides a way to set certain control arguments to send to the server like a per-request timeout or batch size. For bytecode traversals, these are set somewhat statically and selectively by way of {{with()}} which are then gathered by {{DriverRemoteConnection}} into a {{RequestOptions}} object and then sent to the server on the request - it's basically leading to a giant switch statement as new special options are being added.
Perhaps we should also consider a "request headers" space on the {{RequestMessage}} rather than just throwing all these options in at the "args" level.
Another idea might be to do {{with(TraversalSourceOptions)}} where {{TraversalSourceOptions}} would be a new interface that something like {{RequestOptions}} could implement. That way we could pass around {{RequestOptions}} in a consistent way:
{code}
submit("g.V()", RequestOptions.build().timeout(100).create())
g.with(RequestOptions.build().timeout(100).create()).V()
{code}
rather than:
{code}
g.with("evaluationTimeout", 100)
{code}
was:
{{RequestOptions}} provides a way to set certain control arguments to send to the server like a per-request timeout or batch size. For bytecode traversals, these are set somewhat statically and selectively by way of {{with()}} which are then gathered by {{DriverRemoteConnection}} into a {{RequestOptions}} object and then sent to the server on the request - it's basically leading to a giant switch statement as new special options are being added.
Perhaps we should also consider a "request headers" space on the {{RequestMessage}} rather than just throwing all these options in at the "args" level.
> Improve RequestOption passing
> -----------------------------
>
> Key: TINKERPOP-2249
> URL: https://issues.apache.org/jira/browse/TINKERPOP-2249
> Project: TinkerPop
> Issue Type: Improvement
> Components: driver, server
> Affects Versions: 3.4.2
> Reporter: Stephen Mallette
> Priority: Major
>
> {{RequestOptions}} provides a way to set certain control arguments to send to the server like a per-request timeout or batch size. For bytecode traversals, these are set somewhat statically and selectively by way of {{with()}} which are then gathered by {{DriverRemoteConnection}} into a {{RequestOptions}} object and then sent to the server on the request - it's basically leading to a giant switch statement as new special options are being added.
> Perhaps we should also consider a "request headers" space on the {{RequestMessage}} rather than just throwing all these options in at the "args" level.
> Another idea might be to do {{with(TraversalSourceOptions)}} where {{TraversalSourceOptions}} would be a new interface that something like {{RequestOptions}} could implement. That way we could pass around {{RequestOptions}} in a consistent way:
> {code}
> submit("g.V()", RequestOptions.build().timeout(100).create())
> g.with(RequestOptions.build().timeout(100).create()).V()
> {code}
> rather than:
> {code}
> g.with("evaluationTimeout", 100)
> {code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)