1) PERSISTENTRESTART= has nothing to do with the operation of the
server. It only tells the server to read the uservar dump (or not) on
startup and does some other things about restarting when memory hits a
limit, etc. 

To answer your question, T2K uses a terrible cooperative multi-threaded
system. The thread delay rate is somewhere around 1/3 of a second and it
slows down considerably as threads increase. I can't say I can provide a
mathematical equation, but the time to execute multiple threads is
someplace around the cumulative time it would take to execute them
individually plus 1 second per three active threads. In this regard,
however, all threads could be held up by the thread pool.

W5, just for some clarity, uses a true symmetrical multi thread engine
(rewritten). Its transfer time can be as short as 1ms and it does a
terribly efficient job at balancing multiple threads adding almost zero
overhead time. Threads in both versions are created as needed up to the
ThreadPoolSize= value. They are also cleaned up as needed.

2) I agree with Ben, Witango does see a performance hit with larger file
sizes. I've noticed that TAFs and TCFs approaching the 1 MB size really
get slow. However, a large TCF in a shared scope can be very beneficial
to performance. In this regard, all the logic is parsed and stored in
memory ready to be used by requests. And TCFs can target code pieces
(methods) more efficiently.

3) There is one truth about TCFs, in the end they do not execute any
faster than a TAF. This isn't to say that they don't allow a different
application writing style, or a reuse of code, but apples to apples,
TCFs can not be faster than TAFs. In fact it's proposed that TCFs must
be slower since they require a call from a TAF, and therefore have
external overhead by necessity.

4) Bottlenecks come in three categories: Databases create 99% of the
time taken to do anything with data. You should include in your
definition of a 'database' any array. This is because doing @ADDROWS,
@UNION, @FILTER, etc on large arrays can be daunting for the server, and
for the same reason that it can be time consuming to manipulate any
large un-indexed dataset. Second bottleneck is almost always poor
writing. Some developers love to run huge loops across their data,
others like to hit the database many, many times to create a page, the
list goes on. There's always more than one way to write code, and
usually a better way. I once wrote a recursive engine 3 times, using
three different techniques, each getting faster. Finally, CPU. It's
simple, but Witango increases one for one with CPU speed.

Robert Shubert
Tronics


-----Original Message-----
From: Jim Kass [mailto:[EMAIL PROTECTED] 
Sent: Thursday, October 30, 2003 2:04 PM
To: [EMAIL PROTECTED] Com
Subject: Witango-Talk: Re: Stability/Performance

Hey Folks,

I have a few questions about how Tango operates on a system level (We
are
currently using Tango2000/4 on Solaris w/ Oracle8)

I am not expecting an answer on-list per-se, but I am hoping that
someone
can direct me to the proper place to do further research.

1) Supposing that I have PERSISTENTRESTART=true in t4server.ini, if I
reload
a taf, and/or hit it from 10 differerent servers simultaneously (or
within
seconds of each other), does Tango wait for one 'request' to complete
before
processing the next, or does it fork processes or thread itself (which
one,
and what impact does this have)?  Could too many requests to the same
page
cause server delay?

2) Is it more efficient in Tango to have ONE file perform 20 different
queries depending on some kind of user variable (potentially this file
would
be accessed by multiple users simultaneously as listed above) or to have
20
files perform a specific query, and direct each user to such a file as
necessary.

3) What are the real benefits/tradeoffs of TCF files, and/or how can
they
make a TAF that may recieve many simultaneous requests and respond
different
depending on user variables more efficient?

4) What is the primary bottleneck of Tango... i.e., is it multiple
threads/child-processes, multiple database queries, multiple taf
requests,
or just the processing time per taf file?

Thanks,

Jim Kass
Web Developer

--
Forestweb: The Source for Industry Intelligence
Best Content -- Most Relevant -- Best Delivery
http://www.forestweb.com
(310) 553 - 0008


________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf

________________________________________________________________________
TO UNSUBSCRIBE: Go to http://www.witango.com/maillist.taf

Reply via email to