Problem with configuration Cassandra with the HDBpp
|
|
---|---|
Hello. I have got the problem with configuration Cassandra DB with the HDBpp archiving system. Cassandra works. Scripts had made proper structure etc. But when I tried add atributes by HdbConfigurator I got: Cassandra Error: "All connections on all I/O threads are buasy". We use Cassandra in version 3.0 with cpp-driver in version 2.5. Thanks for all help. |
|
|
---|---|
Hi, 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… Cheers, Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new. |
|
|
---|---|
Thanks Reynald for your answer but I have got next question. What version of cpp-drivers do you use in ESRF? |
|
|
---|---|
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: http://docs.datastax.com/en/archived/cassandra/2.2/cassandra/install/installRecommendSettings.html Kind regards, Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new. |
|
|
---|---|
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: 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.Hoping this helps, Reynald
Rosenberg's Law: Software is easy to make, except when you want it to do something new.
Corollary: The only software that's worth making is software that does something new. |
|
|
---|---|
Hi all, 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": ``` cass_bool_t allow_remote_dcs_for_local_cl = cass_false; ``` Should be changed to ``` cass_bool_t allow_remote_dcs_for_local_cl = cass_true; ``` 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. Hope this helps! |
|
|
---|---|
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: 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
|