Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
for better scalability for data sets where most nodes are dense and containing lots of relationship types. Problem: Keeping track of and updating heads of relationship chains in the node -> relationship cache in scenarios where most nodes are dense and there are many relationship types scales poorly w/ regards to cache memory usage also as a side-effect time required to update this cache. Previously all relationship groups would need to be present in the cache and so adding more relationships of different types to dense nodes would create more and more of these groups in the cache, linking to each using a pointer into the simple array backing the cache. Both memory usage would steadily increase as more types were added and finding group for specific type would be more and more expensive due to the linear and random access pointer chasing, resulting in poor performance or inability to import at all. Solution: The approach is instead to do multiple iterations where each iteration imports relationships of a single type. For each iteration Node --> Relationship and Relationship --> Relationship stages _for dense nodes only_ are run so that the cache can be reused to hold relationship chain heads of the next type in the next iteration. All relationships will be imported this way and then finally there will be one Node --> Relationship and Relationship --> Relationship stage linking all sparse relationship chains together.
- Loading branch information
Showing
39 changed files
with
1,697 additions
and
488 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.