ggserver

command
v0.11.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2026 License: MIT Imports: 19 Imported by: 0

Documentation

Overview

Command ggserver runs GoGraph behind its own Bolt server as a standalone process, so that a comparative benchmark can drive it exactly as it drives Neo4j and Memgraph: over a socket, from a client that lives in a different process.

This exists for one measurement reason. When the GoGraph server is hosted inside the benchmark process, the load generator and the engine share one Go runtime and one GOMAXPROCS budget, while the containerised rivals get a CPU allocation of their own and are driven by a client that competes with nothing. Any throughput compared across that asymmetry measures the harness as much as the engine. Running the engine here, under its own GOMAXPROCS, removes the asymmetry: every target becomes a CPU-capped server process addressed over TCP.

In the comparison this binary was built for it runs CONTAINERISED, with the same --cpus cap as the rivals and with the load generator in a container of its own on the same network, because reaching a macOS host process through the virtual machine's port-forward costs more per round trip than the query costs to execute. See docs/concurrency-vs-neo4j-memgraph-2026-08-11.md §2.1.

Usage:

GOMAXPROCS=4 go run ./bench/comparison/ggserver -addr 127.0.0.1:7689

The server is in-memory only: durability is deliberately out of scope here, because the rivals are configured for their own default durability and the comparison this binary serves is one of concurrency, not of commit cost.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL