EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  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  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Detecting data lost from a subscriber
From: "Dalesio, Leo" <[email protected]>
To: "Ralph Lange" <[email protected]>, "Bruno Coudoin" <[email protected]>
Cc: [email protected]
Date: Wed, 8 Jul 2009 10:29:33 -0400
Just to be brutally clear.....

Array pointers get queued - NOT the data.
If you overwrite an array record before the data is sent to the client, the array is overwritten and a second monitor is posted - that is a second pointer to the same buffer is put on the queue. So the array will be sent twice. NOT two different arrays. THe most recent array will be sent twice. So, it is important to consume these at the rate that they are produced.

There are tools for measuring IOC performance. Keep the IOC loaded under 50%. Keep the link loaded under 15%. Make sure that the client can process the data fast enough.

Bob


-----Original Message-----
From: Ralph Lange [mailto:[email protected]]
Sent: Wed 7/8/2009 10:24 AM
To: Bruno Coudoin
Cc: Dalesio, Leo; [email protected]
Subject: Re: Detecting data lost from a subscriber
 
Hello Bruno,

For arrays, the server side queue does not contain the values, but a 
pointer to the array.

In the case of the server queue filling up, i.e. the server generating 
more updates than CA is able to push onto the network...
...atomic data will be kept as copies in the queue, i.e. data is lost 
only if the queue gets filled up completely, in which case the server 
overwrites the last queue element each time it gets a new update.
...array data will be kept in the application (e.g. IOC database), so 
that any new update happening before the queue is empty will lead to 
data loss.

Or - in other words: A half-full server queue is a healthy situation for 
atomic data (no updates lost), and an unhealthy situation for array data 
(CA will always send the current array data).

Usually the server side queue is a good thing to handle short changes in 
network and/or client load. For arrays, as soon as you need the queue, 
you lose data.

Background: Arrays can be large. If CA would copy arrays onto the queue, 
the IOC could easily run out of memory due to a client or network 
problem, which would make the IOC far too vulnerable.

Hope this answers your question...
Ralph


On 08.07.2009 15:58 Bruno Coudoin wrote:
> Le mercredi 08 juillet 2009 à 11:08 +0200, Ralph Lange a écrit :
>   
>
>> Careful: Array data is not put into the server side queue (only 
>> references to the array), so using an array to add the sequence number 
>> would at the same time enable you to detect missing updates and create a 
>> lot of missing updates. (Probably not what you want.)
>>     
>
> I don't understand this point. In what would it make things worse, could
> you please explain me.
>   





Replies:
Re: Detecting data lost from a subscriber Andrew Johnson
References:
Detecting data lost from a subscriber Bruno Coudoin
RE: Detecting data lost from a subscriber Dalesio, Leo
Re: Detecting data lost from a subscriber Ralph Lange
Re: Detecting data lost from a subscriber Bruno Coudoin
Re: Detecting data lost from a subscriber Ralph Lange

Navigate by Date:
Prev: Re: Detecting data lost from a subscriber Ralph Lange
Next: Re: Detecting data lost from a subscriber Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Detecting data lost from a subscriber Ralph Lange
Next: Re: Detecting data lost from a subscriber Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  <20092010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 31 Jan 2014 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·