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 13:00 | Nová verze

    Soudní dvůr Evropské unie potvrdil rekordní pokutu 4,125 miliardy eur (100 miliard Kč) americké technologické firmě Google ze skupiny Alphabet. Pokutu firmě v roce 2018 vyměřila Evropská komise (EK) za to, že Google podle ní zneužívá operačního systému Android k potlačení konkurence na trhu vyhledávacích služeb.

    Ladislav Hagara | Komentářů: 7
    dnes 12:44 | IT novinky

    Administrativa amerického prezidenta Donalda Trumpa povolila firmě Anthropic obnovit plný přístup klientů k modelům umělé inteligence (AI) Fable 5 a Mythos 5. Ty byly nedostupné bezmála tři týdny kvůli bezpečnostním obavám vlády, třebaže americké ministerstvo obchodu minulý pátek povolilo omezený přístup k modelu Mythos 5 pro některé „důvěryhodné“ domácí organizace.

    Ladislav Hagara | Komentářů: 0
    dnes 12:22 | Zajímavý článek

    Francúzska organizácia na ochranu spotrebiteľa, po viac než ôsmych rokoch skúmania, žaluje Epson za plánované zastarávanie tlačiarní. Súd sa začína dnes, 2. 7. 2026, vo francúzskom Nanterre.

    Vlado99 | Komentářů: 1
    dnes 03:00 | Zajímavý software

    Erin Catto, autor open source 2D fyzikálního enginu Box2D (Wikipedie), představil nový 3D fyzikální engine Box3D. Engine je již používán ve hře The Legend of California.

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

    Byla vydána nová verze 4.0.0 multiplatformního svobodného frameworku pro zpracování obrazu G'MIC (GREYC's Magic for Image Computing, Wikipedie). Přehled novinek i s náhledy nových filtrů na PIXLS.US.

    Ladislav Hagara | Komentářů: 1
    včera 14:22 | Zajímavý článek

    Český statistický úřad (ČSÚ): Průměrná hrubá měsíční mzda ICT specialistů v roce 2025 meziročně vzrostla o 6 % na téměř 100 tisíc korun. Nejlépe placeni byli vývojáři softwaru. Dlouhodobým trendem zůstává nízké zastoupení žen, a to jak mezi specialisty, tak studenty těchto oborů.

    Ladislav Hagara | Komentářů: 12
    včera 14:11 | IT novinky

    Ochranný svaz autorský (OSA) připravuje žalobu na společnost Suno, která umožňuje generování hudby pomocí umělé inteligence (AI). ČTK to sdělil předseda představenstva OSA Roman Strejček. Suno podle něj bez souhlasu využívá k trénování svých modelů hudbu autorů, které svaz zastupuje. Nedávný investigativní materiál magazínu The Atlantic ukázal, že firmy jako Suno nebo Udio k trénování modelů používají rozsáhlé databáze obsahující miliony skladeb. V databázích, které časopis zveřejnil, lze dohledat i písně řady českých a slovenských umělců.

    Ladislav Hagara | Komentářů: 3
    včera 13:33 | Komunita

    Byl publikován přehled dění a novinek z vývoje Asahi Linuxu, tj. Linuxu pro Apple Silicon. Vyřešen byl problém s macOS 27 Golden Gate. Vývoj lze podpořit na Open Collective a GitHub Sponsors.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | IT novinky

    EU dnešním dnem zavedla clo ve výši 3 eur na balíky nízké hodnoty dovážené ze zemí mimo EU. To zahrnuje širokou škálu výrobků běžně nakupovaných on-line, jako jsou oděvy, hračky, elektronika a další spotřební zboží v hodnotě až 150 EUR.

    Ladislav Hagara | Komentářů: 10
    včera 08:55 | Nová verze

    Vyšel Redmine 7.0, jeden z nejlepších open source ticketovacích systémů. Došlo k migraci na Rails 8, vylepšení UI/UX, Workflow, byla přidána podpora náhledu pro Microsoft Office a LibreOffice dokumenty, došlo k výkonnostním optimalizacím a přibylo spoustu dalších oprav a novinek. Více informací v oficiálním oznámení.

    Max | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (8%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (26%)
    Celkem 2034 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník


    Dotaz: postgresql - optimisticke transakce

    9.7.2007 15:30 jenda
    postgresql - optimisticke transakce
    Přečteno: 559×
    rad bych mel potvrzeno, jestli je mozno pouzivat v postgresql transakce v optimistickem modu. Jestlize je tomu tak, pak bych se rad dovedel, jaky je doporuceny zpusob jak se osetruji kolize, resp. jak je to v praxi obvykle.

    Pouzuivaji se zamky na recordy nebo se to nevyplati a zamykaji se tabulky. Existuje nejaka moznost transakce znova rozbehnout od nejakeho mista v programu. Existuji nejake takove 'checkpointy'. Predem dekuji za podnety a navrhy zrovna tak jako za linky k uvedene problematice.

    p.s. rozhodujeme se mezu fb nebo pgsql

    Odpovědi

    AraxoN avatar 9.7.2007 16:07 AraxoN | skóre: 47 | blog: slon_v_porcelane | Košice
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    9.7.2007 16:52 jenda
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    hm, tady by nam musel nekdo znaly pomoci, ja jsem byl toho nazoru, ze 'transaction isolation' nema s tim optimistic/pesimistic nic spolecneho. Nad tim savepointem se musim jeste zamyslet, diky.
    okbob avatar 9.7.2007 17:13 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    Optimisticky mod je vicemene jediny a implicitni. Zamky jsou zakladni brzdou databaze, takze se pokud mozno nepouzivaji. Proto ma taky PostgreSQL (stejne jako Firebird) tzv. multigeneracni architekturu, coz tedy neznamena, ze zamky neexistuji (jak na radcich, tak na tabulkach, pripadne databazi). Pokud si je ale nevynucuje uloha, tak se nepouzivaji. Jestli jste drive delali s Foxkou nebo necim podobnym, tak se snazte na vsechno co nejdrive zapomenout. SQL databaze se chovaji jinak.

    http://www.postgresql.org/files/developer/transactions.pdf
    http://www.sai.msu.su/~megera/postgres/gist/papers/concurrency/concurrency.pdf Pavel
    9.7.2007 18:38 jenda
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    Pokud si je ale nevynucuje uloha, tak se nepouzivaji.

    ja si nedokazu predstavit, ktere jsou to aplikace, ktere to nevynucuji. Schematicky napr:

    ... - SELECT (...na neco .., precteno do lokalnik promenych..)

    - zpracovani lokalnich promenych ...

    - podle situace UPDATE nejake z tech radek v tabulce

    - COMMIT

    jestlize toto cini 2 procesy soucasne, tak budto u toho COMMITU, nebo podle databaze uz pri tom UPDATE krici jeden z tech procesu, ze ta transakce nebo ten update neprobehl. To jsem si myslel ze se musi vyskytovat u sebeprimitivnejsi aplikace. A nyni musim reagovat na tu situaci, ze nejaka akce nemohla byt provedena. V tech podkladech co linkujete (a i u jinych na netu) je lapidarne receno, ze je potreba transakci znova nastartovat. Nikde jsem ale nevycetl jak to provest automaticky.
    9.7.2007 18:43 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    "Nikde jsem ale nevycetl jak to provest automaticky."
    Možná se jen hloupě ptám, ale pokud jste 1) odvolal transakci kvůli konfliktu při zápisu nebo commitu a 2) jste autorem dotyčné aplikace, tak snad není problém naprogramovat "try again" (a případně ověřit, zda není třeba interaktivní zásah == změnila se důležitá data, která by způsobila, že transakce by již neměla smysl tak, jak ji chcete provést)? Tohle je až příliš individuální dotaz, než aby Vám na něj mohl zodpovědět kdokoli jiný, než Vy sám.
    9.7.2007 22:49 jenda
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    ...tak snad není problém naprogramovat "try again" ...

    no prave, a ja bych rad vedel, jak to nekdo dela. Napr. jestli si dela ve funkcich nejake znacky a vraci se k nim setjmp-em? Nikdy jsem to totiz v zadnych prikladech nevidel. Ja mam takovy silny pocit, ze aplikace se delaji tak, ze kdyz je nejaka transakce nehotova, tak se predhodi uzivateli, aby nastartoval ten dotaz znova. Coz v mem pripade bohuzel nejde protoze se u batchprocedur musim snazit, aby si aplikace poradila sama.

    Vim, ze se to omezuje tim, ze se pouziji zamky, ale jak pise pan Stehule, ty v aplikaci nevidime radi. Ale je to patrne jedina cesta, jak omezit ty nedokoncene transakce na ty s tim deadlockem. S tim se samozrejme zit musi, kdyz se to stane 1 x za pul roku, tak si to uzivatele prectou v logfile a 'good is'. Tedy vpodstate ta strategie spociva v zamezeni te situace, abych musel nejakou transakci zacit znovu. A ta otazka znela, je tento nazopr spravny? A ten poddotaz byl, jak to delate Vy ostatni?
    9.7.2007 22:59 outsider
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    A ta otazka znela, je tento nazopr spravny? A ten poddotaz byl, jak to delate Vy ostatni?
    Ano. Presne podle teorie.

    Na tomhle neni moc co vymyslet a zadnou ameriku neobjevite. Bud zamykate a riskujete deadlocky nebo nezamykate, ale musite hlidat konzistenci (no, musite :-) ) a dostanete se do stavu, kdy to uzivatel musi zadat znovu... Co je vyhodnejsi ale zavisi na logice vasi aplikace a neexistuje zadna obecna rada, co je lepsi!
    9.7.2007 23:09 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    Uvedu příklad: Uživatel zadá změnu v nějakém řádku - třebas jen jedno číslo v jednom sloupečku. Před commitem zjistím, že to nemůžu potvrdit nebo zapsat, protože došlo paralelně ke změně. Nu tak to odvolám a zkontroluju, jestli se nezměnila data kritická pro tuhle změnu. Jestli někdo panu X změnil nebo nezměnil ulici a číslo domu mne příliš nezajímá, pokud mu měním fotku v databázi. Pokud mi někdo změnil pod rukou pole, které uživatel právě zadal, asi by měl na to být upozorněn, pokud nový údaj zadal na základě starého a již neplatného.

    Nevím, co řešit v dávkách. Buď se mi "pod rukou" (ale pod ochranou MVCC) změnilo něco, z čeho dokážu novou transakci přepočítat (u přípisů na účtu je to jednoduché, že? Prostě těch 13547 Kč připočtu k nové hodnotě místo k původní) nebo to přepočítat nedokážu a je to závažný stav a ten nějak oznámím - mailem správci, třeba? Nemáte podrobnější příklad?
    10.7.2007 00:02 jenda
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    ono je to takhle. Ten system, pro ktery se snazim verifikovat tu pgsql je firemni informacni system ve kterem pracuji neustale na pozadi desitky programu, ktere neustale zjistuji stavy na skladech, aktuani dodavky, postupy prace, stav vyroby a neustale optimalizuji vyrobu a objednavky. Mezitim pracuji (pres den) samozrejme interaktivne uzivatele. Napr. tabulky vyrobnich zakazek jsou jaksi neustale 'pod tlakem', nebot se podle toho, co si prave mysli simulace rozkladaji na subzakazky, meni se jejich cas a jednotlive vyrobni prikazy meni svuj stroj, cas naplanovani, mnozstvi a pod.

    Neco takoveho nelze samozrejme programovat jako obvykle projekty pro banku, kde si sednou desitky programatoru na 2 roky do kamrliku a potej s kazdym sql-statementem a kdyz si nevedi rady, tak vydaj hlasku, ze si ma neco nastartovat uzivatel znova. Tady se na to slo s frameworkem, ktery generuje ty sql-statements sam na zaklade vlastniho jazyka a aby byl ten system menitelny, je to cele rozdeleno do mnozstvi minimodulu, ktere nejaky generator sesumiruje dohromady.

    Aplikacni programator tedy nejake SELECTy vubec nevidi, ty zna jen ten generator a proto si nemuze nad kazdou libovolnou kombinaci tech modulu zamyslet, co udelat, kdyz ta transakce nahodou nevyjde. To musi udelat ten system sam. Programm je z poloviny 90 tych let s nejakou zvlastni databazi od Siemense. Ta databaze (nebo ten framework , to nevim) si vede vlastni checkpointy a a dokaze transakce opakovat ze se to rozbehne od toho checkpointu znova. Bylo mi receno, ze je to neco podobneho jako ta slavna NonstopSQL od firmy tandem.

    No a ja se snazim nyni tak trochu osahat pudu , zda by se nedala nejaka rychla rekneme 'uprimne' levna databaze k tomu pouzit. Proto jsem tak trochu naslepu vypalil a doufal, ze se nekdo s nejakou takovou problematikou uz setkal - nahoda je vul :-)
    okbob avatar 10.7.2007 10:02 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    je to trochu jinak. v podstate nikdy nejste schopny sam detekovat nekonzistenci. Nezalezi ani tak jak druha session zmenila data, ale kdy druha session potvrdi (commit) zmenena data. V ten okamzik uz se necha detekovat kolize. A stejne tak u vas, dokud nedate commit, tak neni jasnem jestli dojde ke kolizi nebo ne (protoze jste samozrejme mohl dat rollback). Proto je detekce kolizi vyhradne zalezitosti systemu. V podstate by se mela vetsina transakci, kde hrozi riziko kolize psat do cyklu:
      for (i=1,10,i++)
      {
        BEGIN
          SET TRANSACTION SERIALIZABLE
          SELECT INTO ... 
          UPDATE ...
        try
        {
           COMMIT
        }
        catch 
        {
           continue;
        }
        break;
      }
    
    okbob avatar 10.7.2007 09:47 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
    Rozbalit Rozbalit vše Re: postgresql - optimisticke transakce
    Je dost pripadu, kdy vam staci UPDATE t SET c = c +/- konstanta a pak zadne zamky nepotrebujete. Pokud nutne potrebuji data do lokalnich promennych, pak musim uz pouzit radkovy zamek
    BEGIN
      SELECT .... FROM FOR UPDATE;
      ....
      UPDATE ...
    COMMIT
    

    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.