Skip to content
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

DAG support #1821

Open
spbnick opened this issue May 1, 2024 · 2 comments
Open

DAG support #1821

spbnick opened this issue May 1, 2024 · 2 comments
Labels
question Further information is requested

Comments

@spbnick
Copy link

spbnick commented May 1, 2024

I'm looking for a solution to store and query a revision history DAG for the Linux kernel, including the subtrees and patches on the maillist, within PostgreSQL. Context: https://archive.fosdem.org/2023/schedule/event/graph_case_for_dag/

What kind of graph storage and algorithms does Apache Age use? Is it purely backed by PostgreSQL tables, or is there an in-memory representation? How hard would it be to extend it to have a DAG-optimized representation, with corresponding query optimizations (and data limitations)?

So far I started writing an FDW that just keeps the complete graph in memory and does the absolute minimum queries we need, but there's the question of storage and transaction support which bothers me. I think ideally it could be an extension, using PostgreSQL tables as storage, but maintaining an optimized in-memory representation (stealing it and the algorithms from Git itself, perhaps). However, an FDW is proving challenging already to me as a newbie, so I'd like to see how hard it could be to modify an existing extension instead :D

Thank you!

(reposting from r/apacheage, since I got no response there)

@spbnick spbnick added the question Further information is requested label May 1, 2024
@jrgemignani
Copy link
Contributor

@spbnick The graph is stored in tables. However, for some queries [VLE specifically] there is an in-memory data structure that represents the graph allowing graph algorithms easier transversal.

@spbnick
Copy link
Author

spbnick commented May 25, 2024

Thank you @jrgemignani, I'll consider looking at that structure. However, so far my attempts at using Apache AGE with my dataset were mostly a failure :( So for now I'm building my own FDW.

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

No branches or pull requests

2 participants