Fw: application slowing down

Rich Mooney tech at paynesparkman.com
Tue Aug 20 18:28:03 EDT 2002


Dar, many thanks for your detailed response.  I've addressed your various
points below.

> On Tuesday, August 20, 2002, at 11:19 AM, Rich Mooney wrote:
>
> > I'm desperate and throwing myself on the mercy of this mail list.
> > I have an
> >> irate customer who wants this problem solved quickly.  I have used
> > MetaCard
> >> to create software which we use to monitor and control our distributed
> >> lighting control systems.  It does these things very well.  I
> >> currently
> > have
> >> a job which requires that I poll the status of all my controls
> >> every 30
> >> seconds.  I do this so I can catch any changes of state and a close
> >> approximation of the time at which that change occurred.  I also
> >> use this
> >> function to catch any errors in operation.  The problem is that
> >> the time
> > it
> >> takes to poll all the controls becomes increasingly longer the
> >> longer I
> > run
> >> the software.  Initially it will take 33 seconds to poll all of my
> > controls
> >> if the polling interval is set to 30 seconds.  After three hours
> >> it will
> >> take 43 seconds.  By the next day it will take 2 minutes.

> Is your network TCP/IP?  Besides the processor usage you can
> monitor network usage and this may give a clue.  A packet sniffer
> might also.

No. My commands are going out a serial port to a device we make which
converts from serial to our protocol which is similar to Appletalk.  I do
have the capability to send my commands through TCP/IP to a module which
converts from TCP/IP to our protocol and I've considered trying this onsite
to try to work around the problem.

> Is each poll run by a batch of "send in <time>"?  If it takes 33
> seconds and a poll is started every 30 seconds, does that mean
> there is an overlap?  That can cause a few problems.

There is just one send in time command keeping the software cycling (I
realize that I forgot about this when I responded to Jaqueline).  It isn't
invoked until after the polling cycle has completed so it polls then waits
30 seconds then polls again etc..

> Second, unless you carry all of your poll state in args of the
> handler spec'd in send (or other wise provide for this problem),
> you might have one send cycle messing up data from the next.

I'm doing this to handle timers on these controls (if a light is manually
turned on, I use the send in time command to automatically turn it back off
after a user configured amount of time) but, this functionality is currently
turned off and I still have the problem.  I'm not doing this with the send
in time command I'm using to poll every 30 seconds.  I'll look into this.

> For example, you might query several controls at once.
> In the long term, you might want to put polling on leaf nodes only
> and distribute these over the system.  They can communicate with
> concentrators and central control in better ways than polling.

This isn't possible with our system.

> Polling has killed many large system designs.

Hopefully not this time.  Thanks for the input.


Rich Mooney
Payne Sparkman Mfg.
shop at paynesparkman.com




More information about the metacard mailing list