Hi:
> 1) There is a waveform array contains 1560 double type elements, I want to store them in mysql in real-time by using ArchiveEngine. To do so, I have imported the mysql_schema.sql in the attatchment and then start the ArchiveEngine. However, when performing
"select * from sample" command in mysql, only one data are in "float_val" column. It seems mysql cannot store array directly. Could any one tell me how to store array in MySQL by using RDB Channel Archive.
The 'sample' table is for scalar data. For array samples, it only holds the first array element.
The complete array is stored as a blob in the 'array_val' table.
See also
https://github.com/ControlSystemStudio/cs-studio/blob/master/applications/archive/archive-plugins/org.csstudio.archive.rdb/dbd/array_encoding.txt
Having said that, the archive engine is more of a long-term monitoring tool than a short-term data acquisition tool.
To capture waveforms, you may want to look into the area detector toolset.
> 2) For testing the performance of ArchiveEngine with diffenet parameters (write_period, batch_size, buffer_reserve) versus write speed (samples per second), could any one tell me how to record the writing speed of ArchiveEngine with above parameters.
The archive engine's web interface shows
Last Written - time when the engine last wrote, typically every 30 seconds
Write Count - How many samples it last wrote
Write Duration - How long that took in seconds
If you divide Write Count by Write Duration, you get the basic performance of your RDB setup, i.e. how many values per second you can write.
-Kay