[ Tyler Durden @ 17.08.2010. 10:26 ] @
Da li se neko bavio ovim i sta moze da preporuci kao load balance rijesenje za MySQL?
Kakav je status MySQL proxy-ja, jer koliko vidim on moze da se iskoristi u master slave semama...
[ Miroslav Strugarevic @ 17.08.2010. 10:57 ] @
MySQL-Proxy deluje jako interesantno samo je problem to sto je jos uvek u nekoj non production fazi.. Mada nije ni to velika prepreka :)
[ bogdan.kecman @ 17.08.2010. 14:19 ] @
proxy je sto se kvaliteta tice vrlo upotrebljiv (koristi se kao modul u enterprise monitoru i radi 1/1). Ono sto nije sigurno je njegova buducnost kao "stand alone alata" posto postoje indicije da ce njegov razvoj da bude vezan iskljucivo za enterprise monitor i da ga mozda van merlina nece uopste biti :( (ja se nadam da su indicije pogresne al ..)

inace imas kod mene primer kako da napises plugin za proxy koji ce da loguje audit data
[ Miroslav Strugarevic @ 18.08.2010. 12:29 ] @
Da li imas iskustva u koriscenju mysql-proxy na master/slave replication setup-u?


[ Tyler Durden @ 18.08.2010. 12:45 ] @
A ima li jos kakvih rijesenja za load balance vise mysql servera osim MySQL Proxy?
[ bogdan.kecman @ 18.08.2010. 16:43 ] @
miroslav, da
tyler, da

EDIT: da ne bude nedoreceno - tema je prekomplikovana za generalne odgovore koji prevazilaze da i ne + tema duboko zadire u ono od cega zivim (high availability systems - razvoj, postavljanje, odrzavanje ... ) tako da je taj deo previse "detaljan" da bi moglo da se generalno prica o tome dalje od - drbd/hb/proxy/external locking - svako daljnje razmatranje nema veze sa "opstim" resenjem i pravi se razlicito za svaku odredjenu situaciju, a pravljenje custom resenja, ma koliko bio spreman da pomognem svakome, ne ide bas za dz :)
[ Tyler Durden @ 18.08.2010. 18:24 ] @
Naravno :)

Nego mi je vise bilo interesantno da ima relativno dosta, i to kvalitetnih, load balancera i reverse proxyja za web servere pa i mail, kao sto su nginx (sjajan softver), haproxy, varnish, a za mysql nista nisam mogao da iskopam.
Jel ima neki poseban razlog za to npr. teza i komplikovanija implementacija tako necega za mysql, ili se radi o necemu drugom...

jedino mi heartbeat pada na pamet, ali on je vise onako "generalni" lb nego bas za mysql...
[ bogdan.kecman @ 18.08.2010. 18:48 ] @
HB je "klaster manager", dakle njega koristis da bi odradio management grupe racunara i servisa na njima ... sam za sebe ne radi nista ...

sto se tice "Zasto nema", i oni koji postoje (vrlo retki) su lokalni projekti koje su ljudi pravili lokalno za sebe - odraditi load balansing database servera van samog database servera je mnogo zeznut proces zato sto moras da vodis racuna o mnogo tome, posebno kada nemas sinhronu replikaciju izmedju nodova.. u zavisnosti od toga kakav ti transaction isolation treba .. za mysql-proxy ima skripta koja radi tako sto baca sve write upite na jedan host a read upite na ostale hostove (master i mnogo slave-ova) ali ni to ne radi uvek "bas tako" - i dalje gomila upita zavrsi na masteru - fora je transakcijama ... ako neces transakcije onda problem postaje prilicno jednostavan...

inace sto se tih ostalih tice
- connector/j (jdbc konektor za mysql) ume da radi load balansing (i master/slave i pravi load balansing)
- java ima (u stvari nema jos ali bice uskoro ako sve bude po planu, to pravi nas tim iz norveske ja mislim ali nisam siguran, znam da su neki autisticni likovi koji salju info jednom u 3 meseca i to vrlo sturo tipa "zivi smo, jos nije gotovo, sad ce") poseban layer koji moze da zivi izmedju aplikacije (jdbc sa jedne strane) i database servera (mnogo njih sa druge strane)

connector/C jos uvek nema sve to ali postoji valjana sansa da ce da dobije, kada on to dobije automatski ga dobijaju i svi ostali (posto se svi ostali tipa php/python/perl/.net .. zasnivaju na connector/c) .. doduse svi kapiraju da ako si normalan i pises app u c-u imas dovoljno znanja da sam odradis load balansing u svom db layer-u kako treba :)

onaj lua skript koji radi razbacivanje konekcija na proxy-u moze da se implementira u bilo kom jeziku, prilicno je jednostavan ...

sve u svemu, kada je baza u pitanju, ako se nije mislilo na vreme o skalabilnosti na app nivou skaliranje sistema postaje umetnost i tu stvarno nema generalizacije, mislim da osim ovih "external locking" sistema koji rade samo za 99% citanje i 1% pisanje nisam video 3 ista resenja (a napravio sam hiljade, da ne spominjem koliko sam ih video)
[ bogdan.kecman @ 18.08.2010. 19:00 ] @
hm ... procitam ove svoje odgovore posto ih napisem ... deluju mi kao odgovori nekih ljudi ovde na forumu koje pitas "kako da uradim nesto" a oni ti posalju pp sa "daj 500E i ja cu ti zavrsim" :( ... a stvarno mi to nije cilj .. firma me dovoljno placa da ne moram da navatavam tezge preko foruma :D (nije da bezim od njih al mi stvarno nisu neophodne) ..

ono sto mora da se shvati kada je bilo kakav HA/HR (high availability / high reliability) sistem u pitanju je da TO MORA DA KOSTA PARE ... svaka ona devetka kod HA/HR sistema dize exponencijalno cenu sistema .. i u hw-u i u sw-u i u administraciji, setapu, odrzavanju ... sve to mora da kosta ..

nekoliko hintova za "ustedeti"

ako je aplikacija "losa", tj sistem nije predvideo da ce da raste najjeftiniji je prvo da razdvojite DB server i APP server. posle toga - SCALE UP je najjeftiniji (nije najbolji ali daleko najjeftiniji) ..
1. stavis MNOGO RAMA - sto vise rama, vise stvari moze da se kesira, sve je mnogo brze
2. stavis storage sa VELIKIM IO mogucnostima (SSD diskovi u RAID0 satiru koliki IO mogu da pruze, dodas im RAID1 da bi imao koliko toliku sigurnost - posto SSD-ovi oce da riknu povremeno)
3. stavis MLOGO BRZ CPU i bar 8 jezgara (ne preterivati sa jezgrima kada je mysql u pitanju, mnooogo bolje 2 EXTRA BRZA jezgra nego 200 sporih - citaj zahebi T1000)

i to je to ..

sledeci korak - sve to UDUPLAS, stavis pod HB i semisinhronu replikaciju ili u kombinaciju sa DRBD-om


to je naaaajjeftinije resenje ..

za retke koji nemaju pisanje po bazi, SAN sa multi scsi stekerom mountujes sa vise masina (dakle X masina mountuje isti disk), na njega turis neki cluster file system (ospf/gfs2 ili slicno) koristis samo myisam tabele i upalis external locking - to ti daje mogucnost da na svim masinama startujes mysql sa istim datadirom (bez external lockinga ili sa innodb-om bi to sve otislo u majcinu ali ovako ce da radi) ... kada jedan mysql oce da pise po tabeli on je zakljuca a posto je upaljen external locking to se preko cluster fs-a vidi i na ostalim masinama ... ovo radi ok, doduse mora se malo tweakovati mysql da ne bi imao pogresne podatke po keshevima i slicno ...

[ bogdan.kecman @ 18.08.2010. 19:08 ] @
i jos jedna stvar - oracle trenutno sprema (ok, lazem, tek je oformljena radna grupa ali to kod nas ide brzo) potpuno novo HA resenje kada je mysql u pitanju (bazirano na oracle linux-u i oracle alatima za kontrolu)... za sada je to sve sto i ja znam ali sam mozda upao u radnu grupu pa ako jesam znacu uskoro vise :) ako nisam, kad nesto saznam ja cu podeliti vec sa ostalima
[ IvanPHP @ 26.08.2010. 01:17 ] @
A sta je sa ndbd-om?
[ Shinhan @ 26.08.2010. 07:19 ] @
Citat:
IvanPHP: A sta je sa ndbd-om?


Ako moraš da pitaš šta je NDB onda to definitivno nije za tebe.

NDB = NDB Cluster, database engine za clustere to jest za velike farme servera.

To je takođe razlog zašto je Bogdan "MySQL Cluster Engineer" i šta on većinu vremena radi na svom poslu.
[ bogdan.kecman @ 26.08.2010. 14:44 ] @
ndbcluster je "malo drugaciji" storage engine ... opet je prica malo "duza", imas ovde moj poprilicno detaljan opis sta mysql cluster (ndbcluster storage engine) jeste a sta nije

ako hoces da ga probas (ne trebaju ti farme servera, mozes i na jednoj masini da ga poteras) imas ovde step by step kako da instaliras mysql cluster

da ne tupim, na ta dva linka imas sve sto ti treba da bi saznao da li te to zanima ili ne i da probas da li ti to radi posao ili ne ...

[ IvanPHP @ 26.08.2010. 15:50 ] @
Procitah http://www.mysql.rs/2009/10/cluster-instalacija/ i ne videh tu ldirectord i heartbeat. Ne preporucujes LB sa HB ispred MySQL cluster-a samo zbog kompleksnih join-a ili ima jos neka kvaka?

Bilo bi lepo da malo detaljnije das neke podatke o performansama takovog resenja, je l?

(komentar nikako nije zlonameran, diskutujemo, ucimo ...)

[Ovu poruku je menjao IvanPHP dana 26.08.2010. u 17:23 GMT+1]
[ bogdan.kecman @ 26.08.2010. 17:14 ] @
Citat:
i ne videh tu ldirectord i heartbeat. Ne preporucujes LB sa HB ispred MySQL cluster-a


ok bice da nisi i dalje svatio sta je mysql cluster, procitaj onaj drugi post (sta mysql cluster jeste a sta nije), HB i LD nemaju sta da traze u kombinaciji sa mysql klasterom, to su alati za nesto potpuno drugo
[ IvanPHP @ 26.08.2010. 20:01 ] @
Da, bice da si u pravu. Nisam shvatio, pa sam testirao ldirectord koji loadbalance-uje zahteve na node MySQL CLuster-a i heartbeat koji ceka da ovaj umre. Sve to trebalo bi da vozi billing na Opensips-u sa 2.000+ QPS. NDB je lepa stvar, ali kad noda nece da se rekonektuje ostaje mi ili da placem ili da citam source.

Ipak, nakon par padova NDB-a mislim da cu ostaviti master-master sa istovremenim upisom.
[ bogdan.kecman @ 26.08.2010. 20:20 ] @
ldirectord radi razbacivanje zahteva na vise masina (lvs)
HB radi management servisa i failovere

to je potrebno ako radis high availability resenje sa mysql-om tako sto imas vise mysql servera koji teraju "mysql server" ili "mysql enterprise server", sa HB kontrolises koji su up a koji nisu, a sa lvs-om glumis jedan server a bacas upite na nekoliko njih, mozes tu da inkorporiras i drbd etc etc ..

mysql cluster je "proizvod", koji ima svoj cluster management (ndb_mgmd), data node (na kom se nalazi data) i kom ne mozes da pristups od strane klijenta osim ako tvoj klijent ne prica ndb_api, i imas sql nodove koji pruzaju mysql interface. u toj kombinaciji, ako neki sql nod crkne ili ako neki data nod crkne o tome brine management nod... dakle HB tu nema sta da trazi. sto se tice lvs-a (ldirectord) teoretski mozes da stavis lvs ispred sql nodova ali je to potpuno beskorisno posto je mnogo lakse da iskoristis proxy ili da stavis load balancer u konktor (za sada radi 1/1 u java konektoru za ostale ce biti ali za sada je proxy jedino resenje ili pametna aplikacija)...


[ bogdan.kecman @ 26.08.2010. 20:21 ] @
btw, nemoj pogresno da razumes, lvs + HB + drbd i razne druge tehnologije RADE SUPER ... samo nemaju veze sa "mysql cluster" proizvodom ( http://dev.mysql.com/downloads/cluster/ ) koji nije isto sto i "mysql server" proizvod ( http://dev.mysql.com/downloads/mysql/ )
[ IvanPHP @ 26.08.2010. 21:01 ] @
No hard feelings, prosto pitam te, jer volim da saznajem stvari sa izvora, a i inace MySQL source volim da citam u slobodno vreme umesto poezije :)

Nazalost, VoIP billing ne trpi padove, posto moras da imas tacne invoice na kraju meseca inace nastupa billing drama sa interconnection partnerom. Znaci, sve se prvo proba, proba, proba, pa se ondak proba min 3 meseca na billing-u za korisnike koji su fizicka lica, pa ako pada ide analiza implementacije. Ma VoIP baze i nisu neke baze, sem acl tabela dominira write, na kraju billing perioda jednom mesecno prethodni mesec mozes export, pa tar.gz
[ bogdan.kecman @ 26.08.2010. 22:11 ] @
nema sta da se ljutim ... a mnogo ti je los ukus za poeziju ako citas nas source, da nije tragicno bilo bi za smejanje :(

za voip billing - oh da, prebacio sam do sada 2 firme sa raznih baza na mccge .. bilo je potrebe za ozbiljnim prepravkama sistema ... osnovni cim sa acl-om je da ti treba "sto vise sql servera koji ce da rade insert" posto ti ne mozes da radis bulk insert (uglavnom ne bez ozbiljnih zahteva nad aplikacijom, inace moze, jedan klijent je to prepisao) a jedan po jedan kroz jedan/dva sql noda nece da radi kako treba tako da razbacas na mnogo sql nodova inserte i bas te briga ... 2 data noda su uglavnom dovoljna ako imas dovoljno spindlova .. sve u svemu vrlo upotrebljivo, ali samo za acl liste, nikako ne valjda da se sa mccg-ea vade reporti vec napravis obican myisam slave (ili vise njih) koji ce da pokupi binlog sa klastera i koji onda moze da se koristi za reporte ...

[ IvanPHP @ 26.08.2010. 23:00 ] @
Naravno, myisam slave skida kajmak sa clustera, a kad naplatish kajmak na kraju meseca, briga bash gazdu za reporte.

Imamo mi mlogo vecih problema, VoIP server, mashine puna para, svi bi da se istrunk-uju preko tebe za dz, znam kompanije koje su pucale 10k baksa za noc. Da ne skrecem s teme, odo nazad da SIP-ujem ...
[ bogdan.kecman @ 26.08.2010. 23:05 ] @
kad smo kod ove "tragike" (mislim da je nas source tragican, ne to sto ga ti citas), off topic jedan, vec 3 dana ide tzv "bike-shed" prepiska na internoj listi oko toga da li da se refaktorise ceo source da svuda bude TRUE i FALSE ili true i false ili da se ostavi kako je ... evo placem od smeha vec 20 minuta ...

inace, coveku koji je kumovao mysql cluster proizvodu bi voleo da objasnim neke stvari (ne samo ja vec ceo dev tim i ceo support & consulting tim), upropastio nas je na kvadrat posto imamo minimim 10% klijenata koji kupe klaster (a on kosta mnoooogo vise od mysql servera) da bi posle implementacije istog dobili info (kada zabodu pokusavajuci da ga koriste) da to nije ono sto su ocekivali :( ..
[ bogdan.kecman @ 26.08.2010. 23:12 ] @
video sam ja nekih iskusnih resenja da budem iskren, baziranih na ldap+mysql cluster (trenutno najbrzi ldap na svetu, jedini limit mu je dubina drveta koju podrzava koja je ja mislim 12 ili 13 tako nesto) varijanti koje je koristila nokia siemens mreza ... erikson isto ima neka vrlo interesantna resenja (ne bas tako dobra kao nokia) ... alkatel isto ima zanimljiv sistem .. sve bazirano od starta na mccge-u ... nokia je sada kupila jos nesto i na to polako prelaze posto je njihov lokalni proizvod ....

elem, cuo sam da za cdr postoji posebna baza koja radi "mlogo dobro", projektovana samo za to, ali posto sam ja izasao iz tog telekom posla pre jedno 7 godina nisam bas vise toliko u toku ...

sto se padova ndb-a tice, to je samo vezano za konfiguraciju, to je nesto sto sada menjamo, trenutno je stanje da ako je ulaz na klaster veci nego sto IO moze da podnese klaster nece "stati" i odbiti ulaz (kao sto ce to mysql klasicno da odradi), nego ce da vrisne kao malo dete (gcp stop ...). sada se radi promena tog ponasanja u "prekinuce transakciju i nece primate nove transakcije dok mu se ne oslobodi io" .. mada to ce mozda u 7.3 a mozda tek u 8.0
[ tarla @ 27.08.2010. 10:43 ] @
Citat:
...... ali posto sam ja izasao iz tog telekom posla pre jedno 7 godina nisam bas vise toliko u toku ........



Jedan prijatelj je dobro rekao: "Vidim u kakvom sam grču bio tek kada sam izašao iz telekomunikacija"


Inače skinuo sam pdf knjigu http://www.amazon.com/MySQL-Hi...41GPL1O&colid=3CKB29JSZHDR

Na žalost nisam stigao da to pogledam ali javljam utiske.

MT
[ bogdan.kecman @ 27.08.2010. 11:22 ] @
nisam cito i prva dva autora ne znam licno, ali lars je genije tako da sam siguran da je knjiga extra