Releases: neo4j/graph-data-science
Releases · neo4j/graph-data-science
2.6.0
Breaking changes
- Some of the nested fields of the config returned by the new Cypher Projection were invalid for CP and have been removed.
- Drop support for Neo4j DBMS v5.6..v5.10
New features
- Weakly connected components can now be used to improve the speed of Node Similarity by comparing only nodes belonging to the same component.
The feature can be enabled by either passing the component directly as a node property key (String) via theuseComponents
config parameter, or by setting the same config parameter totrue
, which will compute components internally using WCC as a pre-procesing step.
Bug fixes
- Fix a bug where WCC fails on node filtered, inverse indexed graphs.
- Fix a bug where non-write mode procedures would fail on composite databases.
- Fix a bug where Random Walk could fail on weighted graphs.
Improvements
- Added
degree()
function togds.graph.subgraph
node predicates. - Cancel all arrow server threads on server shutdown. This results in the client being correctly notified of the server shutdown.
Other changes
- Move GDS Arrow features out of alpha status, which most importantly includes:
- Introduction of versioned GDS Arrow endpoints
- Deprecation of the old GDS Arrow endpoints for removal in ~ 6 months
- Refactoring, more testing and regression testing
2.5.7
2.5.6
Graph Data Science 2.5.5
New features
- Add support for Neo4j 5.14
Bug fixes
- Fixed a bug where the new Cypher projection would fail when being used from the new parallel Cypher runtime.
Graph Data Science 2.5.4
Other changes
- Updated Netty dependencies to
4.1.100.Final
to fix CVE-2023-44487
Graph Data Science 2.5.3
New features
- Add support for Neo4j 4.4.27
Bug fixes
- Fixed a bug that lead to an unresponsive DBMS or even OS when running GDS projections in Neo4j on MacBooks (x86 or ARM).
- Avoid a possible race condition random walking and training in Node2Vec. Also removes the need for a timeout in Node2Vec.
Improvements
- Improved state synchronization during Arrow graph import to avoid errors due to out-of-sync messages.
Graph Data Science 2.5.1
New features
- Add support for Neo4j 5.13
Graph Data Science 2.5.0
Breaking changes
- Dropped support for earlier version of Neo4j 5, in particular 5.1, 5.2, 5.3, 5.4, and 5.5 are no longer supported and GDS is no longer compatible with those versions.
New features
Major
- Added new algorithms for directed acyclic graphs:
gds.dag.topologicalSort.stream
gds.dag.longestPath.stream
- Deprecating
alpha
andbeta
namespace for procedures and algorithms, and improving many to production grade - see details in ‘Full list of procedure being promoted’
Minor
- Added procedure to retrieve the version of the installed GDS
CALL gds.version
- Add new procedure,
gds.license.state
to verify the license state of the Graph Data Science library. Also, analogous adding a new functiongds.isLicensed()
. - Added memory estimation for modularity calculation via procedures
gds.modularity.[stream|stats].estimate
- Added memory estimation for filtered KNN via procedures
gds.knn.filtered.[mutate|stream|stats|write].estimate
- Added Stats and Write modes for Harmonic Closeness Centrality
- Added new procedures for SCC:
gds.scc.mutate
gds.scc.stats
- Added memory estimation to SCC:
gds.scc.stream.estimate
gds.scc.stats.estimate
gds.scc.mutate.estimate
gds.scc.write.estimate
- Added consecutiveIds parameter to
gds.scc
procedures to output the components in a consecutive id space. - Added memory estimation for Steiner Tree via procedures
gds.steinerTree.[mutate|stream|stats|write].estimate
- Added stats mode for
gds.modularityOptimization
Bug fixes
- Fixed a bug that in logging progress of
Prepare Batches
in GraphSAGE training. - Fixed a bug where KNN would compute incorrect
EUCLIDEAN
similarity. - Fixed a bug where limits validation could potentially not be triggered with configuration settings passed by from specified defaults.
- Fixed a bug where
gds.graph.filter
would list a relationship type of__ALL__
even if all relationships were filtered out. - Fixed a bug where Triangle Count could compute an incorrect number of triangles when the
maxDegree
parameter was specified. - Fixed a bug where Triangle Count could compute an incorrect number of triangles when multiple relationship types are specified.
Improvements
- The random graph generation procedure now will return a different graph each time
gds.beta.graph.generate
is called without specifying a random seed. Furthermore, when the seed is specified, the resulting graph will always have the same topology. - It is now possible to specify common node labels when importing nodes via arrow.
- A better error message is thrown when encountering null values in the
nodeLabels
column when importing nodes via arrow. - Added the configuration option
listNodeLabels
for the node property stream procedures that will trigger listing all node labels for the respective node. - Added the configuration option
list_node_labels
for the node property stream arrow endpoints that will trigger listing all node labels for the respective node. - The Cypher projection now returns the executing query as part of the projection result as well as part of the
gds.graph.list
output. - Support passing
startNodes
togds.graph.sample.cnarw
as node objects instead of only node ids. - Support passing
nodeId
togds.util.nodeProperty
as node objects instead of only node id. - Improved validation for relationship projections: If a global
SUM
,MIN
,MAX
orCOUNT
aggregation is defined, there needs to be at least one property mapping. - HITS algorithm procedures have a default
hitsIterations
value of 20 - More accurate progress tracking for the
gds.scc
algorithm. - The
componentDistribution
andcommunityDistribution
parameters now also include thep1, p5,p10, p25
percentiles. This affects algorithms in theCommunity Detection
category.
Full list of procedure being promoted
- Promoting Model Catalog procedures:
gds.beta.model.drop
, deprecated bygds.model.drop
- Return column
shared
renamed topublished
modelName
,modelType
extracted to separate return columns
- Return column
gds.beta.model.exists
, deprecated bygds.model.exists
gds.beta.model.list
, deprecated bygds.model.list
- Return column
shared
renamed topublished
modelName
,modelType
extracted to separate return columns
- Return column
gds.alpha.model.delete
, deprecated bygds.model.delete
gds.alpha.model.load
, deprecated bygds.model.load
gds.alpha.model.publish
, deprecated bygds.model.publish
- Return column
shared
renamed topublished
modelName
,modelType
extracted to separate return columns
- Return column
gds.alpha.model.store
, deprecated bygds.model.store
- Promoting Pipeline Catalog procedures:
gds.beta.pipeline.drop
, deprecated bygds.pipeline.drop
gds.beta.pipeline.exists
, deprecated bygds.pipeline.exists
gds.beta.pipeline.list
, deprecated bygds.pipeline.list
- Procedure
gds.alpha.systemMonitor
is deprecated bygds.systemMonitor
- Procedure
gds.beta.listProgress
is deprecated bygds.listProgress
- Procedure
gds.alpha.triangles
is deprecated bygds.triangles
- Deprecating
gds.beta.steinerTree
proceduresgds.beta.steinerTree.mutate
, deprecated bygds.steinerTree.mutate
gds.beta.steinerTree.stats
, deprecated bygds.steinerTree.stats
gds.beta.steinerTree.stream
, deprecated bygds.steinerTree.stream
gds.beta.steinerTree.write
, deprecated bygds.steinerTree.write
- Deprecating
gds.beta.spanningTree
proceduresgds.beta.spanningTree.mutate[.estimate]
, deprecated bygds.spanningTree.mutate[.estimate]
gds.beta.spanningTree.stats[.estimate]
, deprecated bygds.spanningTree.stats[.estimate]
gds.beta.spanningTree.stream[.estimate]
, deprecated bygds.spanningTree.stream[.estimate]
gds.beta.spanningTree.write[.estimate]
, deprecated bygds.spanningTree.write[.estimate]
- Deprecating
gds.alpha.maxkcut
proceduresgds.alpha.maxkcut.mutate[.estimate]
, deprecated bygds.maxkcut.mutate[.estimate]
gds.alpha.maxkcut.stream[.estimate]
, deprecated bygds.maxkcut.stream[.estimate]
- Deprecating
gds.beta.closeness
proceduresgds.beta.closeness.mutate
, deprecated bygds.closeness.mutate
- The
mutateProperty
field has been removed, it can be accessed via theconfiguration
.
- The
gds.beta.closeness.stats
, deprecated bygds.closeness.stats
gds.beta.closeness.stream
, deprecated bygds.closeness.stream
gds.beta.closeness.write
, deprecated bygds.closeness.write
- The
writeProperty
field has been removed, it can be accessed via theconfiguration
.
- The
- Deprecating
gds.beta.leiden
proceduresgds.beta.leiden.mutate[.estimate]
, deprecated bygds.leiden.mutate[.estimate]
gds.beta.leiden.stats[.estimate]
, deprecated bygds.leiden.stats[.estimate]
gds.beta.leiden.stream[.estimate]
, deprecated bygds.leiden.stream[.estimate]
gds.beta.leiden.write[.estimate]
, deprecated bygds.leiden.write[.estimate]
- Deprecating
gds.alpha.conductance
proceduresgds.alpha.conductance.stream
, deprecated bygds.conductance.stream
- Deprecating
gds.alpha.modularity
proceduresgds.alpha.modularity.stream
, deprecated bygds.modularity.stream
gds.alpha.modularity.stats
, deprecated bygds.modularity.stats
- Deprecating
gds.beta.modularityOptimization
proceduresgds.beta.modularityOptimization.stream[.estimate]
, deprecated bygds.modularityOptimization.stream[.estimate]
gds.beta.modularityOptimization.stats[.estimate]
, deprecated bygds.modularityOptimization.stats[.estimate]
gds.beta.modularityOptimization.stream[.estimate]
, deprecated bygds.modularityOptimization.stream[.estimate]
gds.beta.modularityOptimization.stats[.estimate]
, deprecated bygds.modularityOptimization.stats[.estimate]
- Deprecating
gds.beta.influenceMaximization.celf
proceduresgds.beta.influenceMaximization.celf.mutate[.estimate]
, deprecated bygds.influenceMaximization.celf.mutate[.estimate]
gds.beta.influenceMaximization.celf.stats[.estimate]
, deprecated bygds.influenceMaximization.celf.stats[.estimate]
gds.beta.influenceMaximization.celfstream[.estimate]
, deprecated bygds.influenceMaximization.celf.stream[.estimate]
gds.beta.influenceMaximization.celf.write[.estimate]
, deprecated bygds.influenceMaximization.celf.write[.estimate]
- Deprecating
gds.alpha.knn.filtered
proceduresgds.alpha.knn.filtered.mutate
, deprecated bygds.knn.filtered.mutate
gds.alpha.knn.filtered.stats
, deprecated bygds.knn.filtered.stats
gds.alpha.knn.filtered.stream
, deprecated bygds.knn.filtered.stream
gds.alpha.knn.filtered.write
, deprecated bygds.knn.filtered.write
- Deprecating
gds.alpha.nodeSimilarity.filtered
proceduresgds.alpha.nodeSimilarity.filtered.mutate[.estimate]
, deprecated bygds.nodeSimilarity.filtered.mutate[.estimate]
gds.alpha.nodeSimilarity.filtered.stats[.estimate]
, deprecated bygds.nodeSimilarity.filtered.stats[.estimate]
gds.alpha.nodeSimilarity.filtered.stream[.estimate]
, deprecated bygds.nodeSimilarity.filtered.stream[.estimate]
gds.alpha.nodeSimilarity.filtered.write[.estimate]
, deprecated bygds.nodeSimilarity.filtered.write[.estimate]
- Deprecating
gds.alpha.closeness.harmonic
proceduresgds.alpha.closeness.harmonic.stream
, deprecated bygds.closeness.harmonic.stream
gds.alpha.closeness.harmonic.write
, deprecated bygds.closeness.harmonic.write
- Deprecating
gds.beta.graph.relationships
procedures- `gds.beta.graph.relati...
Graph Data Science 2.4.6
neo4j-graph-data-science-2.4.6
New features
- Added compatibility with Neo4j database 5.12.0.
Bug fixes
- Fix a bug where HITS
write
andmutate
procedures failed to parse configuration.
2.4.5
neo4j-graph-data-science-2.4.5
Bug fixes
- Fix a bug in the triangle-related procedures with on graphs with multiple relationship types where triangles could be computed incorrectly. The following procedures are affected:
gds.triangleCount.[stream|mutate|write|stats]
gds.localClusteringCoefficient.[stream|mutate|write|stats]
gds.alpha.triangles