Tuesday, January 13, 2009

api-thread-contention TODOs

currently working on a refactoring ndbapi for mysql-cluster, in order to decrease
mutex contention allowing to better utilize many threads on multi-core machines.
while doing so, i implement a "vanilla" ndbapi-backend which lacks features
current in there.

once this is working, i'll start adding optimizations...

reintroduce:
- zero copy receive
- optimizations for single threaded performance (less ctx switches)

introduce:
- split mutex(es)
- zero copy send (or actually 1-copy instead of 2, but zero sounds better)

4 comments:

Mikiya Okuno said...

Hi!

Are you mention about NDBCLUSTER storage engine interface (ha_ndbcluster) inside mysqld? If so, it sounds interesting for me, because I've thought that some optimization should be required there.

In that sense, I'm also interested in BKA join optimization which will be implemented on 6.0 and will improve join performance dramatically. I think people may want to use MySQL Cluster with 6.0. Is there any plan to release SQL node with 6.0?

Jonas Oreland said...

Hi,

- what am i talking about
i'm actually talking about the ndbapi (that ha_ndbcluster is using)

- cluster with BKA
current plan is to make that merge
and release it as alpha this quarter

---

Which optimizations are
you thinking about that
"should be required" ?

---

/Jonas

Mikiya Okuno said...

Hi,

- ndbapi

Thank you for your clarification. I understand that I had wrong idea :P

Since the current ha_ndbcluster may have several connections to data nodes, I've imagined that there might be something which could be a bottleneck. The new ndbapi sounds improving such bottlenecks.

- cluster with BKA

Of course, the most significant optimization is BKA for cluster, because it reduces round trips between an SQL node and data nodes.

Many users avoid using cluster because its join performance isn't good enough. BKA join may dramatically improve it. Then, many users may be interested in cluster more.

Another thing which I really need in the future is in process version of ndbd, inside of mysqld. It may eliminate response time between an SQL node and a data node.

Anonymous said...

Do you have any plans to provide your tools for Solaris 10?