Commit Graph

1715 Commits

Author SHA1 Message Date
babic_a bb681800a2 Update main README with up to date information 2020-07-23 13:13:44 +02:00
babic_a b55fb89ae5 Add stub README files for components 2020-07-23 13:06:13 +02:00
babic_a 8bd1733905 Update README of sf-buffer with improved naming
Changed module_name to module_folder (for consistency).
2020-07-23 12:36:27 +02:00
babic_a 234081f931 Fix example of offset calculation in sf-buffer 2020-07-23 12:30:45 +02:00
babic_a 73389746ca Fix previous commit link 2020-07-23 12:12:58 +02:00
babic_a 85eaf57237 Change link to sf-buffer page and not directly the README 2020-07-23 12:11:44 +02:00
babic_a a94010aaf8 Update README.md with overview diagram 2020-07-22 16:26:34 +02:00
babic_a f0970b1c8a Add more details to sf-buffer file structure 2020-07-22 14:28:53 +02:00
babic_a 79d3e86d9e Added first version of sf-buffer documentation 2020-07-22 14:22:50 +02:00
babic_a bf0bc1180f Add drawings for File and Folder layout on disk 2020-07-22 14:21:15 +02:00
babic_a 04deffbffc Move sf-buffer specific text to sf-buffer README.md 2020-07-22 11:45:23 +02:00
babic_a 3c0f0ab49f Update README.md about the sf-buffer 2020-07-22 11:06:28 +02:00
babic_a 3055c5bc60 Add socket to listen for current pulse_id
The live writer will listen to the stream of pulse_ids coming
from the sf-stream in order to determine the writing delay
it needs to apply. (we will wait 1 second after the data was
written to try to read it back)
2020-07-21 13:25:44 +02:00
babic_a 9d9549b868 Remove start_pulse_id and pulse_id_step from live writer
We do not rely on start_pulse_id and pulse_id_step to
calculate the next image as we don't care which image this
will be - we write whatever we receive. This will allow us
to use an external driver for the pulses we desire to write.
2020-07-20 14:59:00 +02:00
babic_a 0441758d96 Change main writer to operate n_pulses instead of stop_pulse_id
The live writer has been changed to operate on the number of
desired pulses instead of the start and stop pulse_id. This
makes more sense in the context of live retrieval since the
stop pulse id has not been yet observed and the user would
need to calculate it anyway.
2020-07-20 14:55:37 +02:00
babic_a c12601f756 Add JFH5LiveWriter
In comparison with the normal writer, the block operations
have been dropped and the buffering of metadata is not sparse
anymore. Direct chunk writing used for data and buffering +
dump at end for metadata.
2020-07-20 14:49:43 +02:00
babic_a b9b8d74276 Add LiveImageAssembler
The difference between the normal and the LiveImageAssembler
is that the live one can process each image individually,
sacrificing storage performance for writing flexibility -
the user can decide live exactly which frames to write.
2020-07-20 13:52:32 +02:00
babic_a 1474c4c0a1 Add configuration file for live_writer 2020-07-20 13:18:36 +02:00
babic_a b16d74f7fc Update documentation for requesting data files from writer 2020-07-20 11:46:00 +02:00
babic_a 8bf1088257 Remove block logic from jf-live-writer
The live writer will operate ona pulse by pulse basis to
simplify the implementation of random writes (writes of any
pulse_id defined either in advance or from an external source).
2020-07-20 11:22:50 +02:00
babic_a dbc913ee78 Update buffer folder and files naming convention
All references to folders and files inside buffer were updated.
- Base folder to write detector: detector_folder
- Name of the modules inside detector_folder: module_name
- Data grouping folders based on pulse_id: data_folder
- Data grouping files, based on pulse_id: data_file
2020-07-20 11:06:13 +02:00
babic_a 8c1182e412 Update documentation regarding naming of buffer files
Clarify how the path of the files are constructed and
what names should be used to avoid confusion.
2020-07-20 10:54:56 +02:00
babic_a 9763592705 Remove test for code that does not exist anymore 2020-07-20 10:38:41 +02:00
babic_a 73f80bc493 Updated terminology regarding root_folder and device_name
root_folder -> detector_folder
module_name -> channel_name
2020-07-20 10:33:56 +02:00
babic_a b26f0f1600 Add test stub for BinaryReader 2020-07-20 10:32:30 +02:00
babic_a 376469b41c Rename root_folder and channel_name to more sensible names
Since we are always using this recorders in the context of
Jungfraus, we should start naming things in this context as
well. Instead of root_folder we will be using detector_folder
(as root of the buffer on disk for a specific detector) and
module_name instead of device_name (to specify one module
inside the detector).
2020-07-20 10:31:34 +02:00
babic_a bfaf7dd282 Add BinaryReader for live writer
The binary reader reads 1 frame at a time from a module - the
difference being loading 1 image instead of 1 block of images.
This will allow to set the offset and pulse_id increment easily
without complicated internal buffer calculations.
2020-07-20 09:36:37 +02:00
babic_a 475f4a59f2 Add TODO to try fallocate instead of seek and write 2020-07-17 16:36:42 +02:00
babic_a f6d4bc439c Change class name in exception messages 2020-07-17 12:10:29 +02:00
babic_a 2bf658d30c Set the file size in advance on GPFS
When started to use the buffer on GPFS we notices an increase
of metadata access times on GPFS. To try to reduce the number
of metadata updates we set the file size at creation time.
2020-07-17 12:09:46 +02:00
babic_a 83dc003c79 Add stub for jf-live-writer
The goal of this writer is to provide immediate writing
without delay -> following the detector.
2020-07-17 11:37:29 +02:00
babic_a 7e8bde3526 Fix tests for detector_name extraction 2020-07-17 11:36:49 +02:00
babic_a c7185f249b Cleanup sf_streamer 2020-07-17 11:20:50 +02:00
babic_a 465369a322 Add pulse_id stream to streamer
The pulse_id stream can be used to synchronize components.
For example, the writer can listen for the current pulse_id
and write with 1 second delay to a file. This will help us
eliminate the need to wait for the run to complete to start
the data write request.
2020-07-16 11:27:09 +02:00
babic_a 773320799a Switch analysis socket to NOBLOCK
Since we cannot control the rate of the producer (its
whatever the detector is currently doing) we cannot afford
to block if no clients are present.
2020-07-15 10:34:54 +02:00
babic_a 6129b711ba Change processing socket from PUB to PUSH
Since processing of live data can be done at 100Hz it would
be more difficult to stream the full rate with a PUB/SUB mode.

To support distributed live analysis we move to PUSH/PULL
model, since we can support only one live processing at a time
anyway (network constraints when working with large detectors).
2020-07-15 10:29:21 +02:00
Dmitry Ozerov eb685aeea6 adding Alvra 16M in form of 4M; JF02-stream moved away from overloaded core 2020-07-07 11:40:40 +02:00
babic_a 1fd33a0eb9 Merge branch 'master' of https://github.com/paulscherrerinstitute/sf_daq_buffer 2020-07-01 00:05:25 +02:00
Dmitry Ozerov c4a737557d adding Alvra 4p5M and 16M(jf02,jf06) 2020-07-01 00:04:30 +02:00
babic_a 48c64f06d9 Fix headings 2020-06-30 16:36:18 +02:00
babic_a 4b264e96fc Improved installation instructions 2020-06-30 16:35:39 +02:00
babic_a 54a8258685 Add simple detector name check 2020-06-30 11:06:18 +02:00
babic_a 1bab686b12 Create general group with detector_name inside 2020-06-30 10:53:29 +02:00
babic_a aa314fe4d3 Fix import of binary buffer reader 2020-06-30 08:49:39 +02:00
babic_a 47f24ac709 Rename folder 2020-06-29 17:48:16 +02:00
babic_a c67323e297 Moved python scripts to sf_utils 2020-06-29 17:34:52 +02:00
babic_a 8eeacbc47a Introduce logger instead of println 2020-06-29 16:24:06 +02:00
babic_a 682489c2d2 Improve output of verification 2020-06-29 16:21:12 +02:00
babic_a 1ad7b8f382 Remove useless printout 2020-06-29 16:02:16 +02:00
babic_a a533e27f97 Make output of file comparison tool more info 2020-06-29 15:59:41 +02:00