Názory k článku
Transakce a izolace transakcí v databázích
Offtopic
celé vláknoRe: Offtopic
celé vláknoRe: Offtopic
celé vláknoAle kdyz se na to podivame vazne, tak jestli neni situace neni k smichu, je k placi...
Microsoftem certifikovani odbornici poslani systemovym integratorem migrovat (at uz wokna nebo exchange) se vetsinou ukazali jako agilni klikaci brilantni znalosti kam kliknout (jak by ne, kdyz pri certifikaci musi ty postupy popisovat z pameti ;-)), lec jakmile prvni dialog vratil "Chyba #$%$&#$ ......." (nebo jeste lepe "Chyba (Ok/Zrusit)" ;-) tak zvladli maximalne tupe cumet. V horsim pripade se sli topit rovnou do microsofti KB, nebo obvolavali vsechny svate. Ani je nenapadlo nacpat to do googlu, popremyslet o tom odkud to mohlo prijit, mrknout se na to nastrojem treti strany, nic. Takze to vetsinou dopadlo tak ze skutecne problemy vyresili nasi spravci, panove si tam odklikali co zvladli, podnik zaplatil desitky tisic za hodinu a bylo zmigrovano.
Pripady ichtylu co zkouseli (a pry i v nekolika nestrezenych okamzicich kdy jim naivni spravce nestal lidove receno "za prdeli") ze zhavarovaneho pole vytahnout zdravy disk a poslat ten raid 5 do kytek naveky uz radsi ani pitvat nebudu.
Nejsou ridke pripady kdy banda nedouku slibi ze doda dokonalou aplikaci .... a vysledek se zadani podoba asi tak jako kdyby ho nekdo peclive rozzvykal, spolkl, castecne natravil a pak teprve vyzvracel na disky serveru. O to smutnejsi je kdyz nahodou tyhle pripady sezenou sponzora, zacnou si hrat na spolecnost a ulovi statni zakazku ...
Po takovych zkusenostech je hlaska "A to se nejednalo o nějakého amatéra ..." smutnym dukazem naivity autora - ano, najdou se i cestne vyjimky ale obvykle se da spis spolehnout na to jak se ten clovek chova za konzoli nez na to kolik nesmyslu si nasype pred/za jmeno).
Dobry programator i admin proste potrebuje analyticky schopnosti, rozumet tomu co se deje za zavesy a ne mit nabiflovanou prirucku "Naucime se programovat v ___ / Spravujeme Microsoft ___ za ____ dni" a seznam scrennshotu okynek + znamy chyby. To jsou vsechno veci co se daji hledat za pochodu, u zkousek z matiky jsou taky povoleny tabulky ;-)))
Ale co, ten pan ma kvadro, patnact titulu, stoji za nim Servisni Partner, tak to to bude zrejme genius, nepujdem se pred nim rovnou plazit po kolenou ? ;-))))
Re: Offtopic
celé vláknoGoogle ve světě Windows není primárním ani jediným zdrojem informací. Na prvním místě se vyplatí zkusit autorizované zdroje. Například u STOP chyby (aka blue screen) můžete její popis hledat půl dne na Googlu, a dozvědět se spoustu nesmyslů, nebo najít dokumentaci za minutu na webu MS.
Pokud jste schopni si práci odvést sami v lepší kvalitě, tak mi není jasné, proč si někoho najímáte. Buď máte jedinou mizernou zkušenost se subkontraktory (a to není vypovídající), nebo obecně umíte provést práci lépe, ale přesto si na ní najímáte neschopná nemehla (což je vaše chyba).
Pokud za někoho platíte za každý den i více než jeden průměrný plat, tak se očekává nejen znalost věci, ale i to sako. Zkuste někdy přijít do banky jako subkontraktor v otahaném tričku se skvrnami, jetých džínách neurčitě barvy, a mastnými vlasy po pás. Samozřejmě jestli děláte ve státní správě nebo jste zamknutý někde v suterénu, tak *vám* taková věc může projít.
Re: Offtopic
celé vláknoRe: Offtopic
celé vláknoDobrý článek
celé vláknoSuper
celé vláknoDíky
celé vláknoRe: Díky
celé vláknoP.S.: Zrovna vcera jsme s kolegy meli debatu na tema takrka shodne s timto clankem, takze prisel velmi vhod.
Re: Díky
celé vláknoRe: Díky
celé vláknoRe: Díky
celé vláknoPekne
celé vláknoBTW: Alespon je videt, co vsechno dokaze udelat zkousku na MSCE. Ono to tak trosku odrazi tradicni pristup MS k bezpecnosti ...
Re: Pekne
celé vláknoRe: Pekne
celé vláknoRe: Pekne
celé vláknoSazim na linuxovy patlaly, ti se vetsinou aspon nauci si pod sebou nepodrezavat vetev nebo to nevydrzi a tahnou zpatky ;-)))
A navic, kdyz vidis co na woknech provadi radoby seriozni, v nekterych pripadech i multinarodni spolecnosti, tak bys brecel. A ne ze by windowsich patlalu nebylo vic, preci jen vstupni bariera je nizsi, o linuchu by se musel napred od nekoho/nekud dovedet, vschichni kamosi maji kradeny wokna a ve skole ho nauci profesionalni design stranek v nastroji MS Word. Dokumentace pro vyvojovy nastoje pro mainstream jsou plny kramy, skoda ze je to vzdycky to same, rozbredly popis algolove syntaxe, tahame zaznam z databaze, naklikame si gui v designeru a opravdu, za par dni uz umime "programovat".
Jo , jeste tridy, a u nekterejch jazyku zminit, ze je tu neco cemu se rika pointer a umozni na tom s prakticky nulovou namahou i pochopenim delat jeste lepsi bordel.
Jeste udelam stranky segre a jejimu kreckovi, a pri trose stesti az bude maminka nekde vypravet jak jsem sikovnej, tak se nekdo chyti.
Seznam featur: Formular pro select a insert, pri trose snahy i nejaky ten update a mozna i master/detail. Wow, jeste ze tady na to je ta komponenta. Moznost SQL injection zdarma v cene, pokud se tomu ovsem autori frameworku vsemi silami nesnazili tomu zabranit. Ale nevadi, urcite se mi podari tam nekam nacpat moje oblibene conn.execute("..." + var + "..."). Hesla samozrejme ukladame v plaintextu, abysme je mohli uzivatelum posilat zpatky, ted jen jeste nakopnout toho Commandera a uploadnout to na ftp, sifrovany kanal je zrejme neco sprostyho.
A zejtra zajdu za frantou, rikal ze se tedka naucil v tom flashi hejbat ctvereckem, zalozime spolecnost ...
Mam pokracovat ? ;-)
Re: Pekne
celé vlákno"Vstupní bariéra" je blbost. Nechcete dnes sázat grafiku jen z olova, aby tam byla ta správná vstupní bariéra? Vždyť dnes každá lama může na svém počítači díky DTP programům spatlat 5 písem na jednom letáčku, a člověk by zvracel. Dokud se lilo olovo, neexistovaly stupidní časopisy pro ženy.
Jenže skutečnost je jiná. Jednoduše použitelné nástroje prostě zvyšují produktivitu profesionálů. Vyjma toho také zpřístupňují technologii neznalým. V některých případech je to dobré (účetní pracují produktivněji než s papírem), v jiných špatné (patlalové patlají).
Pokud jsem si všiml, tak náchylnost na SQL injection je běžná feature právě u těch PHP patlalů. Ve Windows se totiž s parametry pracuje snadno, a existuje velmi dobrá dokumentace, navíc s příklady a tutorialy.
ale
celé vláknoPS: Článok som si vytlačil a prečítam si to v pokoji neskôr... ale vyzerá dobre.
Re: ale
celé vláknoRe: ale
celé vláknohttp://www.root.cz/clanky/letmy-uvod-do-ulozenych-procedur-mysql-prvni-cast/
http://www.root.cz/clanky/ulozene-procedury-event-scheduler-a-informacni-schemata-mysql/
Má to určité mušky, ale je to použitelné.
Re: ale
celé vláknoTy triggery mi trošku ujely a datasety ze stored procedur jsem nevěděl jak na ně (no muset vytvořit temporary tabulku pro vrácení datasetu ze stored procedury mi přijde jako drbání se levou rukou za pravým uchem a prostrčit si ji při tom ještě mezi nohama :-)).
Na mě působí MySQL asi tak, jak bylo řečeno v titulku Vašeho článku - rychlé, ale ne 100% spolehlivé, nepodporující některé nejzákladnější postupy. Co jsem zatím viděl, tak MySQL je DB, kterou využívají především lidé, kteří dělají weby pro ukládání takovýchto dat (mám na mysli data jednoduchá - nic extra komplexního). A z těch databází, které jsem od těchto lidí viděl, mi nebylo moc do zpěvu (absence základních návyků, postupů a pravidel při vytváření, nelogičnost, duplicity atd...).
P.S.: Patřím mezi lidi, kteří se bez transakcí neobejdou :-)
P.P.S.: Check constrainty v dokumentaci verze 5.1 prostě nevidím.
Re: ale
celé vláknoOhledně vracení datasetů MySQL věrně kopíruje MS SQL. Přijde na to. Někdy je výhodnější připravit generované množiny hromadnými operacemi (ala MS SQL nebo MySQL) někdy po řádcích (Firebird, PostgreSQL). Co se týče syntaxe, tak snad vyjma nové Sybase, žádná databáze nerespektuje standard. Věcně je způsob MS ale standardu relativně blízký.
MySQL AB to s 5.0 docela zazdila. Chtělo to ještě rok počkat a ty uložené procedury dotáhnout. Lidi se na 5ku docela těšili, a pak zjistili, že třeba ohledně uložených proc, předložená verze odpovídá zhruba prototypu. Přesto se našlo pár lidí, kteří proc používali a propagovali:
http://rpbouman.blogspot.com/
http://db4free.blogspot.com/2005/11/calculate-uniqueness-of-text-fields.html
MySQL AB se pak věnovala víc replikacím a pak bohužel utopila hodně energie ve Falconu. Což může být zajímavý engine. Zatím ovšem po třech letech je v hrubé betě.
No …
celé vláknoJinak já vím, co jsou to transakce dobře, dělal jsem s velkými dbms ještě před tím, než jsem potkal MySQL, a sice jsem chvíli nadával, ale všude je něco, s čím se zápasí. V PostgreSQL se zápasilo s chybovostí až vysokých verzí, teprve až poslední roky se dá na PostgreSQL spolehnout, že nelikviduje data. A to nemluvím, jak dlouho PostgreSQL trvalo, než byla schopná poskytnout Windows port, což také leccos říkalo o schopnostech jejích vývojářů a o tom, jak byla programovaná. Takový Firebird vzniknul na unixech, pak ho adoptoval Borland a bez problémů jel na Windows, a pak se zase roztáhnul v platformách – je to naprosto jiná ukázka toho, jak se programuje multiplatformní kód. U Firebirdu se zase zápasí s nejhorší dokumentací co u projektu znám, a u dbms to bolí desetinásobně. To jen na vyváženost.
Jinak u MySQL bych opravil – triggery jsou tam napůl nepoužitelné. Triggery nesmí měnit tabulku, nad kterou sedí, což je z hodně použití (neříkám že ze všech) diskvalifikuje.
V zásadě bych řekl, že triggery v MySQL mají největší použití právě jako náhrada constraintů, protože umějí odmítnout sql příkaz. Možná tak byly i míněny.
Jinak s tím, že MySQL 5 vyšla předčasně bych se ztotožnil.
Ohledně Falconu, oni neměli jinou možnost, než potápět InnoDb a rozvíjet Falcon. InnoDb totiž nebyl jejich engine, a firmu InnoDb software koupil před časem Oracle, který jim mohl kdykoli zavařit a odepřít pokračování v poskytování InnoDb. Právě proto začali horečně rozvíjet nový, svůj vlastní engine Falcon a moc doufali, že jim Oracle nepřidusí vzduch, než ho dokončí. Ironií osudu je dnes MySQL v rukách Oracle, takže možná se změní celá strategie MySQL, kdo ví, každopádně se dá čekat leccos – od dobrých až po špatné zprávy.
Re: No …
celé vláknoSouhlasím, že koupě InnoDB Oraclem byla pro MySQL AB rána, která poslala MySQL do rukou Sunu a následně neplánovaně Oraclu. Vývoj Falconu sebral určitě hodně energie a zdrojů - nedávno jsem narazil na zprávičku o ohlášení Falconu starou tři roky - předpokládám, že to nečekali, když pro vývoj engine angažovali Jima, který do MySQL přišel s vlastním již existujícím enginem. Je jen otázkou, jak by MySQL vypadala dnes, kdyby se vývojáři nemuseli věnovat vývoji Falconu.
Re: No …
celé vláknoRe: No …
celé vláknoTakový Firebird vzniknul na unixech, pak ho adoptoval Borland a bez problémů jel na Windows, a pak se zase roztáhnul v platformách – je to naprosto jiná ukázka toho, jak se programuje multiplatformní kód.
Jednak Borlandu trvalo nekolik verzi, kdy kod na widows stabilizovali. Prvni pouzitelna verze defakto byla Interbase 6. A co se tyce kodu videl jste ho nekdy? Az posledni verze se daji jakztak prelozit a funguje ./configure. Ale prelozit takovy firebird 1.0 se v podstate nedalo. Zdrojovy kod neni vubec dokumentovany a zoreintovat se v nem je dost narocne. Naproti PostgreSQL je jeden z mala kodu, ktery jsem mel moznost videt, v kterem se da velice dobre orientovat a je dobre dokumentovany.
Re: No …
celé vláknoRe: No …
celé vláknoMožná Vám to ušlo, ale pro jistotu bych Vám rád připomněl, že Interbase byl komerční projekt, který byl vyvíjen uzavřeně a interně. A když byl tuším někdy po roce 2000 darován Borlandem open source komunitě, dokumentace tomu odpovídala.
Mimochodem, právě dokumentace je dokonalým důkazem neshcopnosti open source vývoje Firebirdu. Jediná rozumná dokumentace, od které se můžete odpíchnout je manuál psaný Borlandem. Nějaká ucelená a rozumná dokumentace pak od open source vývoje neexistuje, takže celkem není divu, že Firebird postupně upadá do zapomnění. A možná, že celá 28-letá historie Firebirdu dopadne tak, že o jeho likvidaci se postará až open source komunita zanedbávající dokumentaci tak brutálně, jak se to jinde nevidí.
PostgreSQL je mladší projekt, než Firebird/Interbase, a také s multiplatformovostí měli dlouho velmi výrazné problémy. Že je kód přehlednější, když prostě natvrdo (tedy nemultiplatformně) volali UNIX api, to je celkem nabíledni spolu s mladším stářím projektu a otevřeným stylem vývoje.
Re: No …
celé vláknoMimochodem, právě dokumentace je dokonalým důkazem neshcopnosti open source vývoje Firebirdu. Jediná rozumná dokumentace, od které se můžete odpíchnout je manuál psaný Borlandem. Nějaká ucelená a rozumná dokumentace pak od open source vývoje neexistuje, takže celkem není divu, že Firebird postupně upadá do zapomnění. A možná, že celá 28-letá historie Firebirdu dopadne tak, že o jeho likvidaci se postará až open source komunita zanedbávající dokumentaci tak brutálně, jak se to jinde nevidí.Čtete firebirdí Release Notes? Přijdou Vám nějak neúplné nebo nedostatečné? Já myslím, že jejich editorka odvádí výbornou práci. Aha. Já zapomněl. Vy si nechcete koupit její knížku, přestože ta kniha je tisíckrát lépe napsaná než celá ta slavná dokumentace k PHP a MySQL. :-)
Re: No …
celé vláknoNo mne nic neuniklo. To vy jste tvrdil:
Takový Firebird vzniknul na unixech, pak ho adoptoval Borland a bez problémů jel na Windows, a pak se zase roztáhnul v platformách – je to naprosto jiná ukázka toho, jak se programuje multiplatformní kód.Tak si to nejdrive ujasnete vy co je Firebird a Interbase, kdyz mne to pak omlacujete o hlavu. Co ja tvrdim je to, ze neni pravda, ze to bylo jednoduche, jak si myslite a trvalo to nekolik verzi(let) nez se to zadarilo.
Dale bych Vas rad upozornil, ze neexistuje nic jako UNIX api. Existuje neco cemu se rika ANSI C a POSIX. Obe tyto normy slouzi k tomu, aby bylo mozno psat prenositelne aplikace. To ze na windows POSIX api je rozbite to je proste fakt a pak je nutne si ho tam dopsat.
Dale bych Vas rad upozornil, ze Postgres tak Interbase vznikali obe v 80. letech takze tvrzeni, ktera databaze je mladsi je irelevantni.
Re: No …
celé vláknoLenin
celé vláknoPěkně od začátečníků po pokročilé :-). Jako problém vidím, že ty články byly jenom o open source databázích a byly málo edukativní, takže to sloužilo jenom omezenějšímu počtu čtenářů.
Hodně úspěchů a štěstí autorovi.
pěkné
celé vláknoRe: pěkné
celé vláknoUž se klepu :-)
Re: pěkné
celé vláknoProvádíme následující dotaz:
BEGIN
SELECT sum(castka) FROM aktiva;
SELECT sum(castka) FROM pasiva;
COMMIT
Zároveň na serveru probíhá vkládání dat tímto způsobem (předpokládáme vždy shodu částek jdoucích na aktiva a pasiva):
BEGIN
INSERT INTO aktiva (castka) VALUES (1234)
INSERT INTO pasiva (castka) VALUES (1234)
COMMIT
Při úrovni izolace READ UNCOMMITED "vidí" SELECT i data z neuzavřených transakcí. Proto se může stát, že uvidíte vloženo těch 1234 v tabulce aktiva, ale ještě nebude totéž vloženo do tabulky pasiva. Pozmínka: také se může stát, že transakce měnící obsah tabulky neskončí potvrzením (COMMIT) ale zrušením (ROLLBACK), a vy jste data přesto uviděl a načetl. To bývá také nežádoucí.
Při úrovni izolace READ COMMITED vidíte jen data z potvrzených (commited) transakcí. Proto bude součet aktiv a pasiv vždy stejný. Problém je vyřešen. Jenže... Naše transakce se SELECTy provádí čtení dvěma dotazy. Může to dost dobře dopadnout to takhle:
1. prvním SELECTem vypočtete sumu z tabulky aktiva (a suma z tabulky pasiva bude v tu chvíli stejná)
2. pak někdo jinou transakcí aktualizuje tabulky aktiva i pasiva
3. Vypočtete sumu z tabulky pasiva, ale už tam budete mít započtené změny učiněné v kroku 2. Aktiva v tuhle chvíli budou opět sedět s pasivy, ovšem hodnoty už budou dávno odlišné. Oops, pořád máme problém.
Co s tím? Naštěstí tu máme úroveň izolace SERIALIZABLE. Na téhle úrovni izolace se DB tváří, jako kdyby byla vždy vykonána celá transakce, a teprve poté začala další transakce (což řeší náš problém popsaný v u READ COMMITED).
Typická implementace úrovně SERIALIZABLE vypadá tak, že (navíc proti nižším úrovním izolace) transakce provádíte najednou, ale při čtení si zamknete záznamy v DB. Když se je pak někdo snaží změnit, jeho transakce musí čekat, dokud není zámek odstraněn. Pokud transakce na zámek nenarazí, může být uskutečněna. Asi není třeba říkat, že práce se zámky je pro dospělou DB s hromadami transakcí probíhajících v jednom čase klíčovou záležitostí.
Mohli bychom si povídat ještě o snapshotech (verzování polí DB a řešení konfliktů až při commitu), příčinách a řešeních deadlocků (třeba wait-for graph), třífázovém commitu (používá se v heterogenních a distribuovaných systémech), a spoustě dalších krásných věcí. Jenže na to nemám čas, a navíc je sdílení vědomostí obtížné a nevděčné.
Pro vaši informaci teoretické základy pro vznik RDBMS byly položeny Edgarem Coddem někdy v sedmdesátých letech, a implementace se začaly šířit v letech osmdesátých. Na začátku Coddova práce mohla působit jako neškodná akademická hříčka. Dnes na ní stojí veliký kus IT světa.
Pokud chcete více informací, sežeňte si dokumentaci k MS SQL Serveru. Koncepty jsou tam vysvětlené tak, že to musí být jasné i slepému. Alternativou jsou skripta, wikipedia nebo učebnice.
Re: pěkné
celé vláknoRe: pěkné
celé vláknoIT je svým způsobem řemeslo, a jako ostatní řemesla zaslouží kvalitní provedení. Co byste si myslel o instalatérovi, který nezná základy svého řemesla? A co si myslíte o člověku, který bez znalosti základů svého řemesla špatně navrhne DB (porušení normálních forem), a/nebo špatně navrhne aplikaci (s race conditions), a/nebo aplikaci napíše nebezpečně (umožní SQL injection)? Takový člověk dělá ostudu sobě i celému odvětví, a ještě často způsobí škody.
Re: pěkné
celé vláknoRe: pěkné
celé vláknoTesat do kamene.
Re: pěkné
celé vláknoRe: pěkné
celé vláknoRe: pěkné
celé vláknoRe: pěkné
celé vláknoSpíš bych řekl, že veliký kus světa stojí nad zpotvořeninou Coddovy práce. Přečtěte si Třetí manifest od Datea a Darwena a pochopíte.
Re: pěkné
celé vláknoautora si vazim, presto bych rad videl
celé vláknoObavam se, ze zadne statistiky nema.
Re: autora si vazim, presto bych rad videl
celé vláknoŽádné statistiky ohledně kolizí nemám - podkladem je prezentace Toma Lanea.
Re: autora si vazim, presto bych rad videl
celé vláknoRe: autora si vazim, presto bych rad videl
celé vláknoProblém je v tom, že aplikace (a zvláště ty webové) píší často lidé bez základních znalostí a schopností. Doma jim ten eshop fungoval, zákazník si to také zkusil, tak co. Jenže jak uváděl kolega Stěhule, až přijde vánoční špička, může majitel mít shopu vrásky na telefonu rozzlobené zákazníky, a na čele hluboké vrásky. Proto je pro zákazníka lepší pracovat s profesionály, a ne s garážovými firmami.
Re: autora si vazim, presto bych rad videl
celé vláknoOsobně bych se na profesionalitu profesionálů až tak moc nespoléhal. Zvláště v IT - ty zásadní chyby jsou odstraněné cca až v druhé, třetí verzi (např. u ekonomických aplikací Oraclu se na některé chyby narazí dodnes). Problémy (výkonnostní) bývají také s docela starými aplikacemi, které mají vlastní systém zamykání záznamů, vlastní systém synchronizace, a moderní databázi používají jen jako nosič.
Určitě už je situace o dost lepší než třeba před deseti roky, kdy byla tristní, ale že by se psaly perfektní aplikace (na první pokus) - hmm, tak o tom nic nevím. I velké firmy zaměstnávají jenom lidi - a jen minimum firem má tak nastavený testovací proces, že třeba chyby souběhu dokáže včas zastavit. Nemluvě o bezpečnostních chybách.
Re: autora si vazim, presto bych rad videl
celé vláknoGarážová firma nemusí nutně dělat věci špatně. Ovšem dobrá garážová firma se z té garáže dostane (byť asi neskončí tak vysoko, jako MS), kdežto patlalové v garáži typicky zůstanou (i z toho existují výjimky). U garážové firmy má nezkušený zákazník veliké riziko, že se spálí.
Profesor nemusí být automaticky vhodná osoba. Když budu potřebovat něco svařit na stavbě, profesor ze stavební fakulty může být tím nejhorším kandidátem. Podobně teoretický informatik může být pro tvorbu eshopu ztracený případ. A když vidím některé profesory, jak zápasí se zasunutím klíčenky a spuštěním PPT prezentace... Třikrát se nestrefí do USB konektoru, minutu hledá soubor v Exploreru, pak na něj klikne, zamyslí se, jde do menu File, a vybere položku Open. Přednášet problematiku ze sedmdesátých let zvládne v podstatě stejně úspěšně, jako udržet vlastní moč, ale rozhodně bych si ho nenajmul. Uživatele Lenin POWER! osobně neznám, ale pokud by měl kvalifikaci a reference (což asi má), tak bych mu vývoj dost možná svěřil.
Svět IT má svá specifika, díky kterým perfektní aplikace na první pokus dost možná nebudeme psát nikdy. Ovšem to nijak neospravedlňuje patlání bez znalosti základů řemesla.
Re: autora si vazim, presto bych rad videl
celé vláknoRe: autora si vazim, presto bych rad videl
celé vláknoRe: autora si vazim, presto bych rad videl
celé vláknoq1p7Mk cogfvqumjagx, [url=http://qhsnpvtqwgju.com/]qhsnpvtqwgju[/url], [link=http://iwbznmxhnair.com/]iwbznmxhnair[/link], http://awrsvbkyhbmz.com/
Re: autora si vazim, presto bych rad videl
celé vláknoq1p7Mk cogfvqumjagx, [url=http://qhsnpvtqwgju.com/]qhsnpvtqwgju[/url], [link=http://iwbznmxhnair.com/]iwbznmxhnair[/link], http://awrsvbkyhbmz.com/
Re: autora si vazim, presto bych rad videl
celé vláknoAle mozna, ze jste chlap s gulema, a mozna treba i inzenyr a ne nejaka IT-slecinka, tak se nestydte a hodte sem ty statistiky tech kolizi v beznych softwarovych systemech rozdelene podle velikosti systemu, poctu uzivatelu, branze apod. Vypravejte nam o tech call centrech, kde delaji telefonistky na tech samejch zaznamech. (ano, takovy nesmysl je mozno zakaznikovi prodat, ale musi to navrhnout asi nekdo jako vy - samozrejme, ze budou dodrzeny normalni formy :-) )
Ale jestli ty statistiky nemate, tak vam rikam, ze kseftujete s citronama.
Re: autora si vazim, presto bych rad videl
celé vláknoHlavně se snažte vyvíjet někde hodně daleko od mě, a nedělejte nic, na čem opravdu záleží. Ti lepší patlalové se časem doučí (ti nejlepší se učí celý život). Ti horší patlají, dokud je nedostihne dost velký průšvih.
Ještě na okraj. Jeden takový patlal zabil 5 lidí, když si nevšiml race conditions u SW pro ozařovač Therac-25. Možná také čekal na statistiku počtu mrtvých pacientů podle jejich velikost, počtu ozařování a lokace nemocnice ;)
isolation levels
celé vláknoDB2 umi v 9.7 Oracle 'statement snapshot' read commited isolation level. Stejne jako Oracle tak i DB2 emuluje MVCC, ale nepouziva block level snapshot ale ARIES.
Clanek by chtelo rozdelit na vic dilu:jeden o races, druhy o transakcich a isolation levelech, treti o zamykani s probranim lock avoidance strategii. Skoda ze s tim autor seknul, ale chapu ho.
Re: isolation levels
celé vláknoRe: isolation levels
celé vláknoRe: isolation levels
celé vláknoVse je to zavisle na UNDO. Tzn. modifikovane bloky se ziskavaji z UNDO a u jiz commitnutych transakci se muze stat, ze se pubvodni bloky prepisou a nepodari se je v UNDO dohledat (snapshot too old). Zalezi tedy na nastaveni velikosti UNDO a undo retention time.
Obecne se jedna spis o problem dlouho bezicich query nad modifikovanymi daty.
Klasicky pripad je napr. commit v cyklu namisto po cele transakci.
Jde proste o to, ze po commitu jsou UNDO bloky uvolneny pro dalsi pouziti, pak uz je to jen o te velikosti UNDO a jeho nastaveni. Proste dokud neprovedu commit, tak jsou bloky v undo v bezpeci. :-)
Pri dostatecne sizovanem undo je mozne klidne vytahnout obraz tabulky nekolik dnu zpetne.
U rozsahlych modifikaci se muze stat naopak to, ze se modifikovane bloky jiz do UNDO nevejdou a cela transakce spadne na unable to extend undo segment.
Re: isolation levels
celé vláknomssql ani db2 tyhle problemy nemaji, je to zasadni oracle missdesign ktery ma snad od nepameti. Meli by to u oraclu uz konecne predelat takhle je to zbytecnej opruz.
Re: isolation levels
celé vláknoRe: isolation levels
celé vláknoRe: isolation levels
celé vláknoPohled do New Features Guide říká:
[url]http://download.oracle.com/docs/cd/B28359_01/server.111/b28279/chapter1.htm#FEATURENO07519[/url]
[b]1.2.9.3 Finer Grained Dependencies[/b]
In previous releases, metadata recorded mutual dependencies between objects with the granularity of the whole object. For example, PL/SQL unit P depends on PL/SQL unit Q or that view V depends on table T. This means that dependent objects were sometimes invalidated when there was no logical requirement to do so. For example, if view V depends only on columns C1, C2, and C3 in table T and a new column, C99, is added, the validity of view V is not logically affected. Nevertheless, in earlier releases, V was invalidated by the addition of column C99.
Oracle Database 11g records dependency metatdata at a finer level of granularity so that the addition of C99 does not invalidate view V. Similarly, if procedure P depends only on elements E1 and E2 in package PKG, then if element E99 is added to PKG, procedure P is not invalidated. (In Oracle Database 10g, this change to PKG would invalidate procedure P.)
Více viz: [url]http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/dependencies.htm#CHDJIIFC[/url]
Re: isolation levels
celé vláknoRe: isolation levels
celé vláknooracle 11
celé vláknoRe: isolation levels
celé vláknoKrome toho. Pokud uvazujeme dlouho bezici dotaz. Databaze preci nemuze dopredu vedet, ze ten konkretni blok v undo bude potrebovat. Ted konkretni blok se muze zmenit tisickrat. Pokud dotaz pobezi nekolik hodin tak databaze nema sanci podchytit, ktere bloky potrebovat bude a ktere se zmeni a bude je muset dotahnout z UNDO. To uz je vlastni resultset. ;-)
Snapshot too old je obecne problem v nastaveni DB(UNDO) nebo v navrhu aplikace.
Re: isolation levels
celé vláknoRe: isolation levels
celé vlákno- oba dva umi statement snapshot MVCC emulaci
- db2 nepotrebuje UNDO segmenty
- db2 umi libovolne dlouhe transakce (od v8)
- db2 navic diky ARIES ani nepotrebuje hard checkpointy (flush datapages)
Takze tohleto je dukazem ze se to MVCC-like prostredi poradne naprogramovat da aniz by se musely heuristicky nastavovat parametry u UNDO segmentu (ktery ani db2 nema). Nizsi administrativni zatez databaze je pochopitelne vyhoda, stejne tak je vyhoda ze se o toto nemusi starat aplikace a muze si delat transakce dlouhe jak je libo (ackoliv delsi mohou potencialne vice lehnout na deadlock pri kolizi s ostatnimy transakcemi). O jakou dulezitou vlastnost oraclu je implementace v db2 ochuzena? kill session db2 umi (rika se tomu v db2 terminologii force application).
Ja nevim lidi mne pripada ze snad vubec neumite pracovat s informacemi, co vam na tom jeste neni jasne?
Re: isolation levels
celé vláknoDiky tomu, ze oracle nezamyka bloky ani tabulky vam nemuze nastat deadlock kdyz db zacnou dochazet zamky. Proste neni to ani lepsi ani horsi je to proste jinak. Jedine co s tim muzete delat je dekovat Bohu ze vymyslel JDBC, diky kteremu se tyhle rozdily mezi databazemi zastiraji a programatori v JAVE na takovehle veci vubec nemusi myslet :)
Re: isolation levels
celé vláknoRe: isolation levels
celé vláknoRe: isolation levels
celé vláknoMyslim, ze je zbytecne to rozebirat. Vase argumenty vypovidaji jen o neznalosti DB Oracle. :-) S prominutim.
Re: isolation levels
celé vláknoRe: isolation levels
celé vláknoNicmene mozna jde opravdu o uhel pohledu. Puvodne byla ma reakce na snapshot too old a jeho vysvetleni.
Vyzkousejte mi nejak vysvetlit v cem ono omezeni/chyba spociva?
Btw: Ktery produkt nema nejake omezeni. Urcite je lepsi o tech omezenich vedet aby clovek
mohl produkt efektivneji pouzivat a vyhnout se zbytecnym prekvapenim. Nebo to tak neni? :-)
Obvykle ma kazde omezeni nejaky duvod. V jednom smeru to neco prinese a z jine strany zese naopak.
Imho znalost omezeni produktu (at uz je to treba databaze) je soucasti znalosti produktu jako celku.
Nebranim se tomu, ze Oracle ma necnosti.. to urcite ma. Ale nesouhlasim s tim tak jak je popisovano chovani UNDO, protoze tak to nefunguje. :-)
race condition
celé vláknoPri spravnem povedomi jak DB pracuje musi vyvojar takovou situaci predpokladat.
Tzn. jak bylo zmineno (Oracle, Postgres) pouzit for update
Jinak vlastni simulace je vcelku jednoducha rekl bych.
Pokud tim "obtížně se simuluje" nebyla myslena uz vysledna aplikace. :-)
Kvalitní článek
celé vláknoOdstranovani verzi radku ve FB
celé vláknoJC

