[python] Lock

Jan Bednařík jan.bednarik na gmail.com
Pondělí Únor 9 21:13:20 CET 2015


2015-02-09 18:50 GMT+01:00 Petr Messner <petr.messner na gmail.com>:

> V čem není InnoDB ACID, při nastavení patřičného isolation levelu?
>


InnoDB má solidní bug v transakcích, kvůli kterému nesplňuje ACID. Neumí
udělat rollback ALTERu, takže ALTER se autocommituje vždy, i když zbytek
transakce se normálně rollbackuje. Dříve či později na to narazí každý, kdo
dělá migrace databáze. V horším případě to skončí ztrátou dat a rozbitím
databáze (osobní zkušenost).

Bug je již témeř 8 let nahlášen a nikdo ho evidentně neřeší:
http://bugs.mysql.com/bug.php?id=28727

Honza



>
> PM
>
> Dne pondělí 9. února 2015 Jan Bednařík <jan.bednarik na gmail.com> napsal(a):
>
> Jestli potřebuješ aplikaci, která je nezávislá na druhu databáze, použij
>> SQLAlchemy, která ti poskytne abstrakci nad různými databázovými backendy.
>>
>> Jinak na myisam i innodb je špatné to, že nejsou ACID a dříve nebo
>> později tě někde pořádně vypečou. Jak už psal Honza Král, 99% problémů s
>> databází je MySQL. Jestli neděláš jen nějaký hobby projektík pro sebe,
>> použij raději PostgreSQL.
>>
>> Honza
>>
>>
>> 2015-02-09 17:36 GMT+01:00 mtip <mtip na atlas.cz>:
>>
>>>  Já tedy nevím, co je třeba na myisam špatného pro práci s penězi.
>>> 1. Potřebuju aplikaci, která je více nezávislá na druhu databáze.
>>> 2. Transakce pro write to neřeší, jedině read a tu vzhledem k možné době
>>> trvání zámku nechci použít
>>>
>>> Nicméně už sem to vyřešil jednoduše viz tip Honzy:
>>>
>>> >A samozrejme, jako vzdy, je lepsi varianta bezzamkova:
>>> >"UPDATE Zaplaceno = 1 FROM platby WHERE id=%s AND Zaplaceno = 0"
>>>
>>> Mirek
>>> --------------------------------
>>> 9. února 2015, 17:10:21, napsal jste:
>>>
>>>  Transakce jsem použít nechtěl, protože databáze nemusí být innodb
>>> dokonce ani mysql.
>>>
>>>
>>> Takové databáze jsou pro aplikace pracující s penězi nejlepší. Už chybí
>>> jen náhodné mazání uložených dat.
>>>
>>> PM
>>>
>>> _______________________________________________
>>> Python mailing list
>>> python na py.cz
>>> http://www.py.cz/mailman/listinfo/python
>>>
>>> Visit: http://www.py.cz
>>>
>>
>>
> _______________________________________________
> Python mailing list
> python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
> Visit: http://www.py.cz
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://www.py.cz/pipermail/python/attachments/20150209/afe8e82b/attachment.html>


Další informace o konferenci Python