Release Date: 9 April 2020
New features:
- Multiple node label support: You can now load, and reference, multiple node labels in your in memory graph. This allows you to load all the data you need for multiple algorithms once and refer to specific node labels when you call each algorithm. This is specified by the new parameter
nodeLabels
. - Graph mutability: We’ve introduced the ability to update your in-memory analytics graph when you execute product supported and beta algorithms. This allows you to chain together multiple algorithms, and only write back your final results to your Neo4j database. To support this we’ve added procedures to:
- Update your in memory graph with the
.mutate
mode for product supported and beta procedures (not available for alpha) - Write mutated data back to your Neo4j database with
graph.writeNodeProperties
andgraph.writeRelationship
, - Remove data from your in memory graph with
gds.graph.removeNodeProperties
andgds.graph.deleteRelationships
- Inspect your in memory graph with
gds.util.nodeProperty
, which allows you to retrieve node properties from a named in memory graph.
- Update your in memory graph with the
- Heap control: All gds procedures execute on heap, and this may lead to OOMs, so we now block the execution of algorithms that will require more memory than currently available.
- Graph Export: We’ve added a catalog procedure to allow you to create new Neo4j databases from named in-memory graphs,
gds.alpha.graph.export
- Other features to improve user experience:
gds.graph.list
now returns a timestamp to indicate when a graph was created as well as a modificationDate to indicate if/when a graph was mutated.- Removed redundant
write
config parameter from several alpha procedures - Added
validateRelationships
parameter to Cypher projections, to control behavior when a user accidentally specifies relationships between non-existent nodes (specify drop or fail) - New aggregation type,
COUNT
, to summarize parallel relationships based on their total count - When a user improperly misconfigures a procedure call, the error message now suggests the possible misspelled key
- Better error messaging when a user accidentally loads an empty graph
Bug fixes:
gds.alpha.spanningTree
has been fixed so it now creates relationship properties- Fixed
.estimate
function when run on an in memory graph created viagds.graph.generate
- Fixed out of order and incorrect progress logging for
gds.nodeSimilarity
- Removed default value of
null
for graph names ingds.graph.exists()
Breaking changes:
- Parallel cypher node loading (via use of
SKIP
andLIMIT
) has been disabled — data are already loaded in parallel, and this method results in significantly worse performance than the default mode.
The GDS library is compatible with Neo4j 3.5 versions greater than 3.5.8
The GDS library is not compatible with Neo4j 4.0. We plan on releasing a 4.0 compatible version in late April 2020.
Feedback? Please post feedback as issues on our github repo!
Recent Graph Data Science Releases
- Graph Data Science 2.12
- Graph Data Science 2.11
- Graph Data Science 2.10.1
- Graph Data Science 2.9.0
- Graph Data Science 2.8.0