【问题标题】:Aerospike - what are the max number of parameters that can be passed to a queryAerospike - 可以传递给查询的最大参数数是多少
【发布时间】:2015-11-19 01:32:16
【问题描述】:

当我在 aerospike 中将太多参数传递给 UDF 函数(LUA 脚本)时,我收到一条错误消息,提示“为 Func 类型的声明指定了错误数量的类型参数。”。

我试图将 5k 个值作为一个列表传递,一个“值”中包含 5k 个字符串对象。我尝试了 100 次,但它仍然给我带来了问题,但它在 10 次时有效。

调用代码如下所示:

var statement = new Statement();

statement.SetNamespace("blah");
statement.SetSetName("blu");
statement.SetBinNames("blee");

using (var result = Client.QueryAggregate(new QueryPolicy()
                                                          {
                                                              timeout = 600000
                                                          }, statement, packageName, functionName, parameters))
            {
                while (result.Next())
                {
                    retVal.Add((T) result.Object);
                }
            }

Aerospike 团队,知道我可以在 LUA udf 的列表参数中传递的最大数量是多少吗?有什么办法可以扩展吗?

*这是一个后台方法,每天运行两次,性能在这里并不重要。

【问题讨论】:

  • 仅供参考,我改变了方法,改为在具有一些并行化的二级索引上触发 5k 查询,响应速度更快,并且我也避免了扫描。不管怎样,知道极限还是不错的。

标签: lua aerospike


【解决方案1】:

Lua 似乎对大量参数(超过 50 个)感到不满。您应该参数化 Map() 或表并将其作为一个参数传递,然后将其解压缩到您的 lua 函数中。

请参阅UDF GuideKnown Limitations 部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多