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:
  • 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 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!