618 MySQL - Technische Referenz f¨ur Version 5.0.1-alpha
10.3.1 MySQL-Thread
Der MySQL-Server erzeugt folgenden Thread:
• Der TCP/IP-Verbindungs-Thread erledigt alle Verbindungsanfragen und erzeugt
einen neuen dedizierten Thread, um die Verarbeitung von Authentifizierung und
SQL-Anfragen f¨ur jede Verbindung zu handhaben.
• Unter Windows NT gibt es einen Named-Pipe-Handler-Thread, der dasselbe tut wie
der TCP/IP-Verbindungs-Thread, auf Named-Pipe-Verbindungsanforderungen.
• Der Signal-Thread handhabt alle Signale. Dieser Thread handhabt normalerweise auch
Alarme und Aufrufe von process_alarm(), um Zeit¨uberschreitungen auf Verbindun-
gen zu erzwingen, die zu lange im Leerlauf waren.
• Wenn mysqld mit -DUSE_ALARM_THREAD kompiliert wird, wird ein dedizierter Thread
erzeugt, der Alarme handhabt. Das ist nur n¨utzlich auf manchen Systemen, auf denen
es Probleme mit sigwait() gibt, oder wenn man den thr_alarm()-Code in seiner
Applikation ohne einen dedizierten Signal-Handhabungs-Thread benutzen will.
• Wenn man die --flush_time=#-Option benutzt, wird ein dedizierter Thread erzeugt,
der alle Tabellen im angegebenen Intervall auf Platte zur¨uckschreibt.
• Jede Verbindung hat ihren eigenen Thread.
• Jede unterschiedliche Tabelle, auf der man INSERT DELAYED benutzt, erh¨alt ihren eige-
nen Thread.
• Wenn Sie --master-host benutzen, wird ein Slave-Replikations-Thread gestartet, der
Aktualisierungen vom Master liest und anwendet.
mysqladmin processlist zeigt nur die Verbindungs-, INSERT DELAYED- und Replikations-
Threads.
10.3.2 MySQL-Test-Suite
Bis vor Kurzem basierte unsere vollumf¨angliche Haupt-Test-Suite auf propriet¨aren Kunden-
daten und war deshalb nicht ¨offentlich verf¨ugbar. Der einzige ¨offentlich verf¨ugbare Teil un-
seres Testprozesses bestand aus dem Crash-me-Test, einem Perl-DBI/DBD-Benchmark, der
im sql-bench-Verzeichnis liegt, und verschiedenen Tests im tests-Verzeichnis. Das Fehlen
einer standardisierten, ¨offentlich verf¨ugbaren Test-Suite machte es unseren Benutzern und
auch Entwicklern schwer, Regressionstests auf den MySQL-Code durchzuf¨uhren. Um das
Problem anzugehen, haben wir ein neues Testsystem geschaffen, das ab Version 3.23.29 den
Quell- und Bin¨ardistributionen beiliegt.
Der aktuelle Satz von Testf¨allen testet nicht alles in MySQL, sollte aber die offensichtlich-
sten Bugs im SQL-Verarbeitungsco de offen legen, sowie Betriebssystem- und Bibliotheks-
Probleme, und er testet recht gr¨undlich die Replikation. Unser letztliches Ziel ist es, dass die
Tests 100% des Codes abdecken. Beitr¨age zu unserer Test-Suite sind herzlich willkommen,
besonders Tests, die die Funktionalit¨at untersuchen, die f¨ur Ihr System kritisch ist, weil das
sicherstellt, dass alle zuk¨unftigen MySQL-Releases mit Ihren Applikationen funktionieren.
Comentarios a estos manuales