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

Sync dependencies #347

Open
lippserd opened this issue Aug 12, 2021 · 1 comment
Open

Sync dependencies #347

lippserd opened this issue Aug 12, 2021 · 1 comment
Labels
enhancement New feature or request

Comments

@lippserd
Copy link
Member

At the moment dependencies are not synchronized in Redis and the database and there is no idea for the storage scheme yet.

Since dependencies represent trees (or even graphs?), They can be difficult to store in the database.

At the moment I can think of the following ways to store the dependencies in the database:

  • Associate parent
  • Nested set
  • Materialized path
  • Adjacency list / matrix
  • Closure table

I'm sure there's more.

All schemes must be compared in terms of complexity and performance when writing and reading.

I think it also makes sense to store the parent dependencies directly for the objects. This would allow us to display these in the detail areas in Web without much effort.

@lippserd lippserd added the enhancement New feature or request label Aug 12, 2021
@lippserd lippserd added this to the v1.0.0 milestone Aug 12, 2021
@lippserd lippserd added this to To do in v1.0.0-rc2 via automation Aug 12, 2021
@lippserd lippserd removed this from To do in v1.0.0-rc2 Aug 12, 2021
@julianbrost julianbrost removed this from the 1.0.0 milestone Nov 18, 2021
@julianbrost
Copy link
Contributor

Another idea: don't sync dependencies to the relational database at all but instead only keep them in Redis. Whenever Web wants to display something about dependencies, the required graph algorithms are implemented as Lua scripts and executed on the Redis server.

Only downside with this: you couldn't use the dependency information in filters then (trying to support this would probably require some nasty work merging result sets from Redis and SQL), but things like showing all (reverse) dependencies of a checkable or rendering nice dependency graphs starting from a checkable should work nicely.

There could also be some combined solution where we think about what filtering on dependencies should be supported, write information specifically for these queries to the relational database and use Lua for everything else.

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

No branches or pull requests

2 participants