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

Task recovery when fleet adapter get restarted #224

Open
youliangtan opened this issue Aug 19, 2022 · 0 comments
Open

Task recovery when fleet adapter get restarted #224

youliangtan opened this issue Aug 19, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@youliangtan
Copy link
Member

Currently, once a task is assigned to the robot, it will get "stored" in a fleet adapter internal task queue. For whatever reason that triggers a fleet adapter restart, the assigned tasks will get lost after the restart. Therefore, task recovery capability is quite crucial in a RMF system. (for example, user will often update the fleet adapter pod to a newer release, which requires a restart).

There's a pending PR which tries to implement the task backup feature: #161
In this pr, the task logs and backup are stored in a form of a db, in this case, .sqlite format.

Here, An extended proposal is to leverage on the existing rmf-web system. Since we already update the rmf-web persistence db
via WebSocket (with server_uri param), the fleet adapter can also query the same database during restart. This results in a simpler architecture. Furthermore, similar to the usage of Tortoise ORM in the api-server, the fleet adapter should also use an ORM to support various db. (eg. postgresql, sqlite...)

flowchart LR
    A[Fleet Adapter] -->|ws broadcast states| B(rmf-web: api server)
    B <-->|orm| D[database]
    A <-->|orm| D[database]
@youliangtan youliangtan added the enhancement New feature or request label Aug 19, 2022
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

1 participant