WebarchivCZ / Seeder

Seeder - Czech webarchive curating tool and public site
MIT License
15 stars 2 forks source link

plánování sklizní - 504 Gateway Time-out #570

Closed mariehaskovcova closed 2 years ago

mariehaskovcova commented 3 years ago

při vkládání velkého množství semínek do záznamu sklizně (mimosystémová semínka) háže 504 Gateway Time-out, kalendář pak vypadá prázdný, nakonec se záznam vytvoří

https://app.webarchiv.cz/seeder/harvests/140/detail

Fasand commented 3 years ago

Problém v Harvest.pair_custom_seeds(), každá URL se samostatně vyhledává v databázi, při 1000 URL teda jde 1000 dotazů do databáze – a to ještě jestli kterékoliv semínko obsahuje danou URL. Pokusím se to trochu zoptimalizovat, nejsem si jistý jak to bude pracovat s tím "contains" místo "equals". Případně by to asi šlo udělat podobně jako zmražení semínek, tedy přes signál.

Fasand commented 3 years ago

@mariehaskovcova rychlé otázky na to párování:

Tak jak to bylo doteď je extrémně pomalé u většího množství semínek a popravdě nevím, jestli je to úplně užitečné. Nyní se semínko spáruje s existujícím zdroje, pokud URL zdroje obsahuje semínko, tedy např. ten příklad nahoře. Hlavně to ale znamená, že do sklizně/tématické kolekce se nakonec dostane to "http://google.com/abc", i když původní URL byla vlastně jiná.

Zdaleka nejrychlejší optimalizace co mě zatím napadla (z 3 minut na ~1-2 sekundy) by jednoduše spárovala zdroje, které obsahují identické URL jako custom semínko, tedy by se informace nijak nezměnily/neztratily a nemuselo by se čekat. Samozřejmě to ale může znamenat, že když třeba zdroj bude mít správné url a custom semínko bude mít na konci "#", tak se nespárují, proto ta otázka "vadí to vlastně?" Pro kontext ten příklad s 6674 custom semínky nespáruje ani jedno, protože jsou všechna konkrétnější než existující zdroje.