Hi,

One other thing.

If the time spent in your calls are mostly waiting for external
web-services to complete, you should be able to add threads without adding
more CPU-power. Each thread take some memory though, and requires a
database connection.

        Best Regards - Misi, RRR AB, http://rrr.se

> Rick,
> I don't believe that Misi is saying that the ARServer doesn't treat them
> differently, it does, I think what he's saying is that there is no
> fundamental difference between the performance of the thread itself...a
> thread is a thread.  Looking at my ARLogAnalyzer output I can tell what
> kind
> of thread it is by what calls go to it...in my testing of this subject my
> fast threads have the following calls
>
> XMLCE  = ARXMLCreateEntry
> GLS    = ARGetListSchema
> GEI    = ARGetEncryptInfo
> VER    = ARVerifyUser
> GSI    = ARGetServerInfo
> GLG    = ARGetListGroup
>
> My List threads have the following
>
> GLEWF  = ARGetListEntryWithFields
> EXP    = ARExport
> GLE    = ARGetListEntry
> EXECAL = ARExecuteProcessForActiveLink
> EXPQRY = ARExpandQueryMenu
>
> All that being said, a create through web services uses the XMLCE call
> which
> goes through fast.  Regardless, for concurrent processing I need a thread
> for each concurrent effort.  So the question still stands....have you ever
> come across a need for a high volume of concurrent efforts and what's the
> highest Fast/List settings you have ever felt the need to use?
>
>
>   _____
>
> From: Action Request System discussion list(ARSList)
> [mailto:arsl...@arslist.org] On Behalf Of Rick Cook
> Sent: Monday, January 18, 2010 6:42 AM
> To: arslist@ARSLIST.ORG
> Subject: Re: Fast/List Concurrent settings?
>
>
> ** Misi, I know that you know AR System internals very well, and so
> normally, I would never question you.  So consider this response with that
> in mind, as well as the disclaimer that this is the last thing I was
> taught
> on the topic - if the architecture of the internals has changed, I must
> have
> missed that memo.
>
> The purpose behind Fast and List threads was to separate single-API
> functions (Submits, mostly) from multiple-API functions (pretty much
> everything else).  The thought, from what I can infer, was to have an
> express line of sorts so that quick DB transactions wouldn't have to wait
> in
> line behind long search/retrieve tasks.  If, as you infer, Fast/List
> threads
> no longer have any relevance in terms of different function, why do they
> still exist as separately tunable parameters?
>
> Rick
>
>
> On Mon, Jan 18, 2010 at 5:06 AM, Misi Mladoniczky <m...@rrr.se> wrote:
>
>
> Hi,
>
> I do not think that updates from Web Services use the list threads. It
> would be the same thing as the Save-button in a Modify-form.
>
> It performs a ARSetEntry()-call through a Fast-thread. It is performed by
> the Mid-Tier-server just as any other client.
>
> The Fast- and List-threads are just a blunt way to group and route various
> calls.
>
> If we exclude the admin-tool/developer-studio calls, I think that any call
> with "list" in it's name access the List-servers and any call without
> "list" in its name go to a Fast-server.
>
> There is no technical difference between Fast and List threads. They
> perform in the same way.
>
> As a Fast-call can be very slow, and List-calls very quick, I would argue
> that differentiating between these types of calls are not that useful.
>
> The calls to the fast an list threads typically comes in pairs anyway:
>
> An ACTL-Set-Fields performs two calls. One ARGetListEntry() to the
> List-thread, and one ARGetEntry() to the Fast-thread. An ACTL-Push-Fields
> performs a ARGetListEntry() and an ARCreateEntry()/ARSetEntry() call.
>
> In the old days, I think that the List-threads and Fast-threads had
> another distinction. When a user logged in, he was "assigned" to a
> Fast-thread but accessed the List-thread in a more random way. The idea
> was to minimize the calls to the transaction-daemon and portmapper to find
> the tcp-port of the fast-threads each time they were called. Now
> everything goes to a single tcp-port.
>
> When we got the FLTR-Push-Fields calls, the ARCreateEntry() and
> ARSetEntry() calls stopped being very fast. WebServices adds even more to
> this problem.
>
> In most cases, it is possible to rewrite workflow to be much faster. In
> some cases, especially with the bigger apps such as ITSM, it is more
> difficult. And you do not want to customize ITSM anyway...
>
>        Best Regards - Misi, RRR AB, http://www.rrr.se
>
> Products from RRR Scandinavia:
> * RRR|License - Not enough Remedy licenses? Save money by optimizing.
> * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy logs.
> Find these products, and many free tools and utilities, at http://rrr.se.
>
>
>> As an aside, technically your submits are going through the Fast
>> (single-API) threads, while your updates from Web Services would use the
>> List (multiple-API) threads.  That's if your submit is allowed to finish
>> and
>> then the ensuing record is updated by the WS.  If the WS return values
>> are
>> part of the Submit process, then you have long transactions processing
>> through and clogging up your Fast threads, which is not what they are
>> intended to handle.  That will be the case regardless of the source of
>> the
>> external data retrieval process or source, though the time they take may
>> be
>> affected by using DB vs. WS.
>>
>> Rick
>>
>> On Fri, Jan 15, 2010 at 3:35 PM, Jason Miller
>> <jason.mil...@gmail.com>wrote:
>>
>>> ** Just to make sure that I understand, the requesting system is
>>> waiting
>>> 40
>>> seconds for the quote to be returned?  Does the quote return need to
>>> done as
>>> soon as possible or can there be a minute or two before the return?
>>>
>>> Maybe have them only submit the record and not trigger the processing
>>> workflow.  Then have an escalation that will process the new record(s)
>>> and
>>> then make a call to a web service on requester's end that is designed
>>> to
>>> accept the return from a previous transaction.  It would take some
>>> redesigning on both sides but would alleviate the waiting and hanging
>>> on
>>> to
>>> threads/connections.
>>>
>>> The other thing might be to offload some of the Remedy processing (if
>>> there
>>> is a lot) to more efficient scripts and/or direct database actions.
>>> Web
>>> services can be a wonderful thing but not always the fastest.
>>>
>>> Jason
>>>
>>>
>>> On Fri, Jan 15, 2010 at 3:02 PM, LJ Longwing
>>> <lj.longw...@gmail.com>wrote:
>>>
>>>> **
>>>> LOL.....consider this Rick....Consider a 'submit' to be an interface
>>>> that
>>>> allows ALL attributes needed to completely configure a change with a
>>>> single
>>>> button press.  This may be a bad example...if it is I'm sorry...I
>>>> really
>>>> don't do ITSM....but the submit in question on our system actually
>>>> averages
>>>> about 40 seconds.  Makes no less than 4 calls to other external
>>>> systems
>>>> via
>>>> web services and performs more calculations than I care to think
>>>> about.
>>>> That being what it is....what would you do in that situation?
>>>>
>>>>  ------------------------------
>>>> *From:* Action Request System discussion list(ARSList) [mailto:
>>>> arsl...@arslist.org] *On Behalf Of *Rick Cook
>>>> *Sent:* Friday, January 15, 2010 3:55 PM
>>>>
>>>> *To:* arslist@ARSLIST.ORG
>>>> *Subject:* Re: Fast/List Concurrent settings?
>>>>
>>>> ** If your submits are taking 10 seconds each, you have a significant
>>>> problem, my friend!
>>>>
>>>> Rick
>>>>
>>>> On Fri, Jan 15, 2010 at 2:52 PM, LJ Longwing
>>>> <lj.longw...@gmail.com>wrote:
>>>>
>>>>> **
>>>>> I completely agree with everything you said....but as you mentioned,
>>>>> if
>>>>> you have 60 submits and have 10 threads...you are only handling 10 of
>>>>> those
>>>>> 60 concurrently....so if each transaction takes an average of
>>>>> say...10
>>>>> seconds...the first 10 will complete in 10, the next 10 in 20, and so
>>>>> on
>>>>> with the final set of 10 taking a full 60 seconds from time to
>>>>> complete to
>>>>> process.  If your external application has a timeout of say....45
>>>>> seconds
>>>>> then you are only going to be able to handle 40 of the 60 submitted
>>>>> concurrently and as such would have a 1/3 failure rate....in that
>>>>> situation
>>>>> would you then set your threads to say....15 to make it so that you
>>>>> could
>>>>> handle 60 in 40 seconds or would you take it to 60 to be able to
>>>>> handle 60
>>>>> in 10 seconds?
>>>>>
>>>>>  ------------------------------
>>>>> *From:* Action Request System discussion list(ARSList) [mailto:
>>>>> arsl...@arslist.org] *On Behalf Of *Rick Cook
>>>>> *Sent:* Friday, January 15, 2010 3:39 PM
>>>>> *To:* arslist@ARSLIST.ORG
>>>>> *Subject:* Re: Fast/List Concurrent settings?
>>>>>
>>>>> ** I would think that one of the larger software-related issues that
>>>>> would affect the number of concurrent Inserts would be the Index
>>>>> structure.
>>>>> I am sure you know this, but for the benefit of those who don't,
>>>>> indexes are
>>>>> meant to help us search on a form more easily.  However, above a
>>>>> certain
>>>>> number (around 8 for a Remedy form), that cause performance
>>>>> degradation when
>>>>> creating a new record, because each of the indexes has to be updated
>>>>> as part
>>>>> of the creation process.  If a system is seeing slow creates, that's
>>>>> the
>>>>> first thing I check.
>>>>>
>>>>>
>>>>> One other thing to think about is that since each thread can cache 5
>>>>> processes (that's the last number I heard, anyway) in addition to the
>>>>> one
>>>>> currently being handled, you could, with 10 Fast (Single-API)
>>>>> threads,
>>>>> handle 60 concurrent create processes without a transaction loss.
>>>>> There
>>>>> would probably be a bit of a delay for those farther back in the
>>>>> queue, but
>>>>> if you had a reasonably robust system, most users wouldn't notice it
>>>>> much.
>>>>> I seriously doubt all but a very few systems have to handle anything
>>>>> resembling that kind of concurrent load, with the exception of those
>>>>> who
>>>>> have a large number of system (i.e. NMS) generated records.
>>>>>
>>>>> Also look at the Entry ID Block size when doing this test.  If - AND
>>>>> ONLY
>>>>> IF - you are regularly having large numbers of concurrent inserts,
>>>>> you
>>>>> can
>>>>> set the Entry ID Block size to something like 10 to cut down the
>>>>> number of
>>>>> requests to the DB for Entry IDs.  That is alleged to help with
>>>>> create
>>>>> times, though I have not seen that be the case in practical use.
>>>>>
>>>>> Rick
>>>>>
>>>>> On Fri, Jan 15, 2010 at 2:27 PM, LJ Longwing
>>>>> <lj.longw...@gmail.com>wrote:
>>>>>
>>>>>> **
>>>>>> Here is an interesting question for you thread experts out there.
>>>>>>
>>>>>> How many concurrent 'creates' does your system support?  Creates
>>>>>> being a
>>>>>> generic term for any given process that your system supports.  The
>>>>>> system
>>>>>> that I support is a home grown quote/order management system and
>>>>>> last
>>>>>> year
>>>>>> we stood up a web service interface for people to be able to
>>>>>> generate
>>>>>> quotes
>>>>>> from their systems and get pricing back.  The initial interface was
>>>>>> setup to
>>>>>> handle 3 concurrent creates...but as soon as it was a success we
>>>>>> started
>>>>>> getting slammed with several hundred at a time and choking our
>>>>>> system.
>>>>>> Through rigorous testing and tweaking over the last couple of weeks
>>>>>> I
>>>>>> have
>>>>>> been able to get roughly 60 concurrent going through the system with
>>>>>> reasonable performance....so at this point I have my Fast set to
>>>>>> 30/100
>>>>>> min/max....confirmed that I'm not maxing anything specific
>>>>>> out....but
>>>>>> I
>>>>>> personally have never run above 20ish threads as a high because most
>>>>>> transactions are short and a fast thread count of 20 will handle
>>>>>> hundreds of
>>>>>> users in 'normal' operation.....so I was just wondering how many
>>>>>> requests
>>>>>> you guys have your system to handle concurrently....and just for
>>>>>> verification...I'm talking about 'all of them hit the button within
>>>>>> a
>>>>>> second
>>>>>> of each other' type of concurrent...not 'I hove 400 people logged on
>>>>>> concurrently'
>>>>>> _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the
>>>>>> Answers
>>>>>> Are"_
>>>>>
>>>>>
>>>>> _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the
>>>>> Answers
>>>>> Are"_
>>>>>  _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the
>>>>> Answers
>>>>> Are"_
>>>>>
>>>>
>>>> _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the
>>>> Answers
>>>> Are"_
>>>> _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the
>>>> Answers
>>>> Are"_
>>>>
>>>
>>> _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
>>> Are"_
>>>
>>
>
>>
> ____________________________________________________________________________
> ___
>> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
>
>> Platinum Sponsor:rmisoluti...@verizon.net
> <mailto:sponsor%3armisoluti...@verizon.net>  ARSlist: "Where the Answers
> Are"
>>
>
>> --
>> This message was scanned by ESVA and is believed to be clean.
>>
>>
>
> ____________________________________________________________________________
> ___
> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
>
> Platinum Sponsor:rmisoluti...@verizon.net
> <mailto:sponsor%3armisoluti...@verizon.net>  ARSlist: "Where the Answers
> Are"
>
>
>
> _Platinum Sponsor: rmisoluti...@verizon.net ARSlist: "Where the Answers
> Are"_
>
> _______________________________________________________________________________
> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
> Platinum Sponsor:rmisoluti...@verizon.net ARSlist: "Where the Answers Are"
>
> --
> This message was scanned by ESVA and is believed to be clean.
>
>

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at www.arslist.org
Platinum Sponsor:rmisoluti...@verizon.net ARSlist: "Where the Answers Are"

Reply via email to