abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:44 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.18. Díky 174 přispěvatelům.

    Ladislav Hagara | Komentářů: 2
    dnes 15:11 | IT novinky

    Miliardy korun na digitalizaci služeb státu nestačily. Stát do ní v letech 2020 až 2024 vložil víc než 50 miliard korun, ale původní cíl se nepodařilo splnit. Od loňského února měly být služby státu plně digitalizované a občané měli mít právo komunikovat se státem digitálně. Do tohoto data se povedlo plně digitalizovat 18 procent agendových služeb státu. Dnes to uvedl Nejvyšší kontrolní úřad (NKÚ) v souhrnné zprávě o stavu digitalizace v Česku. Zpráva vychází z výsledků víc než 50 kontrol, které NKÚ v posledních pěti letech v tomto oboru uskutečnil.

    Ladislav Hagara | Komentářů: 6
    dnes 13:55 | IT novinky

    Nadace Wikimedia, která je provozovatelem internetové encyklopedie Wikipedia, oznámila u příležitosti 25. výročí vzniku encyklopedie nové licenční dohody s firmami vyvíjejícími umělou inteligenci (AI). Mezi partnery encyklopedie tak nově patří Microsoft, Amazon a Meta Platforms, ale také start-up Perplexity a francouzská společnost Mistral AI. Wikimedia má podobnou dohodu od roku 2022 také se společností Google ze skupiny

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 02:22 | Nová verze

    D7VK byl vydán ve verzi 1.2. Jedná se o fork DXVK implementující překlad volání Direct3D 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    dnes 02:00 | Nová verze

    Byla vydána verze 12.0.0 knihovny libvirt (Wikipedie) zastřešující různé virtualizační technologie a vytvářející jednotné rozhraní pro správu virtuálních strojů. Současně byl ve verzi 12.0.0 vydán související modul pro Python libvirt-python. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 19:22 | Humor

    CreepyLink.com je nový zkracovač URL adres, 'díky kterému budou vaše odkazy vypadat tak podezřele, jak je to jen možné'. Například odkaz na abclinuxu.cz tento zkracovač převádí do podoby 'https://netflix.web-safe.link/logger_8oIlgs_free_money.php'. Dle prohlášení autora je CreepyLink alternativou ke zkracovači ShadyURL (repozitář na githubu), který dnes již bohužel není v provozu.

    NUKE GAZA! 🎆 | Komentářů: 3
    včera 12:33 | IT novinky

    Na blogu Raspberry Pi byla představena rozšiřující deska Raspberry Pi AI HAT+ 2 s akcelerátorem Hailo-10 a 8 GB RAM. Na rozdíl od předchozí Raspberry Pi AI HAT+ podporuje generativní AI. Cena desky je 130 dolarů.

    Ladislav Hagara | Komentářů: 3
    včera 12:11 | Komunita

    Wikipedie slaví 25. výročí svého založení. Vznikla 15. ledna 2001 jako doplňkový projekt k dnes již neexistující encyklopedii Nupedia. Doména wikipedia.org byla zaregistrována 12. ledna 2001. Zítra proběhne v Praze Večer svobodné kultury, který pořádá spolek Wikimedia ČR.

    Ladislav Hagara | Komentářů: 1
    včera 04:44 | Nová verze

    Po více než dvou letech od vydání předchozí verze 2.12 byla vydána nová stabilní verze 2.14 systémového zavaděče GNU GRUB (GRand Unified Bootloader, Wikipedie). Přehled novinek v souboru NEWS a v aktualizované dokumentaci.

    Ladislav Hagara | Komentářů: 2
    včera 02:22 | Nová verze

    Google Chrome 144 byl prohlášen za stabilní. Nejnovější stabilní verze 144.0.7559.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 10 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře (YouTube).

    Ladislav Hagara | Komentářů: 4
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (5%)
     (0%)
     (9%)
     (19%)
     (3%)
     (6%)
     (3%)
     (11%)
     (43%)
    Celkem 460 hlasů
     Komentářů: 12, poslední 14.1. 21:12
    Rozcestník

    Dotaz: Postgresql - snapshot tabulek???

    24.9.2015 20:28 tino
    Postgresql - snapshot tabulek???
    Přečteno: 1229×
    Ahoj, mám víceuživatelskou webovou aplikaci, která provádí následující:
    1. Uživatel vloží vstup
    2. Na základě vstupu aplikace načte data z db
    3. Na základě oněch načtených dat a obsahu nějakých souborů na disku načte další data z db a něco do db uloží

    Problém je ten, že všechny body musí vidět stejná data. Body 2 a 3 mohou trvat několik minut, takže nepřichází v úvahu běh v transakci. Ta by mi kvůli konkurenčnímu použití aplikace málokdy doběhla do konce. Nechci nijak zamykat řádky, chci jen po dobu sql spojení "snapshot" stavu několika tabulek. V transakci bych zpracovával jen něco v bodu 3.

    Původně jsem myslel, že bych "vnořoval" transakce (SAVEPOINT), nicméně pokud by ta podtransakce v bodu 3 něco zamykala, tak by mohla zhavarovat ta "rodičovská" transakce v jiném spojení. Jediné současné řešení, které mě napadá je manuálně si verzovat řádky vybraných tabulek. Je ještě jiná možnost? Ideálně něco jako "rodičovská" transakce, které by nikdy nedělala rollback "dceřiných".

    Odpovědi

    okbob avatar 25.9.2015 07:31 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Postgresql - snapshot tabulek???
    U databází, které jsou postavené nad MVCC- Multi Version Concurrency Control (a to Postgres je) transakce v řádech minut obvykle nebývají problém. Pracovat se snaphotem je ten nejmenší. Zde platí, že UPDATE neblokuje SELECT a SELECT neblokuje UPDATE.
    25.9.2015 09:19 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Postgresql - snapshot tabulek???
    Připojím se s dotazem: Mám eshop, který při objednání zapisuje do tabulky produktů (aktualizuje zde počet prodaných kusů) a mám dávku, která v eshopu aktualizuje údaje o produktech (data se berou ze skladového systému). Dávka běží v transakci několik minut. Problém je zřejmý: Pokud během této doby někdo objednává, zasekne se objednávka a čeká na dokončení transakce a jelikož to probíhá synchronně s odesíláním košíku, čeká i uživatel. A nakonec dojde buď trpělivost uživateli nebo dojde na timeout při čekání na konec transakce. Databáze je Mysql.

    Jak toto nejlépe řešit? Nejlépe při zachování atomicity té dávky (buď prijde celá nebo vůbec). Nad dávkou mám plnou kontrolu, nad eshopem taky ale nechci upravovat jádro.

    PS: Dávka byla navržená původně na běh 1x denně v noci, ale znáte to, přišlo se na to, že je občas potřeba aktualizovat i během dne.
    -- OldFrog
    okbob avatar 25.9.2015 09:31 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Postgresql - snapshot tabulek???
    Pokud se pracuje nad stejnými tabulkami, tak se s tím nedá nic dělat. Ověřit si, že běžíte nad InnoDB, které zamyká po řádcích, a snažit se co nejrychleji urychlit dávku - což znamená hlavně rychlé disky, dost paměti, indexy. Dalším řešením je rozdělit transakci po kategoriích atd. Dálším může separátní uložiště pro odeslání košíku - i při UPDATE se může z tabulky číst.

    V prvním kroku bych se zaměřil na rychlost té dávky - na dnešních počítačích bych během několika minut měl zaktualizovat několik miliónů produktů. To skutečně děláte? Pokud ne, tak je docela dost možné, že ta dávku bude možné napsat inteligentněji.
    25.9.2015 10:04 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Postgresql - snapshot tabulek???
    Ověřit si, že běžíte nad InnoDB, které zamyká po řádcích
    Ano, všude je InnoDB. Ale čeká to na dokončení celé transakce. Dávka jde sekvenčně produkt po produktu, u každého produktu udělá dotazy do několika tabulek a několik tabulek aktualizuje. Transakce tam je začatá úplně primitivně na začátku celé dávky, takže pokud dojde k chybě neaktualizuje se žádný produkt. Asi by stačilo transakci otevřít a pak komitnout pro každý produkt zvlášť, takže by byla zaručena alespoň konzistence jednotlivého produktu. Musel bych prostudovat, jaké tam jsou vedlejší efekty - kvůli něčemu jsme transakce po produktech zamítli.
    Dalším řešením může být separátní uložiště pro odeslání košíku - i při UPDATE se může z tabulky číst.
    Tomuhle nerozumím, můžete to prosím ještě rozvést?
    (...) během několika minut měl zaktualizovat několik miliónů produktů. To skutečně děláte? Pokud ne, tak je docela dost možné, že ta dávku bude možné napsat inteligentněji.
    Ta dávka není čisté sql, používá se orm a řeší se tam kde co, mimo jiné se rozhoduje podle existujících záznamů v databázi. Přepis do sql s případným použitím procedur by bylo ideální, nicméně nejdražšší řešení.
    -- OldFrog
    okbob avatar 25.9.2015 10:31 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: Postgresql - snapshot tabulek???
    Při zpracování košíku bych nezapisoval do tabulky produktů, ale do nějaké pomocné tabulky. Tím by nemělo docházet k čekání na zámek.

    Přepis do SQL - vždy je to otázka ceny, ale spočítejte si, kolik zákazníků a prodeje ztratíte.
    25.9.2015 10:38 OldFrog {Ondra Nemecek} | skóre: 36 | blog: Žabákův notes | Praha
    Rozbalit Rozbalit vše Re: Postgresql - snapshot tabulek???
    Ano, košík by neměl zapisovat do tabulky produktů, to je chyba návrhu (jde o OXID eshop). Pokud se zápis odstraní, vše funguje. Takže by bylo řešení si to ukládat bokem do jiné tabulky a pak třeba jednou denně přelít do tabulky produktů. To je asi nejschůdnější řešení, vyžadující bohužel zásah do eshopu.

    Děkuju za odpovědi a mějte se!
    -- OldFrog

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.