Skip to content

Graphql refactor + rolling/expanding #2090

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 45 commits into
base: master
Choose a base branch
from

Conversation

miratepuffin
Copy link
Collaborator

@miratepuffin miratepuffin commented May 9, 2025

What changes were proposed in this pull request?

Removed functions/API changes

  • Removed _id functions from graphql as they are no longer needed
  • Removed GqlGraphs as we now have Namespace support
  • Added Namespaces and MetaGraphs so that large collections of graphs/namespaces can be paged/listed/counted

New functions

  • Added rolling and expanding to Graph, Node, Nodes, PathFromNode, Edge and Edges

Refactor

  • Renamed all graphql structs that started with GQL to make the user facing schema a bit cleaner
  • Started running queries in blocking threads to improve multi query execution and ui interactivity for large graphs

Bug fixes

  • Fixed a problem with namespaces returning loads of null paths and not returning root
  • Fixed issue with recursive writing of indexes causing the server to crash
  • changed caching policy to never kick out graphs after some timeout by default
  • Changed WindowSet to not allow zero size step
  • Fixed issue in rolling where if the step was bigger than the window size the final window would be empty.

Testing

  • Added namespaces tests to check for correct output
  • Added better testing for namespaces and metagraphs
  • Need to add tests for GQL rollings/expanding

Why are the changes needed?

Improvements in the UI timeline and also useful for Graphql users.
Multiple queries being blocked as queries were being run on the main thread.

Are there any further changes required?

The spawn blocking is probably more of a patch than a final solution, but we need to get some benchmarks going first to know what works best.

# Conflicts:
#	python/tests/test_base_install/test_filters/semantics/test_edge_property_filter_semantics.py
#	python/tests/test_base_install/test_filters/semantics/test_node_property_filter_semantics.py
#	python/tests/test_base_install/test_filters/test_edge_composite_filter.py
#	python/tests/test_base_install/test_filters/test_edge_filter.py
#	python/tests/test_base_install/test_filters/test_edge_property_filter.py
#	python/tests/test_base_install/test_filters/test_node_composite_filter.py
#	python/tests/test_base_install/test_filters/test_node_filter.py
#	python/tests/test_base_install/test_filters/test_node_property_filter.py
@miratepuffin miratepuffin changed the title initial graph and node version Graphql refactor + rolling/expanding May 27, 2025
Copy link
Collaborator

@ljeub-pometry ljeub-pometry left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some things to tidy up

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants