Добавлю, что Тарантул аллоцирует квоту памяти (предаллоцированный кусок RAM), для размещения на ней данных и индексов. Если при очередном изменении новые данные не помещаются в эту квоту — Тарантул переходит в режим только для чтения. Часто эту квоту можно расширить в рантайме если есть еще свободная RAM
ну.. проявлю дотошность. мне кажется я правильнее сформулировал. тарантул не будет прямо таки read only, он будет честно пытаться выполнить каждую следующую. и если она будет write - будет пытаться выделить память. ну и если (что скорее всего, но вообще говоря не обязательно) памяти не хватит - то опять вернет ошибку и продолжит работу.
Описание данных я так понимаю нужно? У меня несктолько террабайн данных. 99% это одна единственная таблица хранящая промежуточные данные вычислений. Процент записи / чтения примерно 50 / 50 Структура записи таблицы несколько числовых уникальных значений значений плюс автоинкрементное поле плюс несколько полей с двоичными данными. На двоичных данных установлен вторичный ключ для построения LEFT JOIN сравнения.
Количество данных очень быстро растет и за пару дней разрастается до 250 ГБ за следующие пару недель увеличится до 2-3 ТБ. И это не предел в перспективе данных бует на десятки ТБ
хороший вопрос, вообще, если нет yield'ов (то есть res всегда монопольно используется строго одним файбером), то после возврата из луа до fiber_yield'a результат копируется в msgpack (вроде в port)