Skip to content

InitStore should skip local init when graph.load_from_local_config is explicitly false #3118

Description

@bitflicker64

Problem

bin/init-store.sh always runs full local setup (scan ./conf/graphs, init non-hstore backends, create admin user). That is right for standalone / tarball installs.

For HStore / PD mode the storage side already owns metadata. Server should start and register with PD. Forcing a full local init on every path makes Kubernetes and Helm harder than they need to be (one-shot Jobs, skip-init workarounds on Server pods).

There is already a Server option for local graph config:

  • key: graph.load_from_local_config
  • ServerOptions.GRAPH_LOAD_FROM_LOCAL_CONFIG
  • used by GraphManager when deciding whether to load graphs from ./conf/graphs

InitStore does not look at that flag today.

Proposal

Teach InitStore to honor the same property, with standalone-safe defaults:

rest-server.properties init-store
key unset (current shipped defaults) full init (same as master)
explicit false no-op, WARN, exit 0
explicit true full init

Details:

  • Skip only when the key is present and false. Missing key must not skip. ServerOptions typed default is false for GraphManager; treating "missing" as skip would break bare tarball init-store.sh.
  • Map Docker env HG_SERVER_LOAD_FROM_LOCAL_CONFIG into rest-server.properties (the file init-store.sh already passes to Java).
  • Helm / distributed can set the env (or property) to false so Server does not re-init local storage.
  • No change to the ServerOptions default itself.

Scope

In scope:

  • InitStore.java early exit
  • Docker entrypoint env mapping
  • unit tests for unset / false / true

Out of scope:

Why this shape

Community still supports standalone and multi-backend installs, so default behavior of init-store should stay as it is today. Distributed / HStore needs an explicit opt-out so cluster installs do not fight local init.

Related

I can open a PR that implements the above once this issue is filed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions