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: Ralph Lange <[email protected]>
To: Bruno Coudoin <[email protected]>
Cc: [email protected]
Date: Wed, 08 Jul 2009 16:24:21 +0200
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 Dalesio, Leo
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

Navigate by Date:
Prev: RE: compiled asyn-4.10 with ipac-2.10 Mark Rivers
Next: RE: Detecting data lost from a subscriber Dalesio, Leo
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 Bruno Coudoin
Next: RE: Detecting data lost from a subscriber Dalesio, Leo
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 ·