From: Hector Santos on
Peter Olcott wrote:

> Since I only need to be able to process 100 transactions per
> second the speed of these overhead sort of things should not
> be too critical. I am guessing that the sum total of these
> overhead sort of things will only take about 10 ms per
> transaction most of this being drive head seek time.


No, 10 ms is a ONLY CONVENIENT # that can be calculated for 100
transactions per second. It was not based on any real results you
did. You want 100 tps, the work load must be 10ms. You want 1000
TPS, the work load is 100 ms - period:

TPS = 1000/ WORK LOAD

Period, period, period.

There is no way on earth you can:

receive a HTTP request
parse it
authorize it via a database
set some status points
delete it to some queue
wait for a respons <----> OCR process
wait up
set status points
do image processing
set status points
send response

send HTTP response

all in 10 ms - you are SICK if you think you can do this in 10 ms.
And thats just for 1 single request. Throw in 99 more per second, and
you are are completely whacked to now realize the build up our your
queuing where each subsequent request will be delayed by a factor of
of magical 10 ms number.

Until you realize this, nothing else you saw matters.

--
HLS
From: Peter Olcott on

"Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
news:%23psrlWX2KHA.5660(a)TK2MSFTNGP04.phx.gbl...
> Peter Olcott wrote:
>
>> Since I only need to be able to process 100 transactions
>> per second the speed of these overhead sort of things
>> should not be too critical. I am guessing that the sum
>> total of these overhead sort of things will only take
>> about 10 ms per transaction most of this being drive head
>> seek time.
>
>
> No, 10 ms is a ONLY CONVENIENT # that can be calculated
> for 100 transactions per second. It was not based on any
> real results you did. You want 100 tps, the work load
> must be 10ms. You want 1000 TPS, the work load is 100
> ms - period:
>
> TPS = 1000/ WORK LOAD
>
> Period, period, period.
>
> There is no way on earth you can:
>
> receive a HTTP request
> parse it
> authorize it via a database
> set some status points
> delete it to some queue
> wait for a respons <----> OCR process
> wait up
> set status points
> do image processing
> set status points
> send response
>
> send HTTP response
>
> all in 10 ms - you are SICK if you think you can do this
> in 10 ms. And thats just for 1 single request. Throw in
> 99 more per second, and you are are completely whacked to
> now realize the build up our your queuing where each
> subsequent request will be delayed by a factor of of
> magical 10 ms number.
>
> Until you realize this, nothing else you saw matters.
>
> --
> HLS

It looks like you are wrong
http://www.kegel.com/c10k.html#top


From: Hector Santos on
Peter Olcott wrote:

> "Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
> news:%23psrlWX2KHA.5660(a)TK2MSFTNGP04.phx.gbl...
>> Peter Olcott wrote:
>>
>>> Since I only need to be able to process 100 transactions
>>> per second the speed of these overhead sort of things
>>> should not be too critical. I am guessing that the sum
>>> total of these overhead sort of things will only take
>>> about 10 ms per transaction most of this being drive head
>>> seek time.
>>
>> No, 10 ms is a ONLY CONVENIENT # that can be calculated
>> for 100 transactions per second. It was not based on any
>> real results you did. You want 100 tps, the work load
>> must be 10ms. You want 1000 TPS, the work load is 100
>> ms - period:
>>
>> TPS = 1000/ WORK LOAD
>>
>> Period, period, period.
>>
>> There is no way on earth you can:
>>
>> receive a HTTP request
>> parse it
>> authorize it via a database
>> set some status points
>> delete it to some queue
>> wait for a respons <----> OCR process
>> wait up
>> set status points
>> do image processing
>> set status points
>> send response
>>
>> send HTTP response
>>
>> all in 10 ms - you are SICK if you think you can do this
>> in 10 ms. And thats just for 1 single request. Throw in
>> 99 more per second, and you are are completely whacked to
>> now realize the build up our your queuing where each
>> subsequent request will be delayed by a factor of of
>> magical 10 ms number.
>>
>> Until you realize this, nothing else you saw matters.
>>
>> --
>> HLS
>
> It looks like you are wrong
> http://www.kegel.com/c10k.html#top


You can't read and that DOCUMENT is a blab of illusions. Tell me how
*YOUR PRODJECT* can SQUEEZE more time that is not available to you?

100 TPS === 1000/10ms

If you go 1 ms above, you are HOSED.

Lets imagine that your great Linux will do every step in its 1 ms
clock tick and it is the only process in the OS. In fact, there is no
other OS process kernel logic or other anything else to interrupt you.

1ms receive a HTTP request
1ms log http header
1ms save posted data on disk
1ms read HTTP and authenticate via a database
1ms set some status point
1ms delegate it to some queue
1ms wait for a respons <----> OCR process wake up
1ms set status points
1ms read posted file
1ms do image processing
1ms set status points
1ms send response
1ms send HTTP response

Thats 13 ms CLOCK TICKS on Linux and I'm sure we missed some. I'm
sure the image processing itself is not going to be 1 ms. Add up your
OP CODES BUDDY!

Where in that document does it say you can do EVERYTHING you need in
10 ms?

Come on! You are SICK to think you can do all this at 10ms.

Throw in kernel code, other OS processes, hardware interrupts and lose
even more precious work time.

And you are ASSUMING a serialized transaction, meaning, you have 100
TPS, each coming every 10 ms and you have ZERO pressure. You are not
engineering for the high possibility of concurrency or a distribution
of your load, 30 comes in in the first 10 seconds. None for the next
30, and the next 70 in the final 20 seconds!

You are DREAMING - and LEARN HOW TO READ!

If you thought Ed's 1000 connect/second is your answer, well, where is
the WORK LOAD? All he indicated he can get 1000 CPS. He was probably
not doing any sort of work at all but how much a listening server can
accept connections with a immediate drop.

Add some REAL WORK and LEARN!

You are in complete DENIAL and DREAMING of the fact YOU won't be able
to do this WORK in 10 ms. No way in HELL you can do this in 10 ms and
you said it yourself that is your calculated BEST speed. Your WORST
was 100 ms. That means right there, you need 10 handlers:

1 handler can process 10 transactions per second.

Multiply by 10 handlers gives you your 100 TPS.

You can't squeeze PHANTOM TIME out of the computer!

--
HLS
From: Peter Olcott on

"Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
news:eHBz1FY2KHA.4332(a)TK2MSFTNGP02.phx.gbl...
> Peter Olcott wrote:
>
>> "Hector Santos" <sant9442(a)nospam.gmail.com> wrote in
>> message news:%23psrlWX2KHA.5660(a)TK2MSFTNGP04.phx.gbl...
>>> Peter Olcott wrote:
>>>
>>>> Since I only need to be able to process 100
>>>> transactions per second the speed of these overhead
>>>> sort of things should not be too critical. I am
>>>> guessing that the sum total of these overhead sort of
>>>> things will only take about 10 ms per transaction most
>>>> of this being drive head seek time.
>>>
>>> No, 10 ms is a ONLY CONVENIENT # that can be calculated
>>> for 100 transactions per second. It was not based on
>>> any real results you did. You want 100 tps, the work
>>> load must be 10ms. You want 1000 TPS, the work load is
>>> 100 ms - period:
>>>
>>> TPS = 1000/ WORK LOAD
>>>
>>> Period, period, period.
>>>
>>> There is no way on earth you can:
>>>
>>> receive a HTTP request
>>> parse it
>>> authorize it via a database
>>> set some status points
>>> delete it to some queue
>>> wait for a respons <----> OCR process
>>> wait up
>>> set status points
>>> do image processing
>>> set status points
>>> send response
>>>
>>> send HTTP response
>>>
>>> all in 10 ms - you are SICK if you think you can do this
>>> in 10 ms. And thats just for 1 single request. Throw in
>>> 99 more per second, and you are are completely whacked
>>> to now realize the build up our your queuing where each
>>> subsequent request will be delayed by a factor of of
>>> magical 10 ms number.
>>>
>>> Until you realize this, nothing else you saw matters.
>>>
>>> --
>>> HLS
>>
>> It looks like you are wrong
>> http://www.kegel.com/c10k.html#top
>
>
> You can't read and that DOCUMENT is a blab of illusions.
> Tell me how *YOUR PRODJECT* can SQUEEZE more time that is
> not available to you?
>
> 100 TPS === 1000/10ms
>
> If you go 1 ms above, you are HOSED.

Yet another respondent that fails to pay attention.

(1) The total processing time for the OCR is estimated at 10
ms.

>>>> I am guessing that the sum total of these overhead
>>>> sort of things will only take about 10 ms per
>>>> transaction

See the word [overhead]? You missed that

(2) The total processing time for the overhead associated
with this OCR processing is estimated at no more than an
additional 10 ms.

This provides at least 50 transactions per second and
possibly the whole 100 will remain because of hyperthreading
allowing aspects of a single transaction to be performance
concurrently.

>
> Lets imagine that your great Linux will do every step in
> its 1 ms clock tick and it is the only process in the OS.
> In fact, there is no other OS process kernel logic or
> other anything else to interrupt you.
>
> 1ms receive a HTTP request
> 1ms log http header
> 1ms save posted data on disk
> 1ms read HTTP and authenticate via a database
> 1ms set some status point
> 1ms delegate it to some queue
> 1ms wait for a respons <----> OCR process wake up
> 1ms set status points
> 1ms read posted file
> 1ms do image processing
> 1ms set status points
> 1ms send response
> 1ms send HTTP response
>
> Thats 13 ms CLOCK TICKS on Linux and I'm sure we missed
> some. I'm sure the image processing itself is not going
> to be 1 ms. Add up your OP CODES BUDDY!
>
> Where in that document does it say you can do EVERYTHING
> you need in 10 ms?
>
> Come on! You are SICK to think you can do all this at
> 10ms.
>
> Throw in kernel code, other OS processes, hardware
> interrupts and lose even more precious work time.
>
> And you are ASSUMING a serialized transaction, meaning,
> you have 100 TPS, each coming every 10 ms and you have
> ZERO pressure. You are not engineering for the high
> possibility of concurrency or a distribution of your load,
> 30 comes in in the first 10 seconds. None for the next 30,
> and the next 70 in the final 20 seconds!
>
> You are DREAMING - and LEARN HOW TO READ!
>
> If you thought Ed's 1000 connect/second is your answer,
> well, where is the WORK LOAD? All he indicated he can get
> 1000 CPS. He was probably not doing any sort of work at
> all but how much a listening server can accept connections
> with a immediate drop.
>
> Add some REAL WORK and LEARN!
>
> You are in complete DENIAL and DREAMING of the fact YOU
> won't be able to do this WORK in 10 ms. No way in HELL
> you can do this in 10 ms and you said it yourself that is
> your calculated BEST speed. Your WORST was 100 ms. That
> means right there, you need 10 handlers:
>
> 1 handler can process 10 transactions per second.
>
> Multiply by 10 handlers gives you your 100 TPS.
>
> You can't squeeze PHANTOM TIME out of the computer!
>
> --
> HLS


From: Peter Olcott on

"Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
news:eHBz1FY2KHA.4332(a)TK2MSFTNGP02.phx.gbl...
> Peter Olcott wrote:
>
>> "Hector Santos" <sant9442(a)nospam.gmail.com> wrote in
>> message news:%23psrlWX2KHA.5660(a)TK2MSFTNGP04.phx.gbl...
>>> Peter Olcott wrote:
>>>
>>>> Since I only need to be able to process 100
>>>> transactions per second the speed of these overhead
>>>> sort of things should not be too critical. I am
>>>> guessing that the sum total of these overhead sort of
>>>> things will only take about 10 ms per transaction most
>>>> of this being drive head seek time.
>>>
>>> No, 10 ms is a ONLY CONVENIENT # that can be calculated
>>> for 100 transactions per second. It was not based on
>>> any real results you did. You want 100 tps, the work
>>> load must be 10ms. You want 1000 TPS, the work load is
>>> 100 ms - period:
>>>
>>> TPS = 1000/ WORK LOAD
>>>
>>> Period, period, period.
>>>
>>> There is no way on earth you can:
>>>
>>> receive a HTTP request
>>> parse it
>>> authorize it via a database
>>> set some status points
>>> delete it to some queue
>>> wait for a respons <----> OCR process
>>> wait up
>>> set status points
>>> do image processing
>>> set status points
>>> send response
>>>
>>> send HTTP response
>>>
>>> all in 10 ms - you are SICK if you think you can do this
>>> in 10 ms. And thats just for 1 single request. Throw in
>>> 99 more per second, and you are are completely whacked
>>> to now realize the build up our your queuing where each
>>> subsequent request will be delayed by a factor of of
>>> magical 10 ms number.
>>>
>>> Until you realize this, nothing else you saw matters.
>>>
>>> --
>>> HLS
>>
>> It looks like you are wrong
>> http://www.kegel.com/c10k.html#top
>
>
> You can't read and that DOCUMENT is a blab of illusions.
> Tell me how *YOUR PRODJECT* can SQUEEZE more time that is
> not available to you?
>
> 100 TPS === 1000/10ms
>
> If you go 1 ms above, you are HOSED.
>
> Lets imagine that your great Linux will do every step in
> its 1 ms clock tick and it is the only process in the OS.
> In fact, there is no other OS process kernel logic or
> other anything else to interrupt you.
>
> 1ms receive a HTTP request
> 1ms log http header
> 1ms save posted data on disk
> 1ms read HTTP and authenticate via a database
> 1ms set some status point
> 1ms delegate it to some queue
> 1ms wait for a respons <----> OCR process wake up
> 1ms set status points
> 1ms read posted file
> 1ms do image processing
> 1ms set status points
> 1ms send response
> 1ms send HTTP response

I you wouldn't be so rude with me I would tone down my
criticism of you, but, the above sequence does show a
enormous degree of ignorance.

>
> Thats 13 ms CLOCK TICKS on Linux and I'm sure we missed
> some. I'm sure the image processing itself is not going
> to be 1 ms. Add up your OP CODES BUDDY!
>
> Where in that document does it say you can do EVERYTHING
> you need in 10 ms?
>
> Come on! You are SICK to think you can do all this at
> 10ms.
>
> Throw in kernel code, other OS processes, hardware
> interrupts and lose even more precious work time.
>
> And you are ASSUMING a serialized transaction, meaning,
> you have 100 TPS, each coming every 10 ms and you have
> ZERO pressure. You are not engineering for the high
> possibility of concurrency or a distribution of your load,
> 30 comes in in the first 10 seconds. None for the next 30,
> and the next 70 in the final 20 seconds!
>
> You are DREAMING - and LEARN HOW TO READ!
>
> If you thought Ed's 1000 connect/second is your answer,
> well, where is the WORK LOAD? All he indicated he can get
> 1000 CPS. He was probably not doing any sort of work at
> all but how much a listening server can accept connections
> with a immediate drop.
>
> Add some REAL WORK and LEARN!
>
> You are in complete DENIAL and DREAMING of the fact YOU
> won't be able to do this WORK in 10 ms. No way in HELL
> you can do this in 10 ms and you said it yourself that is
> your calculated BEST speed. Your WORST was 100 ms. That
> means right there, you need 10 handlers:
>
> 1 handler can process 10 transactions per second.
>
> Multiply by 10 handlers gives you your 100 TPS.
>
> You can't squeeze PHANTOM TIME out of the computer!
>
> --
> HLS