2015-11-18 3 views
2

Когда я передаю слишком много аргументов функции UDF (сценарий LUA) в аэрокосмическом режиме, я получаю сообщение об ошибке «Указано неправильное количество аргументов типа для объявления типа Func. ".Aerospike - каково максимальное количество параметров, которые могут быть переданы запросу

Я пытался передать значения 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 команды, любая идея, что это максимальное число, которое я могу передать здесь в списке param в LUA udf? Есть ли способ расширить это?

* Это метод фона, который запускается дважды в день, производительность здесь не имеет большого значения.

+1

FYI, я изменил подход и вместо этого вместо 5k запросов вместо вторичного индекса с некоторой распараллеливанием ответ намного быстрее, и я также избегаю сканирования. В любом случае, было бы хорошо знать предел. –

ответ

2

Lua кажется недовольным большим количеством параметров (более 50). Вы должны параметризовать Map() или таблицу и передать это как один аргумент, а затем распаковать его внутри вашей функции lua.

См. Раздел Known Limitations раздела UDF Guide.

Смежные вопросы

 Смежные вопросы