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

New trait allowing sensors to pass data references #18

Open
ddkohler opened this issue Feb 21, 2023 · 0 comments
Open

New trait allowing sensors to pass data references #18

ddkohler opened this issue Feb 21, 2023 · 0 comments

Comments

@ddkohler
Copy link
Contributor

With sensors that acquire large amounts of data (>~ MB), the TCP network transfer becomes a bottleneck on acquisition. Writing to file would be a much more performant method.

I want to formally discuss the prospect of a new trait (writes-measured or similar) that allows sensors to pass on references to data, rather than the data itself. The trait would have a new message (get_measured_reference or similar) to retrieve the reference.

Bluesky supports such references, so we should introduce a trait that works well in their system. From what I gather, a single file (let's say hdf5 format) is used for an acquisition, and each measurement Events point to a Datum document that specifies how to extract the specific measurement from the entire file. So a measured_filepath property, with a setter and getter, seem necessary for this trait. The trait's data reference will likely be some form of dictionary with information on how to lookup the data within the file.

For the purposes of streaming data (i.e. not doing an acquisition, but perhaps viewing data live for alignment), it would be desirable to have some option for a writing mode that buffers the last N acquisitions in a file so SMWR can be used to poll the latest element (assuming SWMR works well enough). The buffer is desirable to avoid using up disc space when not needed. Another (easier) option is to introduce a property to turn on/off writing.

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

No branches or pull requests

1 participant