CPU spinning is something that has been around in NDB for a long time. This CPU
spinning has been static which means that each time a thread wakes up it will spin
waiting for incoming signals. Thus if spin time is set to e.g. 500 microsecond we will
spin 5% of the time even when there is no activity since each thread wakes up each
10 ms to perform timer based activities.
In the new spinning approach we wanted to achieve the following.
- Power efficient CPU spinning
NDB Cluster data nodes can execute queries very efficiently, this leads to efficient
power usage. However CPU spinning requires careful control to ensure that one
doesn't waste power while spinning.
- No spinning unless there is something to gain from it
Static spinning will always spin independent …
[Read more]