Hi:
> One could think of using MongoDB as a backend for an EPICS archiver (which records time series of the configured PVs) but there are better backends to choose for such time-series data.
I briefly looked into that many years ago.
MongoDB allows storing arbitrary data. Each "value" can be a different JSON-type structure. For archived data, I didn't see a huge benefit because we do have structured data. Each sample is basically a time stamp and a value, then millions of those. OK, different
PVs might have slightly different data types, but I don't need to store a sequence of random structures. That was before PV Access. With PV Access, you might argue that you do want to store arbitrary structures, but then you also need to decode these with
custom clients to make sense of the data. So I'd say the main use case for an archive is still a large number of timestamp + value.
When I then compared MongoDB storing many samples with timestamp, value(, alarm info) against MySQL using a plain table of timestamp, value, alarm info, performance was roughly the same, so I stopped it there.
Cheers,
Kay
|