Release Date: 1 December 2022
GDS 2.3.0-alpha02 is compatible with Neo4j 5 versions & 4.4 versions ≥ 4.4.9 & 4.3 versions ≥ 4.3.15.

For GDS compatibility with previous releases, please use GDS Compatibility Table.

Breaking changes

  • Leiden promoted to the beta tier. It is now called via the 'gds.beta.leiden' command instead of the gds.alpha.leiden command.
  • K-means is promoted to the beta tier. It is now called via the gds.beta.kmeans command instead of the gds.alpha.kmeans command.
  • The parameter startNodeId in Spanning Tree algorithms have been replaced with sourceNode.
  • The minimum weighted spanning tree algorithm is moved to beta. It is now called via the gds.beta.spanningTree command instead of gds.alpha.spanningTree
    • The procedures gds.alpha.spanningTree.minimum and gds.alpha.spanningTree.maximum have been removed. You can get the same behavior by specifying the new parameter objective in gds.beta.spanningTree.

New features

Minimum Directed Steiner Tree

  • Added heuristic for minimum directed Steiner Tree under the gds.alpha.steinerTree domain.
    • Added stats mode with gds.alpha.steinerTree.stats
    • Added stream mode with
    • Added mutate mode with gds.alpha.steinerTree.mutate
    • Added write mode with gds.alpha.steinerTree.write


  • New parameter consecutiveIds that assigns consecutive ids for the discovered communities.
  • New parameter seedProperty to seed initial communities for nodes.
  • New parameter tolerance to enable convergence criteria based on difference in modularity from one iteration to another.
  • Now available in progress tracking – gds.list.progress()
  • Added memory estimation mode:
    • gds.beta.leiden.mutate.estimate
    • gds.beta.leiden.stats.estimate
    • gds.beta.leiden.write.estimate

Logistic Regression & MLP

  • New configuration parameters classWeights and focusWeight for training methods, supported by procedures:
    • gds.beta.pipeline.nodeClassification.addLogisticRegression
    • gds.beta.pipeline.nodeClassification.addMLP
    • gds.beta.pipeline.linkPrediction.addLogisticRegression
    • gds.beta.pipeline.linkPrediction.addMLP


  • New algorithm gds.alpha.hashgnn.{mutate,stream} to create HashGNN node embeddings
  • New procedures gds.alpha.hashgnn.{mutate,stream}.estimate to estimate the memory required to run HashGNN

Link Prediction

  • Added new optional configuration parameter negativeRelationshipType to gds.beta.pipeline.linkPrediction.configureSplit

Spanning Tree

  • New modes supported: gds.alpha.spanningTree.(stats, stream, mutate)
  • New yield output for gds.alpha.spanningTree that outputs the sum of weights in the discovered spanning tree.
  • New yield output for gds.alpha.spanningTree that outputs the number of relationships written or added for write and mutate mode respectively.
  • Added memory estimation mode :
    • gds.alpha.spanningTree.mutate.estimate
    • gds.alpha.spanningTree.stats.estimate
    • gds.alpha.spanningTree.write.estimate

Write Labels

  • Added gds.alpha.graph.nodeLabel.write to allow for Node Labels to be written back from projections to a Neo4j Database


  • Added the jobId and username to the ongoingGdsProcedures return field of gds.alpha.systemMonitor.
  • Added username as a new return field to gds.beta.listProgress.
  • Added a new return field to gds.graph.list called schemaWithOrientation which also includes the orientation.

Bug fixes

  • Fixed a bug in Minimum Weighted Spanning Tree on graphs with parallel edges where the discovered tree could have wrong weights.



  • graph import now fully supports external node ids in the 64 Bit space.
  • graph import now supports 16, 32 or 64 Bit node identifiers.


  • Better parallelization and improved overall performance improvements

Other Algorithms

  • Speed improvements for Dijkstra, Astar, Yens, CELF, weighted Betweenness Centrality, and the Spanning Tree algorithms. The improvements will see a slight increase in the memory consumption of these algorithms.

Other changes

  • Histograms returned such as degreeDistribution in gds.graph.list can have slightly different values for specific percentiles due to changes in floating point operations.
  • Progress tracking in the Spanning Tree algorithm has been reworked. Progress reporting may differ from earlier versions.
  • Mark the yielded field schema as deprecated in gds.graph.list and gds.graph.drop. In the next major release, the schema field will use the semantics of schemaWithOrientation