Rename evaluationTimeout to timeoutMs#3508
Conversation
Collapses the per-request execution timeout onto a single name, `timeoutMs`, across the server config, the script `with()` token, the internal executor, error messages, and all five GLV APIs. The legacy `evaluationTimeout` and `scriptEvaluationTimeout` names are removed with no alias. The point of the change was to eliminate a dual-name inconsistency, so it made little sense to stop halfway. The 4.x wire protocol already used `timeoutMs` while the config key, script token, and three drivers still spoke `evaluationTimeout` — the server even resolved the effective timeout by checking both names. Renaming only some surfaces would relocate that confusion rather than remove it, and leaving the driver builder methods on the old name would trade a wire-vs-config mismatch for a wire-vs-API one. Assisted-by: Claude Code:claude-opus-4-8
| A transaction can be bounded at three independent scopes, each disabled with `0`. The `evaluationTimeout` bounds a | ||
| single operation. The `idleTransactionTimeout` (default 60000ms) bounds the idle gaps between operations: how long a | ||
| A transaction can be bounded at three independent scopes, each disabled with `0`. The `timeoutMs` bounds a single | ||
| operation. The `idleTransactionTimeout` (default 60000ms) bounds the idle gaps between operations: how long a |
There was a problem hiding this comment.
i was wondering what was going to happen with idleTransactionTimeout (and other timeouts that may still exist) in this PR. Did we now create another inconsistency by moving to the Ms suffix? Should all "timeouts" have the suffix so that it all looks the same?
| |strictTransactionManagement |Set to `true` to require `aliases` to be submitted on every requests, where the `aliases` become the scope of transaction management. |false | ||
| |threadPoolBoss |The number of threads available to Gremlin Server for accepting connections. Should always be set to `1`. |1 | ||
| |threadPoolWorker |The number of threads available to Gremlin Server for processing non-blocking reads and writes. |1 | ||
| |timeoutMs |The maximum amount of time in milliseconds that a request is allowed to execute on the server before it times out. This is the server-wide default and may be overridden on a per-request basis with the `timeoutMs` request argument. This feature can be turned off by setting the value to `0`. |30000 |
There was a problem hiding this comment.
Maybe this this is documented elsewhere, but a question that comes up often is "when does the timeout apply?" does it start when it hits the server (an queues)? or when it starts to be evaluated for execution as it gets picked up off the queue (on a busy server could add delays)? Not sure of the answer to that on HTTP - is that defined by the server semantics?
Perhaps a different issue, but I'd like to not lose that concept if not clearly stated.
Collapses the per-request execution timeout onto a single name,
timeoutMs, across the server config, the scriptwith()token, the internal executor, error messages, and all five GLV APIs. The legacyevaluationTimeoutandscriptEvaluationTimeoutnames are removed with no alias.The point of the change was to eliminate a dual-name inconsistency, so it made little sense to stop halfway. The 4.x wire protocol already used
timeoutMswhile the config key, script token, and three drivers still spokeevaluationTimeout— the server even resolved the effective timeout by checking both names. Renaming only some surfaces would relocate that confusion rather than remove it, and leaving the driver builder methods on the old name would trade a wire-vs-config mismatch for a wire-vs-API one.Review guide:
This is another PR that is mostly a search and replace of
evaluationTimeouttotimeoutMs. What's important for other reviewers to decide is whether this change should have applied as widely as it did. This effectively changes it everywhere including in the server where the YAML will just readtimeoutMs.evaluationTimeoutis arguably a more descriptive name, but an effort was made to try and explain what timeoutMs is everywhere that it is used.VOTE +1