Admin interface - #703
Conversation
|
Before you submit for review:
If you did not complete any of these, then please explain below. |
jshook
left a comment
There was a problem hiding this comment.
I don't mind JMX being added for these things but I do want to see there be a better way. As in if JMX is supported, it should probably be based on a better internal interface.
If you are open to this, we can discuss before pushing forward on this change.
Updated PR to include flexible management registry allowing for other implementations but keeping jmx as the default |
JMX Runtime Configuration for Graph Index Builder
Introduces
GraphIndexBuilderConfig, a JMX-managed singleton that exposesGraphIndexBuilderconstruction parameters as runtime-tunable attributes. Before this change, options such asaddHierarchy,refineFinalGraph,parallelBuild, and build-time compression type could only be set at the call site and required a code change or restart to modify.What's new
managementpackage —GraphIndexBuilderConfigMBeandeclares 8 managed attributes across four groups (graph topology, write path, build compression type, PQ parameters);GraphIndexBuilderConfigis the singleton implementation registered underio.github.jbellis.jvector:type=GraphIndexBuilderConfig.CompressionTypeenum (NONE,PQ,BQ) drives build-time scoring compression selection.GraphIndexBuilder— New constructor(RandomAccessVectorValues, VectorSimilarityFunction, …)readsaddHierarchy,refineFinalGraph, and compression type fromGraphIndexBuilderConfigat construction time. Existing constructors that accept those booleans explicitly are deprecated but unchanged in behavior. The newgetBuildScoreProviderhelper wires PQ and BQ build-time compression end-to-end using the JMX-configured parameters.RandomAccessOnDiskGraphIndexWriter.Builder— Unified builder replaces the separateOnDiskGraphIndexWriter.Builder. ReadsGraphIndexBuilderConfig.isParallelBuild()at build time to selectOnDiskParallelGraphIndexWriterorOnDiskGraphIndexWriter. Both produce an identical on-disk format, so the flag can be toggled without re-indexing.No breaking changes — All existing API call sites continue to compile and behave identically; deprecated constructors are retained and honor caller-supplied values.
Attributes managed via JMX
AddHierarchyRefineFinalGraphParallelBuildBuildCompressionType"NONE"PqMFactorPqKPqCenterDataPqAnisotropicThresholdAll attributes are
@Experimental. MBean registration is best-effort — failure logs a warning but does not affect normal operation.