On Wed, 22 Jan 2025 at 16:49, Japin Li <japi...@hotmail.com> wrote:
> On Wed, 22 Jan 2025 at 11:22, Yura Sokolov <y.soko...@postgrespro.ru> wrote:
>> 22.01.2025 10:54, Japin Li пишет:
>>> On Wed, 22 Jan 2025 at 10:25, Yura Sokolov <y.soko...@postgrespro.ru> wrote:
>>>> 22.01.2025 09:09, Japin Li пишет:
>>>>> Hi, Yura Sokolov
>>>>> Thanks for updating the patch.
>>>>> I test the v2 patch using BenchmarkSQL 1000 warehouse, and here is the 
>>>>> tpmC
>>>>> result:
>>>>>    case               | min        | avg        | max
>>>>> --------------------+------------+------------+--------------
>>>>> master (patched)    | 988,461.89 | 994,916.50 | 1,000,362.40
>>>>> master (44b61efb79) | 857,028.07 | 863,174.59 | 873,856.92
>>>>> The patch provides a significant improvement.
>>>>> I just looked through the patch, here are some comments.
>>>>> 1.
>>>>> The v2 patch can't be applied cleanly.
>>>>> Applying: Lock-free XLog Reservation using lock-free hash-table
>>>>> .git/rebase-apply/patch:33: trailing whitespace.
>>>>> .git/rebase-apply/patch:37: space before tab in indent.
>>>>>           {
>>>>> .git/rebase-apply/patch:38: space before tab in indent.
>>>>>                   int                     i;
>>>>> .git/rebase-apply/patch:39: trailing whitespace.
>>>>> .git/rebase-apply/patch:46: space before tab in indent.
>>>>>                           LWLockReleaseClearVar(&WALInsertLocks[i].l.lock,
>>>>> warning: squelched 4 whitespace errors
>>>>> warning: 9 lines add whitespace errors.
>>>>> 2.
>>>>> And there is a typo:
>>>>> +     * PrevLinksHash is a lock-free hash table based on Cuckoo
>>>>> algorith. It is
>>>>> +     * mostly 4 way: for every element computed two positions h1, h2, and
>>>>> s/algorith/algorithm/g
>>>>
>>>> Hi, Japin
>>>>
>>>> Thank you a lot for measuring and comments.
>>>>
>>>> May I ask you to compare not only against master, but against straight
>>>> increase of NUM_XLOGINSERT_LOCKS to 128 as well?
>>>> This way the profit from added complexity will be more obvious: does
>>>> it pay for self or not.
>>> The above test already increases NUM_XLOGINSERT_LOCKS to 64;
>>
>> Ok, that is good.
>> Did you just increased number of locks, or applied
>> "several-attempts-to-lock"
>> from [1] as well? It will be interesting how it affects performance in this
>> case. And it is orthogonal to "lock-free reservation", so they could
>> applied simultaneously.
>
> I apply the following two patches:
>
> 1. Lock-free XLog Reservation using lock-free hash-table

Hi, Yura Sokolov

When I try to test the performance by only applying the Lock-free XLog
Reservation patch, there is an error:

2025-01-22 20:06:49.976 CST [1271602] PANIC:  stuck spinlock detected at 
LinkAndFindPrevPos, 
/home/postgres/postgres/build/../src/backend/access/transam/xlog.c:1425
2025-01-22 20:06:49.976 CST [1271602] STATEMENT:  UPDATE bmsql_customer     SET 
c_balance = c_balance - $1,         c_ytd_payment = c_ytd_payment + $2,         
c_payment_cnt = c_payment_cnt + 1     WHERE c_w_id = $3 AND c_d_id = $4 AND 
c_id = $5
2025-01-22 20:06:50.078 CST [1271748] PANIC:  stuck spinlock detected at 
LinkAndFindPrevPos, 
/home/postgres/postgres/build/../src/backend/access/transam/xlog.c:1425

However, it does not always occur.

-- 
Regrads,
Japin Li


Reply via email to