MySql Lastenverteilung

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • MySql Lastenverteilung

    Hallo zu später stund,

    ich hab mich für ein kommendes projekt mal mit dem thema mysql replikation und clustering auseinander gesetzt und ein php basierende lösung gesucht und folgendes entdeckt:

    http://blog.jploh.com/2007/06/18/loa...-applications/

    wollt mal einfach ein paar meinungen hören was ihr dazu meint. was mir noch nicht ganz klar ist, unabhängig von load balancing via hardware oder script based, was die beste lösung für die schreib- und lesevorgänge auf dem master und slave ist.

    Wenn die Insert, Update und Delete queries immer über den Master laufen und die Selects optimaler weise über die Replaktions Slaves laufen dann stellt sich mir die frage: muss ich jetzt bei jeder query einen neue datenbank verbindung öffnen um explizit, je nach query type, den richtigen server anszusprechen oder baut man besser eine connection zum master auf und eine, nach "round robin" oder anderem lastenprinzip, zu einem slave auf und übergibt dann jeweils den resource identifier oder das connection object an die query funktionen?

    ich bin da absolut neu in der thematik drin, kann auch alles totaler quatsch sein was ich mir da ausspinne. mich würds aber brennend interessieren wie sowas geht!

    Feed me with knowledge, Tuts o.ä. mega willkommen!

    danke

    fra*

  • #2
    Replikation: Also ich persönlich würde eine DB-Klasse machen, dann in der query-Funktion einfach die ersten 6 Zeichen auf den String "SELECT" untersuchen, wenn ja Verbindung zum Slave, wenn nein Verbindung zum Master aufbauen und den Query absetzen - sobald die jeweilige Verbindung einmal erstellt wurde kann man sie auch erneut benutzen.
    Aber bei Transaktionen ist Vorsicht geboten, denn ein SELECT kann auch Teil einer Transaktion sein - darauf ist also zu achten.

    Clustering: http://dev.mysql.com/doc/refman/5.1/...l-cluster.html
    Da ist das Prinzip ja ein ganz anderes...

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Comment


    • #3
      AH ja, das wäre dann ja die logische konsequenz das in in objekten zu kapseln. ok also hab ich das also doch richtig geschnallt

      stellt sich noch die frage:

      - hardware load balancing mit switch (wie müßten dann die scripts angepasst werden? das check ich noch nicht?)

      oder

      - script based?

      f*

      Comment


      • #4
        In den meisten Fällen hast du doch gar nicht die Möglichkeit das Hardware basiert zu machen?!
        Ich stelle mir vor (ich habe mich mit dem Thema noch nicht sonderlich tief auseinander gesetzt), dass du dann eine Verbindung zu einer Komponente aufbaust und diese dich an einen mysql-Server weiterschickt (ähnlich verläuft das Spiel ja bei Nameserver-Clustering, nur dass es in diesem Fall nicht der Nameserver sein könnte (weil es einfach vom Prinzip her bei der DB nicht anwendbar ist)) - d.h. am Skript müsste man von der Theorie her gar nichts ändern. Nur wie gesagt kann man wohl eher selten ins RZ spazieren und mal ein wenig Hardware da lassen...

        Ansonsten halt skript-basiert ... da hast du ja z.B: schon eine Lösung zu gepostet

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Comment


        • #5
          Hallo war auch ehr nur noch eine theroetische frage aber btw. gibts eigentlich auch bezahlbare Hoster die sowas auch machen. Ich meine Replikationen auf verschiedenen rechner für eine aufsetzen usw.

          fr*

          Comment

          Working...
          X