Portál AbcLinuxu, 7. května 2025 02:13

Dotaz: chytra mysql proxy

13.6.2016 16:02 masi
chytra mysql proxy
Přečteno: 1374×
Odpovědět | Admin
Zdravim,

hledam zpusob jak mit jednu lokalni db pouze pro cteni a druhou vzdalenou pro to ostatni. Bohuzel aplikace pro kterou to resim to neumi a nikdy umet zrejme nebude.

Zajimalo by me, zda toto nekdo nejak vyresil, ci nikoli. Primarnim cilem je urychlit praci v dane lokalite a zajistit konzistenci dat. Galera cluster vzhledem k latencim neni podle me vhodna, protoze by to v dusledku mohlo zpomalit vsechny repliky (latence jsou cca od 800ms). Nejlepsi reseni je podle me zajistit klidne i zpozdenou repliku do danych lokalit. A nejakou "chytrou proxy", ktera pozna, ze jde o cteni a pak se diva lokalne, nebo jde o cokoli jineho a preposle sql vzdalene. Zatim me zaujal mysql-router, ale zrejme to neni presne ono a neumi to co potrebuju.

Technologicky to neni hezke a uz vubec ne spravne reseni, ale udelat tuto logiku, kde se ma (v alikaci) vzhledem k nabobtnalosti a korenum aplikace nelze.

predem dekuji za tipy
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

13.6.2016 16:37 dustin | skóre: 63 | blog: dustin
Rozbalit Rozbalit vše Re: chytra mysql proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
MaxScale?

Zatím nemám praktické zkušenosti, ale jednou na něj či něco podobného dojde...
13.6.2016 21:28 masi | skóre: 4
Rozbalit Rozbalit vše Re: chytra mysql proxy
Ahoj,

moc diky. Na tohle jsem taky narazil, ale neprislo mi ze je to ono, nicmene jsem na to koukl znovu a mas naprostou pravdu!!!! To muze byt ono. Pokud se to pouzije tak, ze mas mastery a slave (Readwritesplit) a nenastavis parametr master_accept_reads=true, tak to by default dela to co chci. Jen nastavim v kazde lokalite, ze slave je lokalne a musi to slapat.

Jeste jednou diky, zkusim to a dam sem vysledek, jestli nezapomenu :-)
Bedňa avatar 13.6.2016 21:47 Bedňa | skóre: 34 | blog: Žumpa | Horňany
Rozbalit Rozbalit vše Re: chytra mysql proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Toto je nejaký renons? Čo tak mať databázu vonku a posielať tam len lokálne zmeny aby proste nad ňou prebehly len zmeny ako na lokále.

Takže len replikuj zmeny na diaľku na čo sa dá v PHP, alebo inom skriptovacom jazyku naísať jednouchý skript. Riešiť to na úrovni databazy je dosť hardcore riešenie.
KERNEL ULTRAS video channel >>>
28.6.2016 16:14 lazywriter
Rozbalit Rozbalit vše Re: chytra mysql proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jen je potreba dat pozor, aby ta aplikace pocitala s latenci. Pokud napr. udaj edituje a pak vypise tak, ze se na nej zepta znovu DB. Napr. je resena pohledem, ktery je stejny pro zobrazeni udaje pred i po editaci. Tak se muze stat, ze upraveny udaj jeste nebude zreplikovany. Coz muze byt pro uzivatele matouci. Editace se zdanlive neprovede a pritom udaj v masteru uz bude novy. A pujde to slozite ladit. Pri nizke latenci se nemusi projevit, pro vyssi (at uz z duvodu vetsi zateze nebo treba pomalejsiho prenosu) se teprve zacne projevovat.

A v pripade, ze aplikace rezim master/slave nepodporuje, je dost pravdepodobne, ze nebude pocitat ani s moznou latenci mezi modifikacnimi dotazy a selectem.
1.7.2016 17:56 Sniper
Rozbalit Rozbalit vše Re: chytra mysql proxy
Odpovědět | | Sbalit | Link | Blokovat | Admin
To, co hledas se jmenuje RW splitting a je to docela bezne reseni, bohuzel malokdy opensource. Existuje projekt dokonce primo od MySQL s nazvem mysqlproxy, ktera presne tohle umi (krome milionu dalsich veci) a da se to jednoduse naskriptovat v Lue. Zkousel jsem to a mel jsem s tim problemy se stabilitou, dost to padalo kdyz jsem tim prohnal nekolik GB dat.

Websupport udelal projekt RUM, kterej to taky umi, ale s tim jsem nepracoval. Jinak galera je nepouzitelna pokud to nemas na stejny siti, diky synchronni replikaci se s potvrzenim pozadavku ceka na potvrzeni zapisu od vsech nodu = velmi snadno se tam premnozi spojeni na DB.
1.7.2016 17:57 Sniper
Rozbalit Rozbalit vše Re: chytra mysql proxy
Jinak vzdalenou repliku udelas normalne pres mysql replication master - slave, aplikace o tom vubec nevi.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.