Re: Flushing large data immediately in pqcomm

Поиск
Список
Период
Сортировка
От Melih Mutlu
Тема Re: Flushing large data immediately in pqcomm
Дата
Msg-id CAGPVpCRc1vE4reowMynubn09Y2KKuK3OdVrPySGUkgJwYmse7g@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Flushing large data immediately in pqcomm  (Melih Mutlu <m.melihmutlu@gmail.com>)
Ответы Re: Flushing large data immediately in pqcomm  (Jelte Fennema-Nio <postgres@jeltef.nl>)
Список pgsql-hackers
Hi,

Melih Mutlu <m.melihmutlu@gmail.com>, 28 Mar 2024 Per, 22:44 tarihinde şunu yazdı:
>
> On Wed, Mar 27, 2024 at 14:39 David Rowley <dgrowleyml@gmail.com> wrote:
>>
>> On Fri, 22 Mar 2024 at 12:46, Melih Mutlu <m.melihmutlu@gmail.com> wrote:
>> can you confirm if the test was done in debug with casserts on?   If
>> so, it would be much better to have asserts off and have
>> -Dbuildtype=release.
>
>
> Yes, previous numbers were with --buildtype debug -Dcassert=true. I can share new numbers with release build and asserts off soon.

While testing the patch without --buildtype debug -Dcassert=true, I felt like there was still a slight regression. I changed internal_flush() to an inline function, results look better this way.


1- row size = 100 bytes, # of rows = 1000000
┌───────────┬────────────┬───────┬───────┬───────┬───────┬───────┐
│           │ 1400 bytes │ 2KB   │  4KB  │  8KB  │  16KB │  32KB │
├───────────┼────────────┼───────┼───────┼───────┼───────┼───────┤
│ HEAD      │  861       │ 765   │ 612   │  521  │  477  │  480  │
├───────────┼────────────┼───────┼───────┼───────┼───────┼───────┤
│ patch     │  869       │ 766   │ 612   │  519  │  482  │  467  │
├───────────┼────────────┼───────┼───────┼───────┼───────┼───────┤
│ no buffer │ 13978      13746 13909 13956 13920 13895 
└───────────┴────────────┴───────┴───────┴───────┴───────┴───────┘

2-  row size = half of the rows are 1KB and rest is 10KB , # of rows = 1000000
┌───────────┬────────────┬───────┬───────┬───────┬───────┬───────┐
│           │ 1400 bytes │ 2KB   │ 4KB   │ 8KB   │ 16KB  │ 32KB  │
├───────────┼────────────┼───────┼───────┼───────┼───────┼───────┤
│ HEAD      │ 30195      │ 26455 │ 17338 │ 14562 │ 12844 │ 11652
├───────────┼────────────┼───────┼───────┼───────┼───────┼───────┤
│ patch     │ 14744      │ 15830 │ 15697 │ 14273 │ 12794 │ 11652
├───────────┼────────────┼───────┼───────┼───────┼───────┼───────┤
│ no buffer │ 24054      │ 23992 │ 24162 │ 23951 │ 23901 │ 23925
└───────────┴────────────┴───────┴───────┴───────┴───────┴───────┘

3-  row size = half of the rows are 1KB and rest is 1MB , # of rows = 1000
┌───────────┬────────────┬──────┬──────┬──────┬──────┬──────┐
│           │ 1400 bytes │ 2KB  │ 4KB  │ 8KB  │ 16KB │ 32KB │
├───────────┼────────────┼──────┼──────┼──────┼──────┼──────┤
│ HEAD      │ 3546       │ 3029 │ 2373 │ 2032 │ 1873 │ 1806
├───────────┼────────────┼──────┼──────┼──────┼──────┼──────┤
│ patch     │ 1715       │ 17231724 │ 1731 │ 1729 │ 1709
├───────────┼────────────┼──────┼──────┼──────┼──────┼──────┤
│ no buffer │ 1749       │ 1748 │ 1742 │ 1744 │ 1757 │ 1744
└───────────┴────────────┴──────┴──────┴──────┴──────┴──────┘

4-  row size = all rows are 1MB , # of rows = 1000
┌───────────┬────────────┬──────┬──────┬──────┬──────┬──────┐
│           │ 1400 bytes │ 2KB  │ 4KB  │ 8KB  │ 16KB │ 32KB │
├───────────┼────────────┼──────┼──────┼──────┼──────┼──────┤
│ HEAD      │ 7089       │ 5987 │ 4697 │ 4048 │ 3737 │ 3523
├───────────┼────────────┼──────┼──────┼──────┼──────┼──────┤
│ patch     │ 3438       │ 3411 │ 3400 │ 3416 │ 3399 │ 3429
├───────────┼────────────┼──────┼──────┼──────┼──────┼──────┤
│ no buffer │ 3432       │ 3432 │ 3416 │ 3424 │ 3378 │ 3429
└───────────┴────────────┴──────┴──────┴──────┴──────┴──────┘

Thanks,
--
Melih Mutlu
Microsoft
Вложения

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

Предыдущее
От: Matthias van de Meent
Дата:
Сообщение: Re: Experiments with Postgres and SSL
Следующее
От: shveta malik
Дата:
Сообщение: [MASSMAIL]promotion related handling in pg_sync_replication_slots()