Re: TCP Overhead on Local Loopback

Поиск
Список
Период
Сортировка
От Ofer Israeli
Тема Re: TCP Overhead on Local Loopback
Дата
Msg-id 217DDBC2BB1E394CA9E7446337CBDEF20102DEDB4DCF@il-ex01.ad.checkpoint.com
обсуждение исходный текст
Ответ на Re: TCP Overhead on Local Loopback  (Samuel Gendler <sgendler@ideasculptor.com>)
Ответы Re: TCP Overhead on Local Loopback
Список pgsql-performance
On Sun, Apr 2, 2012 at 11:25 AM, Samuel Gendler < sgendler@ideasculptor.com >  wrote:
> But suggesting moving away from TCP/IP with no actual evidence that it is network overhead that is the problem is a
littlepremature, regardless.   

Agreed, that's why I'd like to understand what tools / methodologies are available in order to test whether TCP is the
issue.

> What, exactly, are the set of operations that each update is performing and is there any way to batch them into fewer
statements 
> within the transaction.  For example, could you insert all 60,000 records into a temporary table via COPY, then run
justa couple of queries to do  
> bulk inserts and bulk updates into the destination tble via joins to the temp table?

I don't see how a COPY can be faster here as I would need to both run the COPY into the temp table and then UPDATE all
thecolumns in the real table. 
Are you referring to saving the time where all the UPDATEs would be performed via a stored procedure strictly in the db
domainwithout networking back and forth? 

> 60,000 rows updated with 25 columns, 1 indexed in 3ms is not exactly slow.  That's a not insignificant quantity of
datawhich must be transferred from client to server,  
> parsed, and then written to disk, regardless of TCP overhead.  That is happening via at least 60,000 individual SQL
statementsthat are not even prepared statements.  I don't  
> imagine that TCP overhead is really the problem here.  Regardless, you can reduce both statement parse time and TCP
overheadby doing bulk inserts  
> (COPY) followed by multi-row selects/updates into the final table.  I don't know how much below 3ms you are going to
get,but that's going to be as fast  
> as you can possibly do it on your hardware, assuming the rest of your configuration is as efficient as possible.

The 3ms is per each event processing, not the whole 60K batch.  Each event processing includes:
5 SELECTs
1 DELETE
2 UPDATEs
where each query performed involves TCP connections, that is, the queries are not grouped in a stored procedure or
such.

For all these queries does 3ms sound like a reasonable time?  If so, do you have an estimation of how long the network
portionwould be here? 

Thanks,
Ofer


В списке pgsql-performance по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: ...WHERE TRUE" condition in union results in bad query pla
Следующее
От: Scott Marlowe
Дата:
Сообщение: Re: H800 + md1200 Performance problem