2. Cassandra PV Archiver 3.1
The Cassandra PV Archiver 3.1 adds a few new features and updates its
dependencies to their respective newest versions.
It is compatible with the Cassandra PV Archiver 3.0.x, meaning that it
can operate on data stored by the Cassandra PV Archiver 3.0.x and the
APIs supported by the Cassandra PV Archiver 3.0.x are fully supported.
The following features have been added in this release:
-
A web-service API for managing the server has been added.
This API is described in detail in
Appendix C, Administrative API.
-
The administrative user-interface now uses AJAX to load the list of
channels asynchronously.
This improves the performance when displaying a list containing a
large number of channels.
There also are some bugfixes and minor improvements:
-
For each module containing Java code, a source JAR is generated in
addition to the binary JAR.
-
A
NullPointerException
that could occur when
updating a channel while concurrently moving or deleting it has been
fixed.
-
The launcher script on Windows now works correctly when the path
where the Cassandra PV Archiver is installed contains spaces.
-
All library dependencies have been updated to their newest versions.
2.1. Cassandra PV Archiver 3.1.1
Version 3.1.1 is a bugfix release that fixes an issue with displaying
the channel state in the channel list.
Unfortunately, a regression was introduced shortly before the release
of version 3.0.0.
This regression caused the state of a channel not to be visible in the
list view (but it would show on the details page for a channel).
This problem is fixed in version 3.0.1 so that the state now is also
visible in the list view (like it was in older versions).
2.2. Cassandra PV Archiver 3.1.2
Version 3.1.2 is a bugfix release that includes an updated version of
the EPICS Jackie library and brings a few minor improvements:
-
EPICS Jackie has been updated to version 1.0.2.
This version includes a fix for a bug that could cause
connectivity issues for channels that are hosted by servers based
on older EPICS versions.
-
When an archive configuration command fails, the corresponding
exception is now logged in the logfile.
Expected exceptions (e.g. trying to add a channel that already
exists) are logged with the level INFO, while unexpected
exceptions (e.g. database errors) are logged with level ERROR.
Such errors were already reported to the user through the user
interface, but the logged exception (including the stack trace)
might give additional insights into the actual cause of the error.
-
Write timeouts when creating, updating, or deleting a “pending
channel operation” are now handled more gracefully.
These timeouts caused configuration commands to fail with a
message like “Cassandra timeout during write query at consistency
SERIAL…”.
While the
throttling options
should still be used to avoid overloading the server, the new
logic can help in handling short spikes by retrying an operation
that timed out after a short delay.
Configuring the throttling at a reasonable value is still needed
because this mechanism will not work in a situation where the
database is overloaded for a longer period of time (the operation
will simply fail after reaching the maximum number of retries).
-
The timeout for inter-node communication has been increased.
When running a large number (typically thousands) of configuration
commands that affected a remote server, the commands would fail
with a timeout error due to the HTTP communication timing out.
While this timeout would be reported to the user, the commands
would still continue running in the background.
The timeout for the HTTP communication has now been increased to
15 minutes, so that the HTTP connection should not time out, even
when a large number of commands is processed.
2.3. Cassandra PV Archiver 3.1.3
Version 3.1.3 is a bugfix release that includes an updated version of
the EPICS Jackie library and one minor improvement:
-
EPICS Jackie has been updated to version 1.0.3.
This version includes a fix for a bug that would cause connections
to channels providing large values (waveforms with many elements)
to fail.
As a side effect, this bug would also cause the connections for
all other channels hosted by the same server to be disrupted.
-
A few minor improvements have been added to the changes regarding
timeouts when creating, updating, or deleting a “pending
channel operation” that have been added in the last release.
This means that the code should now recover from timeouts in a few
more cases.