Repository navigation
Conversation
- Add selectable forward and embedded REST executors with forward as default. - Reuse the existing Gremlin workers, serializer, auth context and transactions. - Integrate executor startup, shutdown and supported-topology validation. - Add differential contract tests, usage docs and reproducible benchmarks.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3388 +/- ##
============================================
+ Coverage 55.93% 56.44% +0.51%
- Complexity 2277 6782 +4505
============================================
Files 774 779 +5
Lines 68534 72558 +4024
Branches 9333 10689 +1356
============================================
+ Hits 38334 40955 +2621
- Misses 26634 27902 +1268
- Partials 3566 3701 +135
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
- Initialize the executor mock used by the isolated server stop fixture. - Assert admission shutdown precedes Gremlin and REST shutdown. - Validate the timeout regression with 48 Java 17 regression tests.
imbajin
left a comment
There was a problem hiding this comment.
Blocking: no. Summary: Embedded REST execution preserves worker-side context, transaction completion and serialization behavior, with explicit configuration guards. Evidence: Exact-head source review, comparison with pinned TinkerPop 3.8.1 behavior, passing server memory/RocksDB and macOS ARM CI; local runtime tests were not rerun. Score: 8.4/10.
- Resolve every configured Gremlin target address before enabling embedded mode. - Reject mixed loopback and non-loopback DNS answers. - Match the selected listener bind independent of target answer order. - Add deterministic IPv4, IPv6, wildcard and mixed-address regression tests.
Purpose of the PR
Add opt-in in-process execution for REST
/gremlinto remove its internal HTTP forwarding hop.gremlinserver.rest_execution_modedefaults toforward;embeddeduses this Server's existing Gremlin runtime.Builds on the merged Java 17 (#3261) and TinkerPop 3.8.1 (#3263) upgrades. Design and investigation.
Main Changes
Readiness, new overload controls, authentication-cache consistency and global shutdown redesign remain separate tasks.
Verifying these changes
Draft follow-up: at concurrency 32 with 1,000-result responses, the extended comparison's p95 medians were 77.94 -> 68.50 ms, while p99 medians were 90.71 -> 109.59 ms (forward -> embedded). Investigate the tail behavior at matched offered load; these were closed-loop runs on a shared host. HStore, full TinkerPop suites and real authentication-store integration remain unverified.
Does this PR potentially affect the following parts?
Documentation Status
Doc - TODO: required documentation is pending; complete it before merging.Doc - Done: documentation is included here or linked below.Doc - No Need: no user-visible documentation is affected.Documentation: REST Gremlin execution modes, linked from the Server README and shipped configuration.
Visual overview
Draft execution-mode overview. Removing an internal HTTP hop does not itself establish performance, compatibility or acceptance.
Conceptual illustrations; not test, benchmark, security, or release-acceptance evidence.