MySQL Cluster es una base de datos que o!o su no!bre "nd"a
#un"ona en un Cluster de ser$"dores. Mu%a &ente on#unde ter!"nos y de'ne un on(unto de ser$"dores on re)l"a"*n o!o un MySQL Cluster+ )ero %ay que tener en uenta que son dos one)tos total!ente d"st"ntos. MySQL Cluster nos o#ree, Alta d"s)on"b"l"dad Esalab"l"dad -a"lo$er auto!.t"o Redundan"a Alto t%rou&%)ut La $ers"*n atual es la /.0 y )uede desar&arse de %tt),11222.!ysql.o!1)roduts1database1luster1 Componentes Un Cluster MySQL est. o!)uesto )or los s"&u"entes o!)onentes, Manager (ndb_mgmd), es un ser$""o enar&ado de )oner en !ar%a el luster+ onetar nue$os ser$"dores y e(eutar d"st"ntos o!andos de ad!"n"stra"*n !ed"ante el CLI ndb3!&!. Una $e4 que %e!os le$antado el luster no es neesar"o n" un requ"s"to "nd"s)ensable que est5 le$antado. Data Nodes (ndbd), son nodos enar&ados del al!aena!"ento de los datos. Se reo!"endan al !enos dos )ara d"s)oner de redundan"a y alta d"s)on"b"l"dad. Estas ser.n las !.qu"nas !.s )otentes del luster+ al!aenar.n los 6nd"es en !e!or"a y los datos en !e!or"a o d"so. Todos los Data Nodes deben tener el !"s!o %ard2are )ara e$"tar rear uellos de botella. API nodes (mysqld), aunque el !.s usado sea !ysqld+ un A7I node )uede ser ualqu"er a)l"a"*n que %a"endo uso de la A7I aeda al luster. El t6)"o+ ta!b"5n ono"do o!o SQL Node+ es el de!on"o !ysqld t6)"o 8o!)"lado on so)orte nbdluster9. De esta #or!a )odre!os esr"b"r o leer datos de nuestra ::DD o!o %e!os %e%o %asta a%ora+ !ed"ante o!andos SQL. Se reo!"enda que ada o!)onente est5 "nstalado en una !.qu"na #6s"a d"st"nta. Funcionamiento interno Interna!ente+ el #un"ona!"ento del luster se basa en dos one)tos b.s"os. Re)l"a"*n "nterna s6nrona y auto )art""onado de datos. La )r"!era nos o#ree la redundan"a y el se&undo nos da la esalab"l"dad. I!)ortante d"#eren"arlo de la re)l"a"*n t6)"a de MySQL 8as6nrona9. En este aso+ %asta que los datos no %an s"do re)l"ados en los nodos sele"onados no se de$uel$e el ontrol al usuar"o+ obten"endo de esta #or!a la ons"sten"a que no tene!os en la re)l"a"*n as6nrona. El )art""onado 87ARTITION :Y ;EY9 es ta!b"5n total!ente auto!.t"o. El luster se enar&a de d"$"d"r las tablas en d"st"ntas )art""ones y d"$"d"r los datos entre los d"st"ntos Data Nodes. Aunque es )os"ble que de'na!os nuestro )ro)"o )art""onado+ no se reo!"enda. A<ades o!)le("dad y )os"ble!ente el rend"!"ento no sea el es)erado. Replicas A la %ora de on'&urar nuestro luster+ una de los $alores !.s "!)ortantes a tener en uenta es de"d"r el n=!ero de re)l"as que tendre!os de nuestros datos. No )ode!os de"d"r ualqu"er n=!ero+ s" no que tendre!os que se&u"r unas sen"llas re&las. 7on&a!os )or e(e!)lo que tene!os > Data Nodes. En este aso )odre!os tener 0+ ? y > re)l"as. Esto es+ el n=!ero de nodos debe )oder ser d"$"s"ble )or el nu!ero de re)l"as. A=n as6+ no se deber6a tener una =n"a re)l"a+ ya que eso no nos da n"n&=n t")o de alta d"s)on"b"l"dad ya que al aerse un solo nodo )erder6a!os el aeso a los datos. Node roups MySQL Cluster a&ru)a auto!.t"a!ente los Data Nodes en &ru)os. Esto no est. ba(o nuestro ontrol n" )ode!os de"d"r que nodo est. en que &ru)o+ ser. traba(o del luster %aer estas a&ru)a"ones. S"&u"endo el e(e!)lo anter"or+ s" tene!os > Data Nodes y ? r5)l"as+ MySQL Cluster nos &enerar. dos Node @rou)s 8>1?A?9. Ade!.s %ay que tener en uenta que el n=!ero de )art""ones que se %ar.n de nuestros datos s"e!)re ser. "&ual al n=!ero de Data Nodes. 7or lo tanto+ "!a&"ne!os que tene!os el N0 y N? en el &ru)o 0 8@09 y NB y N> en el &ru)o ? 8@?9. A la %ora de )art""onar y re)art"r los datos es neesar"o )ensar en la alta d"s)on"b"l"dad+ )or lo que el )art""onado se %ar. de la s"&u"ente #or!a, @0 N0 A 70 y 7?C N? A 7? y 70C @? NB A 7B y 7>C N> A 7> y 7BC S"endo 7D el n=!ero de la )art""*n y 7DC una o)"a de la )art""*n de :aEu). Sab"endo esto+ )ode!os "!a&"nar uando d"s)ondre!os de alta d"s)on"b"l"dad. M"entras al !enos uno de los nodos de un &ru)o est5 le$antado+ el luster estar. onl"ne. 7or e(e!)lo se )odr6an aer N0 y N> o NB y N? y todo se&u"r6a #un"onando. 7ero una a"da de N0 y N? de(ar6a el luster o!)leta!ente a"do. A !ayor n=!ero de re)l"as !enos )os"b"l"dades de #allo+ !.s esalabe y !.s t%rou&%)ut ,9 7r*F"!a!ente eFtender5 el te!a de MySQL Cluster on !.s entradas se&=n $aya )ro#und"4ando en el estud"o de la ert"'a"*n. La "nten"*n ser. ter!"anr ten"endo un !"n" !anual )ara andar )or asa que nos )er!"ta dar los )r"!eros )asos.