ocurrent / solver-service

An OCluster service for solving opam dependencies
Apache License 2.0
12 stars 7 forks source link

Discussion around the improvement of solver-service #53

Closed moyodiallo closed 11 months ago

moyodiallo commented 1 year ago

slight re-design/improvement

Actual limitations

Improvement

graph LR
    A[A.Opam commits\nupdate\nlock]--->|Resquest| B[Cache of \nResponse]
    B[Cache of \nResponse] --->|Response| A[Opam commits\nupdate\nlock]

    C[Verify \nto \nresolve] ---> |Response|B[Cache \nof \nResponse]
    B[Cache \nof \nResponse] --->|Resquest| C[Verify \nto \nresolve]

    C[Verify \nto \nresolve] -->|Resquest| D[Distribute\nby\nplatform\nto worker-processes]
    C[Verify \nto \nresolve] --> GG[Get the names of\nthe opam urls packages]
    GG[Get the names of\nthe opam urls packages] --> D[Distribute\nby\nplatform\nto worker-processes]
    D[Distribute\nby\nplatform\nto\n workers] --> |Response|C[Verify \nto \nresolve]

    D --> H[wker1]
    D --> E[wker2]
    D --> F[wker3]
    D -->.......
    D --> G[wker n]

stages

cancelling a job

It's possible when distributing the workers to manage their state. A worker could be in different state:

This is the plan :

EDITED: to add the plan.

moyodiallo commented 1 year ago

Feel free to subject. :)