← Back to team overview

maria-developers team mailing list archive

Progress (by Monty): Backporting pool of threads to MariaDB (6)

 

-----------------------------------------------------------------------
                              WORKLOG TASK
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
TASK...........: Backporting pool of threads to MariaDB
CREATION DATE..: Mon, 09 Mar 2009, 17:21
SUPERVISOR.....: Monty
IMPLEMENTOR....: Monty
COPIES TO......: Monty
CATEGORY.......: Server-Sprint
TASK ID........: 6 (http://askmonty.org/worklog/?tid=6)
VERSION........: Server-5.1
STATUS.........: Complete
PRIORITY.......: 60
WORKED HOURS...: 16
ESTIMATE.......: 0 (hours remain)
ORIG. ESTIMATE.: 8

PROGRESS NOTES:

-=-=(Monty - Tue, 11 Aug 2009, 16:58)=-=-
Done, ages ago

Worked 16 hours and estimate 0 hours remain (original estimate increased by 8 hours).

-=-=(Monty - Thu, 26 Mar 2009, 00:32)=-=-
Privacy level updated.
--- /tmp/wklog.6.old.6586       2009-03-26 00:32:23.000000000 +0200
+++ /tmp/wklog.6.new.6586       2009-03-26 00:32:23.000000000 +0200
@@ -1 +1 @@
-y
+n

-=-=(Monty - Thu, 26 Mar 2009, 00:31)=-=-
Supervisor updated.
--- /tmp/wklog.6.old.6580       2009-03-26 00:31:30.000000000 +0200
+++ /tmp/wklog.6.new.6580       2009-03-26 00:31:30.000000000 +0200
@@ -1 +1 @@
-Knielsen
+Monty

-=-=(Monty - Fri, 13 Mar 2009, 02:43)=-=-
Low Level Design modified.
--- /tmp/wklog.6.old.26076      2009-03-13 02:43:17.000000000 +0200
+++ /tmp/wklog.6.new.26076      2009-03-13 02:43:17.000000000 +0200
@@ -1 +1,20 @@
+To be able to work with both one-thread-per-connection and pool-of-threads at
+the same time, I added a new global scheduler variable 'extra_thread_scheduler'
+that is always using the one-thread-per-connection method. 
+
+To the THD structure was added a pointer to the 'scheduler' variable that should
+be used for this connection.
+
+To do easy handing of two connect counter and two max_connection variables, I
+added pointer to these pointer in the scheduler variable.:
+
+Other changes was:
+
+- If extra-port was <> 0, start listing to this port too
+- At connect time,  set THD->scheduler to point to the given scheduler (based on
+the port that was used to connect)
+- Change some calls that was done trough functions pointer in the scheduler to
+instead use thd->scheduler->
+- Change max_connections to *thd->scheduler->max_connections
+- Change connection_count to *thd->scheduler->connection_count
 

-=-=(Monty - Fri, 13 Mar 2009, 02:29)=-=-
Version updated.
--- /tmp/wklog.6.old.25818      2009-03-13 02:29:16.000000000 +0200
+++ /tmp/wklog.6.new.25818      2009-03-13 02:29:16.000000000 +0200
@@ -1 +1 @@
-Server-9.x
+Server-5.1

-=-=(Monty - Fri, 13 Mar 2009, 02:29)=-=-
Status updated.
--- /tmp/wklog.6.old.25818      2009-03-13 02:29:16.000000000 +0200
+++ /tmp/wklog.6.new.25818      2009-03-13 02:29:16.000000000 +0200
@@ -1 +1 @@
-Assigned
+Complete

-=-=(Monty - Fri, 13 Mar 2009, 02:28)=-=-
High Level Description modified.
--- /tmp/wklog.6.old.25790      2009-03-13 02:28:25.000000000 +0200
+++ /tmp/wklog.6.new.25790      2009-03-13 02:28:25.000000000 +0200
@@ -8,3 +8,6 @@
 Add option --extra-port to allow connections with old one-thread-per-connection
 method.  This is needed to allow root to login and kill threads if something
 goes wrong.
+Add option --extra-max-connections to regulate how many connections can be made
+to 'extra-port'.  This should work in a similar way as 'max-connections', in the
+way that one connection is reserved for a SUPER user.

-=-=(Knielsen - Mon, 09 Mar 2009, 19:02)=-=-
Version updated.
--- /tmp/wklog.6.old.10740      2009-03-09 19:02:38.000000000 +0200
+++ /tmp/wklog.6.new.10740      2009-03-09 19:02:38.000000000 +0200
@@ -1 +1 @@
-WorkLog-3.4
+Server-9.x

-=-=(Knielsen - Mon, 09 Mar 2009, 19:02)=-=-
Title modified.
--- /tmp/wklog.6.old.10740      2009-03-09 19:02:38.000000000 +0200
+++ /tmp/wklog.6.new.10740      2009-03-09 19:02:38.000000000 +0200
@@ -1 +1 @@
-Backporting pool of threads tro MariaDB
+Backporting pool of threads to MariaDB



DESCRIPTION:

Back porting pool of threads to MariaDB

We will use code for Maria 6.0, with the following extensions:

Add option: --test-ignore-wrong-options to ignore errors in enum values for
testing pool-of-threads. (Better than having --pool-of-threads command line
option just for testing)
Add option --extra-port to allow connections with old one-thread-per-connection
method.  This is needed to allow root to login and kill threads if something
goes wrong.
Add option --extra-max-connections to regulate how many connections can be made
to 'extra-port'.  This should work in a similar way as 'max-connections', in the
way that one connection is reserved for a SUPER user.


LOW-LEVEL DESIGN:



To be able to work with both one-thread-per-connection and pool-of-threads at
the same time, I added a new global scheduler variable 'extra_thread_scheduler'
that is always using the one-thread-per-connection method. 

To the THD structure was added a pointer to the 'scheduler' variable that should
be used for this connection.

To do easy handing of two connect counter and two max_connection variables, I
added pointer to these pointer in the scheduler variable.:

Other changes was:

- If extra-port was <> 0, start listing to this port too
- At connect time,  set THD->scheduler to point to the given scheduler (based on
the port that was used to connect)
- Change some calls that was done trough functions pointer in the scheduler to
instead use thd->scheduler->
- Change max_connections to *thd->scheduler->max_connections
- Change connection_count to *thd->scheduler->connection_count


ESTIMATED WORK TIME

ESTIMATED COMPLETION DATE
-----------------------------------------------------------------------
WorkLog (v3.5.9)