Release Date: 26 March 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 and graph.writeRelationship, and
- Inspect your in memory graph with gds.util.nodeProperty, which allows you to retrieve node properties from a named in memory graph.
- 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.
- Other features to improve user experience:
- gds.graph.list now returns a timestamp to indicate when a graph was created
- Removed redundant `write` config parameter from several alpha procedures
- Added `validateRelationships` parameter to Cypher projections, to control behaviour when a user accidentally specifies relationships between non-existent nodes (specify drop or fail)
- New aggregations 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
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 via `gds.graph.generate`
- Fixed out of order and incorrect progress logging for `gds.nodeSimilarity`
- Removed default value of `null` for graph names in gds.graph.exists()
Breaking changes:
- Parallel cypher node loading (via use of `SKIP` and `LIMIT`) 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