Skip to content

Rename evaluationTimeout to timeoutMs#3508

Open
kenhuuu wants to merge 1 commit into
masterfrom
rename-evalTimeout
Open

Rename evaluationTimeout to timeoutMs#3508
kenhuuu wants to merge 1 commit into
masterfrom
rename-evalTimeout

Conversation

@kenhuuu

@kenhuuu kenhuuu commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

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.

Review guide:
This is another PR that is mostly a search and replace of evaluationTimeout to timeoutMs. 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 read timeoutMs. evaluationTimeout is arguably a more descriptive name, but an effort was made to try and explain what timeoutMs is everywhere that it is used.

VOTE +1

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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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?

Comment thread docs/src/reference/gremlin-applications.asciidoc
|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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread docs/src/reference/gremlin-applications.asciidoc
Comment thread docs/src/upgrade/release-4.x.x.asciidoc
Comment thread docs/src/upgrade/release-4.x.x.asciidoc
Comment thread docs/src/upgrade/release-4.x.x.asciidoc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants