Skip to content

Complete rewrite of database layer - #2

Open
TheTechRobo wants to merge 16 commits into
masterfrom
new-queue
Open

Complete rewrite of database layer#2
TheTechRobo wants to merge 16 commits into
masterfrom
new-queue

Conversation

@TheTechRobo

@TheTechRobo TheTechRobo commented Jun 27, 2026

Copy link
Copy Markdown
Owner

First commit was from February, geez...

things still to do (off the top of my head):

  • Display a relation graph on the dashboard (this one can maybe wait)
  • Find all the bugs!

Systems other than brozzler will probably be implemented with a
configuration option, not this enum.

Actionless jobs (i.e. JobType.NONE) are a hack. If they are desired,
they can be emulated with a tag that owned by no pipelines, which
avoids tainting the entire system's design with them. (This could
be useful for, e.g., a simple way of storing results from custom JS
over multiple pages, where otherwise you would need to merge the
CUSTOM_JS result for each page.)
This makes the system (at least IMO) much easier to understand.
Having one set of rules that could change four different settings
took a lot more thinking than needed.
Only searches through pages, not requisites.
Also clean up the existing page listing code into nicer templates.
This also makes update_job_status only required to be called
when JobExhausted is raised; completing an attempt computes
a new status automatically.

Also removes claim locks, I can't see a use for them and don't
want them cluttering up the code any more.
Previously, the trigger assumed that (a) all discovered children
would have a reduced depth, and (b) the difference in depth was
the same for each one. It was also rather difficult for me to reason
about months after writing it. AFAICT it's the only good way of doing
it with a recursive CTE, so we're recursing manually now :-)

I discovered this when playing around with adding a fuzz tester for
the relations system. Two previously-failing tests have been added
(one of them a fuzz test, the other a simplified case from that
test) and one test that did pass but is good to have anyway. I did
not realise how poorly-tested the relations system was until now.

The tests should probably be cleaned up at some point, but I've spent
too long looking at them these past few days, so that'll have to wait :P
Also add a 'script' service for docker-compose, for convenience.
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.

1 participant