Brian "Krow" Aker (krow) wrote,
Brian "Krow" Aker

Table Discovery, Memcached... and how does this get solved?

Somewhere in the last week I got a simple request, a user wanted table discovery for the memcached engine.

Both the Archive and Cluster engines support this.

Take an archive .ARZ table in 5.1, move it to another server. If you SELECT or INSERT off the table name it will be "discovered" immediately. The FRM just appears and everything just works (which means that yes in 5.1 all you have to do is save the ARZ file and you are set... no need for the FRM). Using archive_reader you can even make an online copy of the table (this was a feature request from one of the Livejournal developers last year at the user's conference).

Cluster has a similar mechanism. If you create a table on one front end MySQL server, all other MySQL servers that are talking to that cluster discover the table. The reason that this is possible is that the MySQL server just speaks to one cluster at a time.

The memcache engine can talk to many clusters, hell, it can talk to as many as you want on a per table basis. It does not have this limitation.

This is what makes table discovery difficult, there isn't just one cluster of memcached servers to talk too.

Its possible to setup one server and say "this is the dictionary server", and then have all servers look to that server. It would also be possible to iterate over each found server and poke at each memcached cluster looking for the table definition.

...or just make everyone type create table themselves on each server...

The older I get the lazier I get, I just want stuff to work.
  • Post a new comment


    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded