Redis Dispatcher V2 #2552
joshStillerman
started this conversation in
Ideas
Replies: 3 comments
-
Most of them are good points deserving further discussion. Maybe time to
organize the remote MDSplus meeting? (as pointed out in my mail earlier)
Ciao
Gabriele
…On 3/29/2023 3:33 PM, Josh Stillerman wrote:
I have been thinking about the Redis Dispatcher
Here are some random ideas. Please feel free to shoot them down!
* It exposes some severe problems with threads and mdip based IO
(not part of this discussion)
* The basic idea(s) are great
* The servers need to be able to do commands like
o show server
+ show tasks if servers can do more than one thing
o abort task(s)
o abort phase
o restart
o stop
* The servers could be spun up for each task ? Inetd like ?
* We need good logging
* Interdependent shell scripts
* Jobs that are started externally and just have completions (d-tacq
auto store for example)
* Jobs that are long running
* Jobs can extend past end of shot
* Need to know what shots are active
o Stop/deactivate them
o show experiment-name - output active shots
o show experiment-name shot - status of 'shot'
o ? access to logs this way ? probably not
* The keys for a shot should be populated by whatever process does
the build_tables
* Straw man for the keys
o Experiment:shot:phase-name
o Experiment:shot:phase-name:server-name
o Experiment:shot:phase-name:server-name:pathname
o Experiment:shot:phase-name:server-name:pathname:schedule (n or
boolean)
o Experiment:shot:phase-name:server-name:pathname:job-status
+ not dispatched
+ running (more detail here for async jobs?)
+ done
+ do not dispatch (off)
+ will not dispatch - dependency can not be met
o Experiment:shot:phase-name:server-name:pathname:status
+ pending
+ success
+ canceled
+ stopped
o Experiment:shot:phase-name:server-name:pathname:serverid (id
of server running or has run)
+ how do we ID servers? host + pid? something else?
* we can store date/times in some of the redis keys?
* We can use redis lua scripts to atomically claim jobs:
o https://lucaspin.medium.com/atomicity-in-redis-operations-a1d7bc9f4a90
* Basic Operation
o plant state interface / shot-phase poker
+ create pulse
+ build table
# remove previous keys for this experiment / shot
# find all actions
# make the keys
# notify displayers and action servers(if necessary) of
new shot
+ do phase
# notify servers to do the phase
o action server
+ ? respond to 'check-in' messages ?
+ show job(s)
+ abort job(s)
+ Interactions with systemd or ...
# stop
# restart
# start?
+ do phase
# while I can find and claim job that is mine (this lua
script could deal with dependences too)
* do it or start it
* update status
—
Reply to this email directly, view it on GitHub
<#2552>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACCLESC6JLQ3JOAGPSRPTZDW6Q24JANCNFSM6AAAAAAWL7SMQI>.
You are receiving this because you are subscribed to this
thread.Message ID: ***@***.***>
--
Gabriele Manduchi
Istituto Gas Ionizzati del CNR
Consorzio RFX - Associazione EURATOM/ENEA sulla Fusione
Corso Stati Uniti 4, 35127 Padova - Italy
ph +39-049-829-5039/-5000 fax +39-049-8700718
***@***.***, http://www.igi.cnr.it
|
Beta Was this translation helpful? Give feedback.
0 replies
-
The monitor can be a pure javascript application |
Beta Was this translation helpful? Give feedback.
0 replies
-
should the dispatcher (the thing that does build tables, do phase, etc.) be a service or just a program that users can run? |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I have been thinking about the Redis Dispatcher
Here are some random ideas. Please feel free to shoot them down!
Beta Was this translation helpful? Give feedback.
All reactions