ThinkPart

Andrey's blog

 

MySQL Fail-Over with PHP

 

Tell us, do you want that you can specify more than one MySQL server address at connect, and if one of the servers doesn't work to connect to the next one in the list. Or use round-robin, so next connect will be to the next server, or some other strategy?

What about if you can specify a callback, so when you throw a SELECT or UPDATE for specific table + column the callback will be called to determine which MySQL server from a list to use - effectively allowing sharding.

Would you like to be able to throw the same query at many servers, like Domas' tool that can query hundreds of servers at once. This functionality could also verify that the results returned from the different servers are the same, or in case of DML - that all server get updated.

Any other ideas? Tell us!

Examples of mysqlnd plugins

 

From here :


Hi,

we (MySQL Connectors Team at Oracle, well mostly Andrey in fact) have
created a few experimental extensions, hooking into mysqlnd to extend
the functionality in a more or less transparent way.

A list of these includes

* mysqlnd_sip - A plugin trying to detect SQL injections by learning
about valid queries and then validate against the known format
* mysqlnd_mc - A plugin splitting single queries over multiple
connections (distribution of workload over multiple servers;
query-splitting / multi-read)
* mysqlnd_ms - A plugin for doing master/slave read/write splitting
* possibly others might be coming, too.

These plugins were created to validate our APIs wich we are also using
for things like the query cache plugin we recently added to PECL. These
plugins are in a prototype state. Now we'd like to make them available
to the community. As Oracle currently does not plan to actively support
them it feels wrong to put them into PECL's "Database" category where
they might hide other extension which receive more active support and
development.

While discussing this via IRC it was suggested to create an
"Experimental" top-level category on pecl.php.net and put them there. To
me this looks like a good proposal. From there they can easily be picked
up, be extended, provide ideas for other modules, ...

If nobody objects I'd create that category and we'd commit them to
pecl/mysqlnd_mc, pecl/mysqlnd_sip, ... in svn and register the
extensions on the website.

Johannes
--
Johannes Schlüter
MySQL Engineering Connectors and Client Connectivity

ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstr. 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V.
Rijnzathe 6, 3454PV De Meern, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Jürgen Kunz, Marcel van de Molen, Alexander van der Ven

The ultimate MySQL server machine

 

Ulf was pushing me today to file a MySQL bug, which actually doesn't exist anymore, but his programs crash with 5.1.31, where it seems still exists. For a long time we were thinking about the ultimate testing matrix which includes as many as possible MySQL Server instances to check differences in result of the connectors.

I've heard that Paul DuBois have all existing MySQL versions running on a secret box.


Read more ...

MySQL Server versions

 

Throughout the years MySQL has seen many version suffixes


Read more ...

MySQL Protocol quirks

 

The MySQL Protocol is a very old thing. Current version is 10, however I have never seen a server which uses anything but version 10. And new features are added without bumping the number. The changes are usually backwards compatible and sometimes you break stuff to be backward compatible.

You know that character set, and most notably Unicode, support was introduced in 4.1 . Other things got added to 4.1 but let's stay with the charsets.


Read more ...

mysqli got arginfo

 

JohannesS is a developer who is a hard-core user of the console. Thus, he doesn't like using a browser to visit php.net just for reading documentation.


Read more ...