Size: a a a

2021 February 12

IU

Ivan Ussik in Tarantool
Добрый день!
Подскажите, как мне сделать async http запросы с ответом.
Т.е я хочу сделать запрос по нескольким Url, дождаться от всех ответ, собрать в табоицу и вернуть ответ исходному клиенту (который делал запрос в tarantool)?
источник

AT

Alexander Turenko in Tarantool
Ivan Ussik
Добрый день!
Подскажите, как мне сделать async http запросы с ответом.
Т.е я хочу сделать запрос по нескольким Url, дождаться от всех ответ, собрать в табоицу и вернуть ответ исходному клиенту (который делал запрос в tarantool)?
В файберах поделать.
источник

AT

Alexander Turenko in Tarantool
Можно ответы в fiber channel положить и вычитывать оттуда, можно файберы сделать joinable.
источник

IU

Ivan Ussik in Tarantool
Alexander Turenko
Можно ответы в fiber channel положить и вычитывать оттуда, можно файберы сделать joinable.
Спасибо, буду изучать как это все вмести собрать и реализовать.
источник

MA

Mons Anderson in Tarantool
Ivan Ussik
Добрый день!
Подскажите, как мне сделать async http запросы с ответом.
Т.е я хочу сделать запрос по нескольким Url, дождаться от всех ответ, собрать в табоицу и вернуть ответ исходному клиенту (который делал запрос в tarantool)?
Мы это в тренингах показываем, сейчас найду вам пример
источник

DS

Dmitry Sharonov in Tarantool
я такое на собесах иногда спрашиваю
источник

MA

Mons Anderson in Tarantool
Ivan Ussik
Добрый день!
Подскажите, как мне сделать async http запросы с ответом.
Т.е я хочу сделать запрос по нескольким Url, дождаться от всех ответ, собрать в табоицу и вернуть ответ исходному клиенту (который делал запрос в tarantool)?
источник

ИЛ

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

VG

Vladislav Grubov in Tarantool
yield = sleep(0)
источник

ИЛ

Илья Лебедев... in Tarantool
ну файберы без слипа(один йилд) вроде подвешивали инстанс. а вот есть ли смысл йилдить при условии, что раз в n таплов или если таплы для обработки закончились, файбер уснет - пока не ясно
источник

IU

Ivan Ussik in Tarantool
Спасибо!
источник

VG

Vladislav Grubov in Tarantool
Илья Лебедев
ну файберы без слипа(один йилд) вроде подвешивали инстанс. а вот есть ли смысл йилдить при условии, что раз в n таплов или если таплы для обработки закончились, файбер уснет - пока не ясно
мы как-то подбирали на 2660, что если yield'ить раз в 700 таплов на 0 секунд, инстанс потребляет почти 100% CPU, но при этом полноценно отвечает. Как правило, если нужно просканить индекс и посчитать простенькие агрегаты над данными, обычно yield'ят раз в 200-300 таплов на 10мс. Это достаточно легко профилируется, просто запускаете такие файберы и смотрите на потребление, а также на среднее время исполнения других запросов. Также, хорошей практикой является вынесение таких констант в некоторое глобальное пространство или конфиги, чтобы можно было модифицировать в рантайме (с разумными ограничениями на минимальные/максимальные границы)
источник

ИЛ

Илья Лебедев... in Tarantool
Vladislav Grubov
мы как-то подбирали на 2660, что если yield'ить раз в 700 таплов на 0 секунд, инстанс потребляет почти 100% CPU, но при этом полноценно отвечает. Как правило, если нужно просканить индекс и посчитать простенькие агрегаты над данными, обычно yield'ят раз в 200-300 таплов на 10мс. Это достаточно легко профилируется, просто запускаете такие файберы и смотрите на потребление, а также на среднее время исполнения других запросов. Также, хорошей практикой является вынесение таких констант в некоторое глобальное пространство или конфиги, чтобы можно было модифицировать в рантайме (с разумными ограничениями на минимальные/максимальные границы)
ну пока подбирал, как раз вынес, чтобы не шариться по всему коду. а за инфу спасибо, буду пожалуй из этого и исходить. только еще один уточняющий вопрос: вставка пачки таплов в транзакции по скорости же вроде должна быть экономнее, чем по одному?
источник

VG

Vladislav Grubov in Tarantool
да, потому что в wal отдаете сразу пачку изменений, и не прыгаете туда-обратно на каждую запись
источник

AC

Alexey Choffу in Tarantool
Если
quota_used_ratio = 60.0
items_used_ratio = 99.9
это же норм?
источник

DS

Dmitry Sharonov in Tarantool
да
источник

AC

Alexey Choffу in Tarantool
спс
источник

KO

Konstantin Osipov in Tarantool
Заглянул тут в реализацию raft
источник

KO

Konstantin Osipov in Tarantool
@gerold103 txn_limbo_ack имеет сложность N*M
источник

KO

Konstantin Osipov in Tarantool
где N - число событий в очереди, M - число реплик.
источник