Zadejte hledaný výraz...
Jakub Glos
Webtrh.cz
Vývoj webových stránek na WordPressu a proklientský přístup pro freelancery
Třídenní infromacemi nabitý prezenční + online kurz v Praze od Webtrhu pouze za 2 871 Kč
Více informací

PostgreSQL vs MariaDB – cluster

Potřeboval bych zjistit pár věcí k DB clusteringu. Nějaké informace jsem si už zjistil a v zásadě mi zůstaly dvě databázové platformy o kterých uvažuji k reálnému nasazení.
Primárně mi jde o kombinaci HA clusteru a load balancingu. Tedy aby v případě výpadku jednoho serveru byl druhý schopný převzít veškeré činnosti (zápis i čtení) a současně v době kdy jede vše OK bylo možné mezi tyto servery zátěž rozložit (spíše zatím teoretická úvaha). Podle toho jak jsem to pochopil je tedy pro mě podstatný tzv. multi master cluster.
PostgreSQL
Musím říci, že vzhledem k vyspělejším možnostem používání a i ke stabilitě odezvy s ohledem na narůstající zátěž je mi sympatičtější. Na druhou stranu oficiálně podporuje pouze master-slave cluster, což neřeší můj problém. Existují 3rd produkty, mezi nejzajímavější asi patří Pgpool-II nebo Bucardo, které master-master replikaci umí.
MariaDB
O tom, že má oproti Postgres omezenější možnosti vím, nicméně pro konkrétní zamýšlené nasazení to není zas takový neřešitelný problém. Zaujal mě zde konkrétně Galera Cluster, který umí rovněž multi master cluster a hlavně jej umí nativně jak jsem pochopil.
No a teď proč píšu. Má někdo s nasazením těchto db do clusteru zkušenosti? Nakolik je reálné provozovat s těmito db multi master.
Teoretický scénář by byl přibližně tento:
- bude se jednat o webovou aplikaci, kde budou uživatele zadávat své data
- každý uživatel bude mít svoji vlastní DB, tedy reálně by neměla přesáhnout velikost 1GB
- současně by s aplikací mohlo pracovat v řádu stovek až jednotek tisíc uživatelů současně, s tím, že každý uživatel by pracoval jen se svou db.
- servery budou ve dvou geograficky oddělených místech (dejme tomu Praha a Brno), v případě, že jedna lokalita vypadne, je požadavek na to, aby byl výpadek minimální
- současně je požadavek na aktuálních datech na všech serverech s co nejmenší časovou prodlevou
Děkuji za návrhy :-)
25. 2. 2015 12:20:16
https://webtrh.cz/diskuse/postgresql-vs-mariadb-cluster/#reply1093900
Tom
verified
rating uzivatele
(7 hodnocení)
25. 2. 2015 12:33:33
Nevím co chceš slyšet navíc, když jsi to sám napsal. Z logiky věci master <> master replikace není nikdy spolehlivá. Vždy je tam nějaká latence, raději bych šel do master <> slave a v případě výpadku přepnout slave na master a po recovery nahodil původní master jako slave.
Praktickou zkušenost mám s nosql databázema a ty cluster mají prakticky všechny v základu. Zbývá tedy říct si jestli skutečně potřebuješ sql databázi.
Další věc je každý user, vlastní db - teoreticky to db zvládnou, ale je otázka jak rychle. Určitě bude zajímavé řešit si bezpečnost per databaze a user, ale raději bych volil jiný systém (jedna databaze, ruzne prefixy, atd)
25. 2. 2015 12:33:33
https://webtrh.cz/diskuse/postgresql-vs-mariadb-cluster/#reply1093899
Limitujicim faktorem a problemem realizace bude vzdalenost lokalit "po siti". V pripade A/A DB clusteru potrebujete, aby jejich vzajemna komunikace byla co nejrychlejsi
Mozna byc vazoval o GEOclusteru na bazi vmWare - http://www.master.cz/zivy-server/ a clustroval na urovni virtualizace a diskovych poli, ne na urovni databaze ( je to v rezimu A/P - vzdy bezi 1 nod). Zbavite se jedne vrstvy, ktera muze zpusobovat roblemy a komplikace. Zase to muze prinaset problemy jine.
25. 2. 2015 12:39:08
https://webtrh.cz/diskuse/postgresql-vs-mariadb-cluster/#reply1093898
No chci slyšet právě třebas to, jestli je to reálně a která z těch db to má lépe zvládnuté, popřípadě jestli je to jedno. Ale díky za ten poznatek s master-master. Aktuálnost dat je důležitá, takže asi budu muset přemýšlet jinak. To řešení s master-slave nezní špatně. To jsem sice nezmínil, ale to mě taky zajímalo, jak se v tomto scénáři vrací vše do normálu (protože zákonitě pokud master vypadne, již nebude mít data aktuální).
Jinak k těm jednotlivým db. Je to z důvodu bezpečnosti. Nejen oprávnění, ale i v případě nějakého poškození db. Na druhou stranu není zas předpoklad, že by ty dotazy byly nějak časté - pouze co zvládne jeden uživatel v rámci své relace. Celé je to koncipováno jako REST API aplikace.
---------- Příspěvek doplněn 25.02.2015 v 12:47 ----------
2vdusek: díky! to taky nevypadá zle, určitě si k tomu zjistím nějaký info
---------- Příspěvek doplněn 25.02.2015 v 12:55 ----------
Jinak teda případné velké množství db by se v případě PostgreSQL dalo řešit přes schémata, tedy jeden uživatel jedno schéma. Je otázkou, zda by ten rozdíl ve výkonu byl nějak jiný.
25. 2. 2015 12:45:23
https://webtrh.cz/diskuse/postgresql-vs-mariadb-cluster/#reply1093897
Petr Soukup
verified
rating uzivatele
(5 hodnocení)
25. 2. 2015 13:18:51
Používali jsme asi před dvěma roky MariaDB v režimu master-master-master a fungovalo to překvapivě dobře. Předpokládám, že to od té doby vylepšili. Rozhodně to fungovalo lépe než klasický Mysql cluster - ten totiž těžce trpěl na sebemenší latence. MariaDB (resp galera) je oproti tomu stavěná na provoz v různých lokacích.
Samozřejmě ale taková architektura není úplně praktická, takže pokud je jiná možnost, tak bych to raději řešil klasicky master-slave.
25. 2. 2015 13:18:51
https://webtrh.cz/diskuse/postgresql-vs-mariadb-cluster/#reply1093896
Tom
verified
rating uzivatele
(7 hodnocení)
25. 2. 2015 13:35:53
Napsal mytrix;1171553
To jsem sice nezmínil, ale to mě taky zajímalo, jak se v tomto scénáři vrací vše do normál
Vracíš klasicky prázdný server který se sám sesynchronizuje, jakmile je připojený k masteru - je tam tedy omezení v rámci doby, kterou potřebuje na úplnou synchronizaci. A taky to, že omezený čas jsi prakticky bez online zálohy. Na druhou stranu máš obrovský benefit v tom, že data jsou vždy 100% stejná
25. 2. 2015 13:35:53
https://webtrh.cz/diskuse/postgresql-vs-mariadb-cluster/#reply1093895
Pro odpověď se přihlašte.
Přihlásit