Postgresql deadlocks

Martin Tiršel lk na blackpage.eu
Pátek Březen 2 23:39:29 CET 2012


Zdravim,

ano, takto som to uz tiez poriesil (ono je to tam trocha komplikovanejsie,  
kazdy z inzeratov moze byt teoreticky v inej tbl podla typu). Vyskyt sa  
rapidne znizil (ale len do urcitej zataze, potom prudko stupa). Co som si  
ale az teraz vsimol/neuvedomil, tak jeden typ inzeratov je nastaveny na  
castejsie zobrazovanie a vzhladom na maly pocet inzeratov v tejto  
kategorii, takmer kazdy request zavadil, ak zrovna dve vlakna zobrazovali  
rovnaky typ. DB bude mat zrejme dostatocne rezervy, ked poriesim rezervy v  
aplikacii :)

-- 
S pozdravom,
Martin Tiršel

On Fri, 02 Mar 2012 22:55:46 +0100, <tomas.krbec na gmail.com> wrote:

> Zdravím,
>
> ještě mne napadá, když vidím ten log. Říkáte, že se vyberou 2-3 záznamy  
> a ty se potom updatují. Samozřejmě neznám ten kód, ale je nutné to v  
> transakci updatovat řádek po řádku?
> Nedal by se použít jeden update?
> Něco jako:
>
> UPDATE "advert_advert" SET "views" =
> "advert_advert"."views" + 1 WHERE "advert_advert"."id" in (id1, id2, id3)
>
> Tom
>
>
> Dne uživatel Martin Tiršel <lk na blackpage.eu> napsal:
>> > Vie ma niekto nasmerovat, na co by som sa mal zamerat, pripadne skusit
>
>> upravit? Logy vyzeraju nejako takto:
>
>
>
>> 2012-03-01 14:52:27 CET ERROR: deadlock detected
>
>> 2012-03-01 14:52:27 CET DETAIL: Process 10372 waits for ShareLock on
>
>> transaction 130251607; blocked by process 10370.
>
>> Process 10370 waits for ShareLock on transaction 130251610; blocked
>
>> by process 10372.
>
>> Process 10372: UPDATE "advert_advert" SET "views" =
>
>> "advert_advert"."views" + 1 WHERE "advert_advert"."id" = 1152
>
>> Process 10370: UPDATE "advert_advert" SET "views" =
>
>> "advert_advert"."views" + 1 WHERE "advert_advert"."id" = 1153
>
>> 2012-03-01 14:52:27 CET HINT: See server log for query details.
>
>> 2012-03-01 14:52:27 CET STATEMENT: UPDATE "advert_advert" SET "views" =
>
>> "advert_advert"."views" + 1 WHERE "advert_advert"."id" = 1152
>
>
>
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux


Další informace o konferenci Linux