Showing entries 11 to 20 of 59
« 10 Newer Entries | 10 Older Entries »
Displaying posts with tag: mysql-proxy (reset)
MySQL Proxy: 0.7.0 pre-release

0.7.0 is (finally) around the corner. We are only pushing some last minute build-fixes, but otherwise we are done.

If you want to help us getting a good 0.7.0 release out, please test the snapshot RPMs we did build with the help of OpenSuSEs build-service.

At you will always find the latest snaptshot packages that we build from the latest launchpad code (everything > r640 is current). We have native binaries for Fedora 9 and 10 and OpenSuSE 11.0 and 11.1 right now.

If everything goes well, we should have a 0.7.0 release …

[Read more]
MySQL Proxy: Lua classes

On the mailing lists we get the question from time to time:

How can I access internal information inside a proxy script ?

MC documented them in the manual, perhaps it is easier to get an idea if you see a picture instead.

The file is generated from a .dot file which will soon end up in the lauchpad trees. The above graph is a bit ahead of time as it references my routing tree which changes the way the "address" fields are exposed.

MySQL Proxy: from 0.6.1 to 0.7.0

The MySQL Proxy was split into

  • a chassis which handles cmdline, service, logging, plugin loading
  • a core library for the life-cycle, network handling and protocol decoding
  • a lua layer wrapping around the internals
  • a set of plugins: proxy, admin, debug, replicant

It also contains a few tools that reuse the above libraries:

  • mysql-binlog-dump
  • mysql-myisam-dump

We dropped libcheck in favour of glib 2.16's g_test_* functions.


Chassis added support for SIGHUP to reopen logfiles added win32-service support added --basedir added experimental --log-backtrace-on-crash added DTrace probes added a angel to keep the chasses alive added --user option to change the system user the proxy runs as added config-file support …

[Read more]
MySQL Proxy is back

MySQL Proxy is back. After a long hiatus due to many deadlines in the Proxy team, the GPL version of MySQL Proxy has been updated.
The most important news is the location. Proxy is now hosted on Launchpad, like many more MySQL related projects, and MySQL code itself.

Kay and Jan announced and commented the changes. The repository is now on Bazaar, and there are rules for …

[Read more]
Current project status – HSCALE

A lot of people keep asking me about the status of HSCALE so I thought it is best to just write about it.
Since I am waiting for the next GPL release of MySQL Proxy I concentrate on other things, both project-related and not project-related.

Continuous integration and test strategy enhancements

First of all there is a CI server up for almost 3 months now. Check out (Login as guest user). I also introduced a lint-process to discover bugs in my LUA code which arise mostly by mistyping variable names. By the way: You should definitely have a lint-like process in place if you are doing LUA programming or other languages of that type. It helps a lot.

What’s in svn trunk? Multiple backends

The current status is this: Spreading across multiple backends is fully …

[Read more]
What is an “unauthenticated user”?

Every so often we have a client worrying about unauthenticated users. For example, as part of the output of SHOW PROCESSLIST they will see:

| Id  | User                 | Host               | db   | Command | Time | State | Info             |
| 235 | unauthenticated user |   | NULL | Connect | NULL | login | NULL             |
| 236 | unauthenticated user | | NULL | Connect | NULL | login | NULL             |
| 237 | user                 | localhost          | NULL | Query   | 0    | NULL  | show processlist |

Who are these unauthenticated users, how do they get there, and why aren’t they …

[Read more]
LuaSQL fetches results about 15% faster than MySQL Proxy?

While evaluating LuaSQL as backend connection replacement I came across this. I did a quick performance test using mysqlslap and it showed that just reading and copying the result can be significantly faster with LuaSQL.

Benchmark details

What I did was just sending the query to the backend and building up a new result-set in LUA.

This is the code for LuaSQL:

local _sqlEnv = assert(luasql.mysql())
local _con = nil

function read_auth(auth)
    local host, port = string.match(proxy.backends[1].address, "(.*):(.*)")
    – We explicitly connect to db "test" since mysqlslap …

[Read more]
Version 0.3 of HSCALE is almost in the door

After working on build and test improvements (for example incorporating lualint and LuaCov) as well as other lua “side-projects” (i.e. Log4LUA) we are running towards HSCALE 0.3.

The focus of the forthcoming version 0.3 of HSCALE is Dictionary Based Partition Lookup. Using this partition lookup module lets you take full control over how your partitions are created and where they are actually located.

Update: Dictionary Based Partition Lookup is fully implemented. See this blog post and the wiki page about it.

Please note: Due to …

[Read more]
Log4LUA version 0.2 and project page

Everything is available at the project page

Please report issues and feature request here.

Version 0.2 is a bug fix release but with 2 significant changes in syntax:

  1. Changed all constructor methods from create(...) to new. Seems to be more common in the LUA world.
  2. The logger class is now returned by the module. So it is local logger = require("optivo.common.log4lua.logger")
    local LOG =…)

    instead of

    local logger = require("optivo.common.log4lua.logger")
    local LOG = logger.Logger.create(…)

Some potential bugs have been spotted using (a slightly adopted version of) lualint and …

[Read more]
More fun with LUA - Introducing Log4LUA

UPDATE Log4LUA 0.2 released. Go to the project page.

After the dust about backend connection handling in MySQL Proxy had settled, I begun working on other parts of HSCALE again. (I’ll return to the backend handling later after talking to Jan Kneschke about their plans.)

One of the issues that bothered me the most was logging. Until now I just had used a simple debug function that could be enabled or disabled using an environment variable. The pretty straightforward approach a lot of people use. But there is more to logging than to print debug messages. So I searched the web and of course I found …

[Read more]
Showing entries 11 to 20 of 59
« 10 Newer Entries | 10 Older Entries »