HDB++ Cassandra has been tested with Cassandra 2.2 only (at least at the ESRF).
I would encourage you to use Cassandra 2.2.9 version if you can for the moment…
We are currently using version 2.2.1 of the C++ driver for the moment, as described in libhdbpp-cassandra README.
Please be aware that there are some special OS settings to tune for Cassandra to work as expected, in particular, it is recommended to disable the SWAP and to change the resource limits on Linux, as described in this documentation page:
The latest versions of hdbpp-es and hdbpp-cm are now loading dynamically (using dlopen) the HDB++ library used for the database and schema you are using (MySQL/legacy HDB schema, MySQL HDB++ schema, Cassandra).
So if you want to use cassandra, you should add:
libname=libhdb++cassandra.so
in LibConfiguration property (HdbEventSubscriber/HdbEventConfigurationManager class or device property) and ensure the file libhdb++cassandra.so (or whatever the name of your HDB++ Backend library) is available in the LD_LIBRARY_PATH of HDBEventSubscriber and HDBConfigurationManager device servers.
we’re using Cassandra 3.X at MAXIV and we had the exact same issue. The problem is that the lowest version of the C++ cassandra lib needed for cassandra 3.0 (library version v2.2.2) is not quite compatible with HDB++, probably because nobody needed it. But luckily we could work around the issue with a small patch on line 148 in “src/LibHdb++Cassandra.cpp”:
For some reason this works, I suppose some behavior in the library has changed between version.
This also changes the behavior of the library a little, so that it no longer requires “local” quorum to be in the same datacenter. But we don’t think this makes a lot of sense anyway since in our case, both datacenters are in the same facility. This may depend on how you have set up you cluster, though.
This Cassandra Error: “All connections on all I/O threads are busy” are connected with incorrect name of Data Center. In our Cassandra the correct name is datacenter1 but libhdbpp-cassandra have default value “DC1”. To change this value you must add to property LibConfiguration:
local_dc=datacenter1
It would be nice to add this information (about lib_name too) to readme on github or some doc, because to solve this issue we must analyze the cod of the library