是否有一套完整的mysql-proxy lua脚本文档?

时间:2011-03-07 20:53:48

标签: mysql-proxy

我正在玩mysql-proxy的脚本。我想要完成的是无关紧要的。然而,我发现,似乎有lua接口的元素没有记录。我拥有的大“吸烟枪”是disconnect_client()钩子。我无法在the official documentation的任何位置找到它,但在explanation of the admin interface的示例中使用了它。它也在示例文档中广泛使用。快速grep显示了它在5.5.8发行版中包含的以下脚本中的用法:

活性queries.lua
主动transactions.lua
负载multi.lua
RO-pooling.lua
RW-splitting.lua
tutorial-keepalive.lua

我吸引眼球的另一个例子是proxy.global.backends表中条目的属性列表。 documentation列出了以下属性:

dst.name
dst.address
dst.port
connected_clients
state
type

但是,有几个示例脚本引用了一个名为pool的相当复杂的元素。以tutorial-keepalive.lua

为例
local s = proxy.global.backends[i]
local pool     = s.pool
local cur_idle = pool.users[proxy.connection.client.username].cur_idle_connections

起初我以为它被添加到lua中的其他地方,但我看了,我找不到任何代码分配到proxy.global.backends [i] .pool。

所以,我想有两个问题:

  1. 我疯了吗?请随意展示我是如何忽略显而易见的,文档非常清楚。
  2. 假设我是对的,有什么地方可以找到完整的文档吗?一个不错的链接会很棒(虽然我不能谷歌一个),但即使“从定义界面的mysql-proxy发行版看看这个.c文件”。至少那会给我一些东西来戳。
  3. 由于

1 个答案:

答案 0 :(得分:1)

我自己刚开了Proxy / Lua。我害怕,就像Mysql的所有东西一样,一旦你躲在你自己的封面下。 LUA也是如此。 你需要LUA的其他插件来做你想做的事情,我想建议: http://peterodding.com/code/lua/apr/docs/#shared_memory 对于Apache Protable库绑定...为我节省了大量时间。 至于MySql的内部,你可能需要查看C源文件,遗憾的是,因为我们在这里未开发的领域。

我发现的一件事是Mysql中的LUA结构不是Lua表,而是Lua'用户数据'。这意味着它们实际上是共享内存,因此Lua不能更改,因为Mysql也使用它们。我将尝试使用luaposix库来查看是否可以插入它们,因为如果可能的话,我想要更改元素。

祝你好运

peter.colclough@toolstation.com