1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 <2013> 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: Save/Compare/Restore Application |
From: | "Shen, Guobao" <[email protected]> |
To: | Emmanuel Mayssat <[email protected]> |
Cc: | "[email protected]" <[email protected]> |
Date: | Wed, 6 Feb 2013 03:39:22 +0000 |
Hi Emmanuel,
Thanks for you comments. Let me explain some details before I answer your questions.
The MASAR service is implemented to take machine snapshot, save data for future usage,
and retrieve data from database. To simplify the server part, the restore and compare function
is not done in the server since each facility has different restoring procedure, and different algorithm to compare different data set.
Especially for restoring, in many case, user has to be very careful for example some pvs have to be set first, or only under certain condition, we can restore set of pvs. Those should be either embedded into IOC, or implemented as a standalone server.
Fr the client apps, my original goal was to provide a narrow API set, and allow users to manipulate the data in their favorite way. But we try to collect all requirements, and are flexible to expand the client API to make it more user friendly.
We are actively maintaining MASAR server, and improving it here at NSLS II project.
Please see my comments inline.
Thanks.
Although we put the MASAR server in production, but the UI is not unfortunately.
Our plan is to use CSS as our UI, therefore, my focusing for MASAR client is to provide an API.
The PyQt app was originally developed for my development and testing purpose. Since the
development in CSS part is delayed, I distributed the UI with the server for now.
The purpose of the comment tab is to give user a place to add some comments.
It is still a place holder for future improvement.
Very good point. I did not do very details benchmark myself, but read some articles that with careful tuning, it still has good performance when the file size blows up to a couple GB.
I do have some slides to show our experience we got during our beam commissioning.
Our database grow to 10MB roughly within 3 months. There were over 350 snapshots,
and one configuration has about 600 pvs.
I can send you my slides if you are interesting.
Saving data into few SQLite file might be one approach, also we are considering to merge our database
to IRMIS database, which is using MySQL currently.
Another alternative approach on my todo list is to save data in hdf5 file, and have an link/index in SQLite database. With this approach, SQLite should be sufficient.
Not decide which direction I should go. But this is on my list.
No. Definitely not. As I mentioned above, I was and am still hoping CSS can kick in here.
It has much better widgets to do all the jobs provide by my PyQt app. Honestly, I am not a GUI expert.
Anyway, let me explain some term I used in the PyQt app:
Event: each snapshot has real data from IOC, and associated with some head to explain what the event is for. It is like head + data.
An event is the head part, which indicates a snapshot event happened.
Snapshot: this is the real data part.
The reason I separate them is because we always want to look at the head first before getting the data.
Sorry for that. You are right. Here it does mean to export current displayed snapshot to a file.
As I mentioned above, CSS has this functionality and widget already.
For PyQt app, it is doable, but I did not get time to do it.
Currently, you can choose those pvs manually in the PyQt app.
If you want this to be done automatically, an entry in database has to be added.
But what to do if you change your mind once you flag that pvs permanently?
Or in some machine mode, operation mode for example, those pvs should never be restored,
but in other mode, physics study mode for example, physicists do want to restore them?
If some pvs should never be restored, will it better to archive those pvs with channel archiever?
Yes. Currently I provide a very low level API set. But a user friendly API would be nice to host those function on top of the low level API. Will add this to my todo list.
Yes. There are some ways to run it as a daemon. The first approach in my mind is to use procserv.
Yes. Here at NSLS II, we have been using it for our linac beam commissioning. We will continue to use it for our whole facility.
As far as I know, FRIB/MSU is planning to use it also.
Guobao
|