News

MySQL Round Robin Patch

SELECT Statements auf Slave DB noch nicht möglich.

In der derzeitigen Version von Typo3 ist es nicht möglich, SELECT SQL Abfragen an einen Slave Datenbankserver zu senden, so das der Master Server entlastet wird und mehr Zeit und Resourcen für die UPDATE und INSERT Abfragen hat.

Dieser Patch ist nur ein "Proof-of-Concept" um Typo3 DB-Clusterfähig zu machen.

Die Funktionsweise dieses Patches ist so simpel wie einfach. Innerhalb der Funktion exec_SELECTquery wird ein neuer Datenbankhandle per rand(0, [Anzahl der SlaveDB's]) ermittelt und an diesen Server das SELECT Statement geschickt. Sollte dieser Server ausfallen oder Out-Of-Sync sein, so wird ein "deadFile" angelegt (automatisch im Falle eines Fehler beim Connect). Dieses File sollte dann, wenn der Slave Server wieder in Ordnung ist, gelöscht werden. Diese Datei kann auch per Hand erstellt werden und somit ist z.b. eine geplante Wartung möglich.

Die Konfiguration für die Slave Datenbankserver erfolgt in der Datei typo3conf/localconf.php.

----
$TYPO3_CONF_VARS['SYS']['slave_db_handler'][] = array(
'typo3_db' => 'db',
'typo3_db_host' => 'slave01',
'typo3_db_password' => 'geheim',
'typo3_db_username' => 'user',
'dead_file' => 'typo3conf/slave01_db_dead'
);

$TYPO3_CONF_VARS['SYS']['slave_db_handler'][] = array(
'typo3_db' => 'db',
'typo3_db_host' => 'slave02',
'typo3_db_password' => 'geheim',
'typo3_db_username' => 'user',
'dead_file' => 'typo3conf/slave02_db_dead'
);
----


Man kann diesen Patch nur nutzen, wenn man MySQL ohne DBAL/AdoDB einsetzt - also die native MySQL Unterstützung von Typo3 nutzt.

Dieser Patch ist ebenfalls bei bugs.typo3.org gepostet (ID: 0006180).


Newsnavigation

Weitere News

Das Musik-StartUp landet mit neuem Musik-Preisvergleich auf Anhieb im Finale des bekannten Online-Awards.



SELECT Statements auf Slave DB noch nicht möglich.



Verschiedene Domains auf verschiedene Seiten im gleichen Baum - da reicht das Domainobjekt nicht aus.