HDB++ installation

Hello,
I am trying to install HDB++ in some way at Windows, but I cannot find any intruction how to do it.
I have also problem with getting information on which operating systems HDB++ is working.
The target is the Tango Server will be on the Ubuntu 17.04.
In the last similar topic, I learned that the HDB++ is only compatible with tango9, which is only avalaible on the Ubuntu 17.04..
So that's also quite news for me.
Is there even possibility of running it on Windows?
The question is where can I find instruction how to install HDB++?
Thank you in advance for the reply.
Tymoteusz Pinior
Prevac
I find some instruction here:

http://www.tango-controls.org/community/project-docs/hdbplusplus/
http://www.esrf.eu/computing/cs/tango/tango_doc/tools_doc/hdb++-configurator/index.html

I read a bit of HDB++'s source code, i think it can not make from source on Windows
I have already installed Tango9.2.5 at Ubuntu 17.04.
But I am still having problems with HDB++ instalation, any ideas?
Tymoteusz Pinior
Prevac
Hi Tymoteusz,

What version of HDB++ would you like to use, the one storing data into MySQL or the one storing data into Apache Cassandra?
I think HDB++ EventSubscriber and HDB++ ConfigurationManager device servers and HDB++ C++ libraries have never been built on Windows.
In theory, it should be possible to adapt the code to be able to run these device servers on Windows. We might move to CMake in the future and this could help to compile on Windows.
Please feel free to propose some Pull Requests for Windows support if you can contribute. This could be useful for the community…
For the moment, we don't have the resources to do this work for Windows.

We are currently in the process of writing better documentation related to HDB++.
We are conscious the current documentation is confusing at the moment and is not up to date.
So if you can wait for a few weeks, you will hopefully be able to get a fresh and well documented recent HDB++ installation.

In the mean time, if you want to start to play, you can try to follow the Quick HDB++ installation guide posted recently by Lorenzo:
http://www.tango-controls.org/community/forum/c/general/other/tango-92-fresh-install-on-ubuntu-1604/?page=2#post-2577
But please be aware that this guide is not up to date and is not describing how to install the HDB++ Configuration GUI or HDB++ Viewer.
The tricky part will be to find compatible versions of the tools (compatible with HDB++ DB schema and HDB++ device servers).

This is why I would definitely recommend to wait for a few weeks to get a new release which is well documented and probably easier to install.

Sorry for the inconvenience,
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 Reynald,

Regarding to Cassandra and MySQL…
I'm not entirely sure, but the values that we will store will be most likely float with scientific notation, so can you tell me which of them is better for such values?
If it comes to the operating systems, it is just easier for me to test it on Windows, but on the end-station there will be Ubuntu Server and Windows Client.
But the place where database will store data, for me it does not matter.
I can test it on ubuntu and it's not a problem for me. It's even better.

Regarding to the documentation, unfortunatelly we do not have few weeks for this…
My plan is to test it in next 1-3 weeks, so few weeks, unfortunately, it is too late for me..

But the main question is:
Whether HDB++ is working as it should?
What is the stage of this device?
It is at the level of testing, development or release?

Sorry for my "frankness",
Tymoteusz.
Tymoteusz Pinior
Prevac
tpinior
Regarding to Cassandra and MySQL…
I'm not entirely sure, but the values that we will store will be most likely float with scientific notation, so can you tell me which of them is better for such values?

Both versions are good for storing float values… It all depends on the amount of data you are willing to store and if you have high availability constraints…
Cassandra is a distributed database so it provides replication and high availability, as well as scalability (if you need more disk space and performances, you can add new nodes). In case of a Cassandra node failure, the system will still continue to store your data on other nodes.
Maintaining a Cassandra system requires some knowledge about this database because there are some maintenance operations to perform regularly (repair) to maintain data consistency between the nodes. This can be automated but needs to be done.
If you don't need to store a huge amount of data, I think you should go for the MySQL version.

tpinior
If it comes to the operating systems, it is just easier for me to test it on Windows, but on the end-station there will be Ubuntu Server and Windows Client.
But the place where database will store data, for me it does not matter.
I can test it on ubuntu and it's not a problem for me. It's even better.

If you can run the HDB EventSubscriber and HDB ConfigurationManager device servers on Ubuntu, then it is fine…

tpinior
Regarding to the documentation, unfortunatelly we do not have few weeks for this…
My plan is to test it in next 1-3 weeks, so few weeks, unfortunately, it is too late for me..

I understand.

tpinior
But the main question is:
Whether HDB++ is working as it should?
What is the stage of this device?
It is at the level of testing, development or release?

HDB++ is already used in several institutes. It is not yet perfect (especially in terms of marketing communication and install documentation), but I think it is doing its job.
There are still some edge cases where it does not work as expected because there are still some cases where Tango events are not working as expected. For instance, if you are using a TANGO_HOST with a network alias. There are some cases where it does not work, depending on your /etc/hosts file configuration. There are several topics on the forum about that with tips on how to solve this issue.
You have to ensure the Tango events are working well on your system in order to use HDB++ because it is fully based on Tango archive events. You can use the Event Manager from astor View menu to test that for instance.
We are using it at the ESRF with Cassandra. At Elettra, they are using it with MySQL. Some other institutes are using HDB++ too. Maybe they can comment here.
It is still under active development and is still being improved. The source code repositories have been moved recently from Sourceforge to GitHub.
Some work is still needed to simplify/document the installation procedure.
New features are being added (TTL support. The TTL will define how long the data should be kept in the database. This feature will allow to use HDB++ as a temporary database too).

tpinior
Sorry for my "frankness",
Tymoteusz.

No worries smile
In the mean time, please be aware that an old version of HDB++/MySQL is already installed on the TangoBox virtual machine. So you can already play a bit with this version if you want to.
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 Reynald,
What is the status of the HDB++ documentation right now?
Kind regards,
Tymoteusz.
Tymoteusz Pinior
Prevac
Hi Tymoteusz,

This is still work in progress. smile
We are still working on a new release and on the documentation.
Just to be clear, what you would need is a procedure to install HDB++ libraries and HDB++ device servers on Ubuntu 17.04?
We will prepare a procedure for you to detail the installation process and we will post the result (or a link to the result) here.
You should be able to use the tools (HDB++Viewer and HDB++Configurator) which are written in Java from Windows or Linux.

Sorry for the inconvenience.
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 Reynald,
The final decision is that we want to use this on the Windows.
We also think about supporting this project under Windows.
Do you have any experience with compiling this under Windows?
Is there somewhere source code for this?
Kind Regards,
Tymoteusz
Tymoteusz Pinior
Prevac
Hi Tymoteusz,

I think nobody tried to compile HDB++ device servers and C++ libraries on Windows yet.
The source code is available on GitHub on the following repositories:

  • hdbpp-cm: the HDB++ Configuration Manager device server
  • hdbpp-es: the HDB++ Event Subscriber device server
  • hdbpp-cm-es: Device server able to export HDB++ Event Subscriber and Configuration Manager devices in the same device server
  • libhdbpp: the HDB++ insertion (abstract) library
  • libhdbpp-mysql: the HDB++ insertion library for MySQL backend
  • libhdbpp-mysql-legacy: the HDB++ insertion library for MySQL backend using the old Tango HDB database schema
  • libhdbpp-cassandra: the HDB++ insertion library for Cassandra backend
  • hdbpp-configurator: the HDB++ Configuration GUI (in Java)
  • hdbpp-viewer: the HDB++ Viewer GUI (in Java)
  • libhdbpp-java: HDB++ Java extraction library
  • eGiga2m: Web graphic data viewer able to show HDB++ data

Your contribution is welcome of course.
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.
 
Register or login to create to post a reply.