Size: a a a

2021 February 11

AD

Alex D in Tarantool
Alexey Kuzin
Зависит от количества. При разбивке вы тоже потратите время, так как надо будет разложить в соответствии с номером бакета данные
исходим из то что время для разложения на нашей стороне нам не важно, но очень критично после разложения на сколько быстро они подымится в Тарантуле, Т.е. меня интересует , что мне надо сделать чтоб Тарантулу было удобно, и он заливал данные к себе как можно быстрей.
источник

AK

Alexey Kuzin in Tarantool
Alex D
исходим из то что время для разложения на нашей стороне нам не важно, но очень критично после разложения на сколько быстро они подымится в Тарантуле, Т.е. меня интересует , что мне надо сделать чтоб Тарантулу было удобно, и он заливал данные к себе как можно быстрей.
Вы планируете единоразово залить данные или периодически такое проворачивать?
источник

AD

Alex D in Tarantool
Alexey Kuzin
Вы планируете единоразово залить данные или периодически такое проворачивать?
допустим переодически
источник

AK

Alexey Kuzin in Tarantool
Alex D
допустим переодически
Данные будут дописываться или перезаписываться?
источник

AD

Alex D in Tarantool
Alexey Kuzin
Данные будут дописываться или перезаписываться?
оба случая, в случае ошибки в наших расчетах нам может потребоваться перезаписать существенные объемы.
в случае добавления информации, залить с нуля новые талицы на 10-100 милионов.
источник

VG

Vladislav Grubov in Tarantool
Проще написать на луа простенький скрипт, читающий csv файл, собирающий пачки по 1000 записей и рассылающий апдейты по стораджам, на которых изменения будут также приниматься пачками
источник

AK

Alexey Kuzin in Tarantool
Да, выглядит так что заменой файлов или заливкой сырых данных не обойтись. Также вам понадобится хранилище состояния, чтобы избежать дырок, дублирования и чтобы иметь возможность при ошибках не начинать сначала
источник

ИЛ

Илья Лебедев... in Tarantool
вечер добрый. подскажите, есть где-то централизованно инфа, как менялся апи тарантула со временем? у меня достаточно много луа-кода написано под 2.5, а надо сделать совместимость с 1.10
источник
2021 February 12

MA

Mons Anderson in Tarantool
Илья Лебедев
вечер добрый. подскажите, есть где-то централизованно инфа, как менялся апи тарантула со временем? у меня достаточно много луа-кода написано под 2.5, а надо сделать совместимость с 1.10
Прямо централизованного места по API, кроме https://github.com/tarantool/tarantool/releases сходу в голову не приходит
Можно @Nick_Volynkin попросить диффы по истории изменения документации

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

В целом я бы просто попробовал запустить на 1.10 и посмотрел что отвалилось.

А если не секрет, в чём для вас смысл поддержки 1.10?
источник

ИЛ

Илья Лебедев... in Tarantool
Mons Anderson
Прямо централизованного места по API, кроме https://github.com/tarantool/tarantool/releases сходу в голову не приходит
Можно @Nick_Volynkin попросить диффы по истории изменения документации

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

В целом я бы просто попробовал запустить на 1.10 и посмотрел что отвалилось.

А если не секрет, в чём для вас смысл поддержки 1.10?
спасибо. и диффы бы очень пригодились, т.к. кода достаточно много.
а смысл 1,10 - делаю модуль, который неизвестно на какой версии будет работать. в целом то ничего экзотического там нет, но например при запуске на чем то даже не сильно старом инстансы падали с не очень понятными логами. жаль версию уже не вспомню, да и логи не сохранились, тогда это не актуально было. а из того что вспоминается сразу - box.is_in_txn на ранних версиях не увидел
источник

ИЛ

Илья Лебедев... in Tarantool
и еще вопрос. есть сервисные файберы, которые время от времени просыпаются и выполняют свою работу. какой минимальный интервал sleep() будет разумным, чтобы не оказалось что эти файберы отбирают впустую ресурсы у других?
источник

ИЛ

Илья Лебедев... in Tarantool
Илья Лебедев
спасибо. и диффы бы очень пригодились, т.к. кода достаточно много.
а смысл 1,10 - делаю модуль, который неизвестно на какой версии будет работать. в целом то ничего экзотического там нет, но например при запуске на чем то даже не сильно старом инстансы падали с не очень понятными логами. жаль версию уже не вспомню, да и логи не сохранились, тогда это не актуально было. а из того что вспоминается сразу - box.is_in_txn на ранних версиях не увидел
upd: дифф уже не надо, гитхаба хватило
источник

SO

Sergey Ostanevich in Tarantool
Илья Лебедев
и еще вопрос. есть сервисные файберы, которые время от времени просыпаются и выполняют свою работу. какой минимальный интервал sleep() будет разумным, чтобы не оказалось что эти файберы отбирают впустую ресурсы у других?
это ж напрямую зависит от работы, которую они выполняют. если это подсчет записей в спейсе - то может сильно потянуть в любом случае

миллион yields тянет примерно на 2сек:

local fiber=require('fiber')
local clock=require('clock')

function test()
       local start = clock.realtime()
       for i = 1,1e6 do
               fiber.yield()
       end
       print(clock.realtime() - start)
end

local f = fiber.create(test)

f:set_joinable(true)
fiber.join(f)
os.exit()


$ tarantool test.lua
1.6286141872406
источник

VG

Vladislav Grubov in Tarantool
Сильно зависит от того, как часто их нужно будить. Если файбера занимаются какой-нибудь очень простой математикой, нормально спать 10мс. Но если работа у файбера появляется, например, каждые 100мс, то такие слипы будут слишком частыми
источник

KO

Konstantin Osipov in Tarantool
Sergey Ostanevich
это ж напрямую зависит от работы, которую они выполняют. если это подсчет записей в спейсе - то может сильно потянуть в любом случае

миллион yields тянет примерно на 2сек:

local fiber=require('fiber')
local clock=require('clock')

function test()
       local start = clock.realtime()
       for i = 1,1e6 do
               fiber.yield()
       end
       print(clock.realtime() - start)
end

local f = fiber.create(test)

f:set_joinable(true)
fiber.join(f)
os.exit()


$ tarantool test.lua
1.6286141872406
видимо это дебаг билд или очень медленная машина
источник

KO

Konstantin Osipov in Tarantool
у меня на лаптопе в 8 раз быстрее
источник

TS

Timur Safin in Tarantool
Konstantin Osipov
у меня на лаптопе в 8 раз быстрее
хмм, интересно. очень тест волатилен (у меня на wsl прыгает от 0.4 до 0.9). У тебя прям стабильно 0.2?
источник

KO

Konstantin Osipov in Tarantool
% ./src/tarantool foo.lua
0.25006818771362
kostja@starling ~/work/picodata/tarantool
% vim foo.lua            
kostja@starling ~/work/picodata/tarantool
% ./src/tarantool foo.lua
0.25230836868286
kostja@starling ~/work/picodata/tarantool
% vim foo.lua            
kostja@starling ~/work/picodata/tarantool
% ./src/tarantool foo.lua
0.24330019950867
источник

KO

Konstantin Osipov in Tarantool
это я ещё играл с jit.off
источник

A:

Aleks Raiden :: Coin... in Tarantool
коллеги, а кто здесь пользуется коннектором на Node.js, который https://www.npmjs.com/package/tarantool-driver

попробовал, вроде все ок, но есть ряд подводных камней, которые или я не понял, или все же баги/недоделки :(
источник