Size: a a a

2021 May 31

VG

Vladislav Grubov in Tarantool
Добавлю, что Тарантул аллоцирует квоту памяти (предаллоцированный кусок RAM), для размещения на ней данных и индексов. Если при очередном изменении новые данные не помещаются в эту квоту — Тарантул переходит в режим только для чтения. Часто эту квоту можно расширить в рантайме если есть еще свободная RAM
источник

AL

Aleksandr Lyapunov in Tarantool
ну.. проявлю дотошность. мне кажется я правильнее сформулировал. тарантул не будет прямо таки read only, он будет честно пытаться выполнить каждую следующую. и если она будет write - будет пытаться выделить память. ну и если (что скорее всего, но вообще говоря не обязательно) памяти не хватит - то опять вернет ошибку и продолжит работу.
источник

VG

Vladislav Grubov in Tarantool
Все так, просто подсветил наличие квоты (арены), которая конфигурируется администратором
источник

ЕК

Евгений Кривошлыков... in Tarantool
Если у меня данных однозначно больше чем оперативной памяти и в перспективе будет ещё больше какую стратегию мне выбрать?
источник

P

Pavel in Tarantool
посмотрите на шардирование
источник

AK

Alexey Kuzin in Tarantool
Нужен ваш бизнес кейс, может и кэша достаточно
источник

ЕК

Евгений Кривошлыков... in Tarantool
Описание данных я так понимаю нужно? У меня несктолько террабайн данных. 99% это одна единственная таблица хранящая промежуточные данные вычислений. Процент записи / чтения примерно 50 / 50 Структура записи таблицы несколько числовых уникальных значений значений плюс автоинкрементное поле плюс несколько полей с двоичными данными. На двоичных данных установлен вторичный ключ для построения LEFT JOIN сравнения.
источник

ЕК

Евгений Кривошлыков... in Tarantool
источник

ЕК

Евгений Кривошлыков... in Tarantool
Вот основная таблица которая занимает 99% всех данных
источник

ЕК

Евгений Кривошлыков... in Tarantool
источник

ЕК

Евгений Кривошлыков... in Tarantool
Количество данных очень быстро растет и за пару дней разрастается до 250 ГБ за следующие пару недель увеличится до 2-3 ТБ. И это не предел в перспективе данных бует на десятки ТБ
источник

AK

Alexey Kuzin in Tarantool
Хорошо, почему вы хотите хранить часть данных в памяти? Какие операции с ними происходят и как часто? Можно ли обойтись materialized view?
источник

AL

Andrey L in Tarantool
Всем привет.
Вопрос по вот такой штуковине:
local res = {}
function get_some_data()
   table.clear(res)
   for ...
       res[#res + 1] = {...}
   end
   return res
end
Где живет ответ во время отправки вызывающей стороне?
источник

AL

Andrey L in Tarantool
Если файберы последовательно выполняют эту функцию, то не помешают ли они друг другу?
источник

VG

Vladislav Grubov in Tarantool
хороший вопрос, вообще, если нет yield'ов (то есть res всегда монопольно используется строго одним файбером), то после возврата из луа до fiber_yield'a результат копируется в msgpack (вроде в port)

на сишном уровне
источник

YD

Yaroslav Dynnikov in Tarantool
а вот если после ретурна обработка продолжится и файбер сйилдится, то привет рейс
источник

VG

Vladislav Grubov in Tarantool
ты же согласен, если get_some_data гарантированно не yield'ит то рейса не будет
источник

YD

Yaroslav Dynnikov in Tarantool
смотря кто его вызывает
источник

AL

Andrey L in Tarantool
удаленный клиент
т.е. йилдит
источник

VG

Vladislav Grubov in Tarantool
в таком случае это апишная функция, и yield'ит не она сама, а внутрення машинерия для ответа клиенту
источник