-
Notifications
You must be signed in to change notification settings - Fork 8
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
Make a redis lookup table caching device #734
Comments
@stan-dot do you plan to put an API between the device and redis? |
what do you mean? I'd use the redis client library and point at the redis instance on the cluster. which would need an ingress |
todo: need to move the temporary implementation from the i18-bluesky repo |
as @DominicOram commented elsewhere it fits best to include this as a child device in Undulator. also this is relevant |
as the scan also uses data from the diode, it remains to be decided how to split the logic between the plan and the device. we could have a data structure to get from the diode, and do all the calculations from the device |
as discussed, this should rather be a stateless callback to a stateful microservice |
As per discussion with @callumforrester and @DiamondJoseph this is needed for db IO as this cannot be in a plan or a stub as it would clog the RunEngine
problem description
i18 lookup tables are saved in brittle csv documents, with manual steps as part of the alignment process.
proposed solution
add a LookupTable device as part of the Undulator or Undulator-DCM system. The device holds a connection to a key value fast lookup store (like Redis, already deployed at i18). Alignment is done automatically just thorugh specifying the desired element and edge, without manual steps. At first peak matching is supported, later a weighed average algorithm could be added as an option.
relevant beamlines
i10 (@Relm-Arrowny has recently done work on that #744), and MX i03, i04 (as discussed with @DominicOram ) at the moment have ophyd-async devices that read the lookup tables from the filesystem
Acceptance Criteria
The text was updated successfully, but these errors were encountered: