This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-22. For the latest, interactive version please visit https://mariadb.com/kb/.

Pool di Thread in MariaDB 5.1 - 5.3

Informazioni sul Pool of Threads

Questa è una versione estesa del pool-of-threads di MySQL 6.0. Ciò permette di utilizzare un insieme limitato di thread per gestire tutte le query, invece del metodo 'one-thread-per-connection'. Recentemente questa caratteristica è stata chiamata anche "thread pool" o "thread pooling". Essa è disponibile (in una diversa implementazione) nelle edizioni Enterprise di MySQL (ma non nella Community edition).

Questo può essere un grande vantaggio negli ambienti in cui la maggior parte delle query sono eseguite rapidamente e vi sono pochi lock a livello di riga o di tabella.

Istruzioni

Per abilitare il pool-of-threads è necessario eseguire configure con l'opzione --with-libevent (il chè viene fatto automaticamente dagli script 'max' che sono nella directory BUILD):

./configure --with-libevent

Quando si avvia mysqld con il codice del pool of threads bisogna usare:

mysqld --thread-handling=pool-of-threads --thread-pool-size=20

I valori predefiniti sono:

thread-handling=  one-thread-per-connection
thread-pool-size= 20

Un problema del pool-of-threads è che se tutti i threads in esecuzione sono occupati (per esempio eseguono lunghe query) o sono bloccati per via di un lock a livello di riga o tabella, non è possibile stabilire nuove connessioni e non si può effettuare il login per trovare il problema e terminare le query.

Per risolvere questo problema, sono state introdotte due nuove opzioni in mysqld:

--extra-port=#             (Default 0)
--extra-max-connections=#  (Default 1)

Se extra-port è <> 0 si potrà creare un numero di thread non superiore a max_connections + 1 extra SUPER user che si connette alla 'extra-port' via TCP/IP. Queste connessioni utilizzano il metodo old one-thread-per-connection.

Per connettersi attraverso la extra-port:

mysql --port='numero-extra-port' --protocol=tcp

Ciò permette di utilizzare liberamente il modello connessioni/thread.

Alcuni link utili:

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.