Postfix - mailbox nebo maildir?

Re:Postfix - mailbox nebo maildir?
« Odpověď #30 kdy: 11. 02. 2015, 10:29:42 »
ACID. Clovek ma zalohu suborov tak, ako by ich videl, keby v tom momente vypadol prud (to sa tiez nestihne flushnut alebo dokoncit transakcie).
Z toho by sa slusna databaza s transakciami mala spamatat bez nejakych nekonzistencii.

Až na to, že MySQL není ACID. Pokud nějaká databáze používá výhradně InnoDB, tak se možná dá uvažovat o tom, že tato konkrétní db v rámci serveru acid splňuje, ale MySQL jako celek ne. Už jen proto, že nelze vypnout MYISAM, která je na (nejen) systémové věci prostě povinná.


j

Re:Postfix - mailbox nebo maildir?
« Odpověď #31 kdy: 11. 02. 2015, 12:55:49 »

Abych to zkratil.

Myisam - je nutne pouzit flush tables with read lock; set global read_only = on; a pote provest snapshot.
Innodb - staci provest snapshot a pri obnoveni pri startu mysql pockat az provede co potrebuje podle logu.

Nechapu v cem vidis problem a kde muze vznikat nejaka nekonzistence dat, snapshot fs je z principu to same jako vypadek napajeni.

Abych to zkratil, netusis o cem plkas.

Koukam ze ses vazne odpornik ... tvle je uplne jedno jakej model pouzivas, snap fs bude vzdy nekonzistentni. A zamceni pro zapis je ti howno platny. Musis flushnout data na disk. V pripade transakcnich veci musis dokoncit probihajici transakce. K tomu se sice muzes pokusit mysql ruzne dokopat, ale "od prirody" to nijak negarantuje => pro jakykoli nasazeni kde na datech sejde je naprosto nepouzitelna.
ACID. Clovek ma zalohu suborov tak, ako by ich videl, keby v tom momente vypadol prud (to sa tiez nestihne flushnut alebo dokoncit transakcie).
Z toho by sa slusna databaza s transakciami mala spamatat bez nejakych nekonzistencii.

Clovek kupodivu zalohuje proto, aby ta data mel, ne proto, aby se spolehal na to, ze se to "nejak" vzpamatuje. Proto se zalohuji konzistetni data v konzistentnim stavu. A proto je na to treba databaze, ktera takovy stav umi zajistit. A zajistuje se to tak, ze databaze ma api (nebo integrovany nastroj), kde se rekne, ze chci zalohovat, databaze se postara o dokonceni transakci, pozastavi zapis do dat, udela se snap dat a pak se zapis znova povoli. A mimo jine se i proto davaji transakcni logy na jiny disk nez jsou data. Protoze ta databaze z hlediska uzivatele stale bezi (i pro zapis), jen se zapisuje docasne pouze do transakcniho logu.

Mluvit v pripade databaze o stavu "jako kdyz vypnes elektriku" muze leda pomatenec. Proto se kupodivu porizuji UPS, aby takovy stav nenastal. A dela se to proto, ze takovy stav rozhodne konzistetni data nezaruci, a zadna databaze na svete nezaruci to, ze se po podobnem vypnuti da jeste s daty pracovat. To ze to vetsinou "nejak funguje" neznamena vubec nic.

Az budes mit data ktery ti nekdo ohodnoti na desitky/stovky mega, tak si popovidame.

Kolemjdoucí

Re:Postfix - mailbox nebo maildir?
« Odpověď #32 kdy: 11. 02. 2015, 13:59:36 »
zadna databaze na svete nezaruci to, ze se po podobnem vypnuti da jeste s daty pracovat.

Zaručí to všechny které mají D z toho ACID a platí to pro data transakcí které dosáhly stavu commited.

Ivan

Offtopic: Re:Postfix - mailbox nebo maildir?
« Odpověď #33 kdy: 11. 02. 2015, 14:17:53 »
A proto je na to treba databaze, ktera takovy stav umi zajistit. A zajistuje se to tak, ze databaze ma api (nebo integrovany nastroj), kde se rekne, ze chci zalohovat, databaze se postara o dokonceni transakci, pozastavi zapis do dat, udela se snap dat a pak se zapis znova povoli. A mimo jine se i proto davaji transakcni logy na jiny disk nez jsou data. Protoze ta databaze z hlediska uzivatele stale bezi (i pro zapis), jen se zapisuje docasne pouze do transakcniho logu.

Existuji i jine databaze nez MySQL. Ty opravdove, velke (ale i ruzne alternativni male). U tech bezi zaloha na pozadi na transakcich nezavisle. Zadny zapis dat se napozastavi ani nepovoli. Dokonce to muze zalohovat inkrementalne. A presto jsou ty zalohy konzistentni a dokonce umoznuji PITR (Point-in-time-recovery).

MySQL je tu uz s nami 15 let a porad je to takovej mladej frikulinskej cupr projekt. Takze mu vsichni radi odpusti ze jeste poradne nemaji vyreseny zalohovani anebo ze nedodrzuji zadnou normu SQL.

PS: sorry za flame, ale zkuste se podivat kolik je dneska na trhu databazi a porovnejte to s tim co umi MySQL.

j

Re:Postfix - mailbox nebo maildir?
« Odpověď #34 kdy: 11. 02. 2015, 16:57:20 »
zadna databaze na svete nezaruci to, ze se po podobnem vypnuti da jeste s daty pracovat.

Zaručí to všechny které mají D z toho ACID a platí to pro data transakcí které dosáhly stavu commited.

Nezaruci, nemuze. Databaze vubec netusi, jestli ta data uz na disku skutecne jsou. A tusit nemuze. Zapis na disk resi OS, a ani ten v realu nevi, zda data uz sou zapsana, nebo zda jsou v nejake cache. Prave proto se vsechny tyhle veci pripojujou na UPSky, a diskovy systemy maji zcela bezne jeste vlastni baterie - prave pro cache radice/disku.

Navic krome konzistence databazovy existuje jeste konzistence datova. Databaze muze byt perfektne konzistentni a nepozkozena, a presto jsou data v ni naprosto khownu.


prg

Re:Postfix - mailbox nebo maildir?
« Odpověď #35 kdy: 11. 02. 2015, 17:31:15 »
Nezaruci, nemuze. Databaze vubec netusi, jestli ta data uz na disku skutecne jsou. A tusit nemuze. Zapis na disk resi OS, a ani ten v realu nevi, zda data uz sou zapsana, nebo zda jsou v nejake cache.
fsync()
A ano, dalo sa to vypnut a niekto si potom pochvaloval nasobne zrychlenia. Az do prveho vypadku prudu.

Prave proto se vsechny tyhle veci pripojujou na UPSky, a diskovy systemy maji zcela bezne jeste vlastni baterie - prave pro cache radice/disku.
A UPSka nikdy nezlyha...

Navic krome konzistence databazovy existuje jeste konzistence datova. Databaze muze byt perfektne konzistentni a nepozkozena, a presto jsou data v ni naprosto khownu.
Napriklad? Nie je to vec programatora? (Tak mu treba, ked nepouziva transakcie)

aaa

Re:Postfix - mailbox nebo maildir?
« Odpověď #36 kdy: 11. 02. 2015, 17:50:26 »
Navic krome konzistence databazovy existuje jeste konzistence datova. Databaze muze byt perfektne konzistentni a nepozkozena, a presto jsou data v ni naprosto khownu.

Kdyz programator nepouziva transakce, tak tim bude trpet i zaloha pomoci dumpu.

Re:Postfix - mailbox nebo maildir?
« Odpověď #37 kdy: 11. 02. 2015, 17:54:59 »
Nezaruci, nemuze. Databaze vubec netusi, jestli ta data uz na disku skutecne jsou. A tusit nemuze. Zapis na disk resi OS, a ani ten v realu nevi, zda data uz sou zapsana, nebo zda jsou v nejake cache. Prave proto se vsechny tyhle veci pripojujou na UPSky, a diskovy systemy maji zcela bezne jeste vlastni baterie - prave pro cache radice/disku.

Boha jeho  >:(

Samozřejmě, že zaručí. DB klient pošle commit, db udělá zápisy co potřebuje a vydá směrem k fs příkaz fsync, fs pošle data na disk a vydá směrem k disku příkaz flush, disk zapíše potvrdí zápis, os potvrdí fsync a db potvrdí commit. (Zjednodušeně řečeno.)

Cache řadiče držená zvláštní baterkou s předchozím schématem má společného jen tolik, že se data neukládájí přímo na disk (což je samozřejmně pomalé), ale do paměťi řadiče a ten to až potom asynchronně zapíše na disk. Baterku to má proto, aby když vypadne proud a disky přestanou komunikovat, tak si ta data podrží v paměti a při další power on je zapíšou na ty disky.

Problém nastává v případech, kdy nějaký krok selže, tedy pokud disk potvrdí zapsání dat dřív, než je skutečně zapíše.  Nebo kdy DB potvrdí klientovi commit dřív, než dostane odpověď od OS apod. Pokud ale ty jednotlivé vrstvy pracují jak mají, je vše ok a v případě výpadku napájení se nic nestane. UPSky slouží spíše ke korektnímu vypnutí služeb a korektnímu ohlášení okolním systémům, že se jde vypnout.

dustin

Re:Postfix - mailbox nebo maildir?
« Odpověď #38 kdy: 11. 02. 2015, 18:02:40 »
Korektní dump innodb tabulek za běhu (samozřejmě se netýká myisam a memory tabulek) lze pomocí mysqldump --single-transaction.

Kolemjdoucí

Re:Postfix - mailbox nebo maildir?
« Odpověď #39 kdy: 11. 02. 2015, 18:11:34 »
Nezaruci, nemuze. Databaze vubec netusi, jestli ta data uz na disku skutecne jsou. A tusit nemuze. Zapis na disk resi OS, a ani ten v realu nevi, zda data uz sou zapsana, nebo zda jsou v nejake cache. Prave proto se vsechny tyhle veci pripojujou na UPSky, a diskovy systemy maji zcela bezne jeste vlastni baterie - prave pro cache radice/disku.

Na normálním PC/serveru jsou data po ukončení transakce buď fyzicky na plotně disku nebo v zápisové cache RAID zálohované baterkou a spolehnutí na to je, nevím kde je zase problém.

j

Re:Postfix - mailbox nebo maildir?
« Odpověď #40 kdy: 11. 02. 2015, 18:24:57 »
OK, du vysvetlit zakaznikum, ze ty statisice za UPSky sou vlastne vyhozeny prachy ... pisou to na rootu, tak to musi bejt pravda...

A co teprve ty miliony za licence na (konzitentni) zalohovani ...

Kolemjdoucí

Re:Postfix - mailbox nebo maildir?
« Odpověď #41 kdy: 11. 02. 2015, 18:28:36 »
UPS vyhozené prachy nejsou, jsou záležitosti které UPS potřebují.

Konzitentní zálohování je co přesně ?

Re:Postfix - mailbox nebo maildir?
« Odpověď #42 kdy: 11. 02. 2015, 18:33:56 »
OK, du vysvetlit zakaznikum, ze ty statisice za UPSky sou vlastne vyhozeny prachy ... pisou to na rootu, tak to musi bejt pravda...

A co teprve ty miliony za licence na (konzitentni) zalohovani ...

Statisíce a miliony nejsou zárukou ničeho. Viděl jsem projekty 60x předražené a prachy vyhozené na věci, které byly naprosto k ničemu a nakonec vlastně nepoužité. A viděl jsem, jak dotyčný se ani vteřinu nezamyslel a chystal se vypláznout dalšího čtvrt mega za další nesmysl, který šel řešit jen jiným uspořádáním již existujícího systému. V podstatě by to šlo jen do kapsy dodavateli, za nic.

dustin

Re:Postfix - mailbox nebo maildir?
« Odpověď #43 kdy: 11. 02. 2015, 22:17:23 »
A proč by se měl zamýšlet, když ty prachy nejsou jeho?