добрый день. Я новичок в tarantool, и у меня есть вопрос об ограничении памяти для клиентских приложений внутри tarantool. У меня есть база данных в памяти для 300 миллионов элементов и приложение lua, которое выбирает часть из них, после выбора, я переносу результат в ' class 'для более простого взаимодействия с кодом.Например:
Foo = {}
Foo.__index = Foo
function Foo.create(rawData)
local self = setmetatable({}, Foo)
self.PrimaryId = rawData[1]
self.BarId = rawData[2]
local fields = rawData[3]
self.Name = fields[1]
self.Date = fields[2]
return self
end
и использование:
local data = box.space.Foo.index.barId:select({barId})
local ctor = Foo.create
local foo = {}
for i = 1, #data do
table.insert(foo, ctor(data[i]))
end
при первом запуске в большинстве случаев он выполняется успешно, но при втором с вероятностью 100% происходит сбой с сообщением (сообщение tarantool):
PANIC: unprotected error in call to Lua API (not enough memory)
Я понимаю, что есть проблемы с использованием памяти (не освобождаемая память), но у меня есть вопрос по поводу лимита - есть ли какие-то ограничения для приложения lua?потому что я вижу в мониторе потребление памяти и замечаю, что достаточно свободной памяти и сбой возник после запуска приложения, использующего более 1,2 Гб