215 похожих чатов

Не получается выполнить SQL запрос на всех шардах с целью

сделать выборку данных
Запущен Tarantool Cartridge. Используются роли 'cartridge.roles.crud-router' и 'cartridge.roles.crud-storage'
Пример с выполнением запроса на всех шардах взят отсюда: https://www.tarantool.io/ru/doc/latest/reference/reference_rock/vshard/vshard_api/#lua-function.vshard.router.routeall

На роли, унаследованной от 'crud-router' добавляю такое тело функции для выполнения SQL запроса
---
local shards, error = vshard_router.routeall()

log.warn('query: ' .. query)
for id, replicaset in pairs(shards) do
log.warn('calling: ' .. id)
local set_result, error = replicaset:call('box.execute', {query})
log.warn('called ' .. id)

if (result == nil) then
result = set_result
else
utils.table.add(result.rows, set_result.rows)
end
end
---

Вот что выводится в логе после вызова данной функции:
---
cartridge_002.router | 2022-02-02 19:02:53.388 [3796] main/195/http/10.0.2.2:59501 router.lua:123 W> query:
cartridge_002.router | SELECT "spaceA"."name",
cartridge_002.router | "spaceB"."name"
cartridge_002.router | FROM "spaceA" INNER JOIN "spaceB" ON "spaceA"."spaceB_id" = "spaceB"."id"
cartridge_002.router | LIMIT 10
cartridge_002.router | 2022-02-02 19:02:53.388 [3796] main/195/http/10.0.2.2:59501 router.lua:125 W> calling: 152ad4e8-e9d2-45c4-aea1-80877e88f457
cartridge_002.router | 2022-02-02 19:02:53.889 [3796] main/195/http/10.0.2.2:59501 replicaset.lua:362 E> Exception during calling 'box.execute' on 'localhost:3302(admin@localhost:3302)': Timeout exceeded
cartridge_002.router | 2022-02-02 19:02:53.890 [3796] main/195/http/10.0.2.2:59501 router.lua:127 W> called 152ad4e8-e9d2-45c4-aea1-80877e88f457
cartridge_002.s2-master | 2022-02-02 19:02:56.088 [3812] main/104/membership.main I> Could not reach node: localhost:3302 - suspect
cartridge_002.router | 2022-02-02 19:02:56.636 [3796] main/104/membership.main I> Could not reach node: localhost:3302 - suspect
cartridge_002.s1-replica | 2022-02-02 19:02:56.733 [3805] relay/127.0.0.1:43546/101/main coio.cc:340 !> SystemError timed out: Connection timed out
cartridge_002.s1-replica | 2022-02-02 19:02:56.733 [3805] relay/127.0.0.1:43546/101/main C> exiting the relay loop
cartridge_002.s1-replica | 2022-02-02 19:02:57.066 [3805] main/104/membership.main I> Could not reach node: localhost:3302 - suspect
cartridge_002.s1-master | 2022-02-02 19:02:57.177 [3799] main/134/applier/admin@localhost:3303 I> can't read row
cartridge_002.s1-master | 2022-02-02 19:02:57.178 [3799] main/134/applier/admin@localhost:3303 coio.cc:340 !> SystemError timed out: Connection timed out
cartridge_002.s1-master | 2022-02-02 19:02:57.178 [3799] main/134/applier/admin@localhost:3303 I> will retry every 1.00 second
cartridge_002.s1-master | 2022-02-02 19:02:57.181 [3799] main/106/membership.handle I> Refuting the rumor that we are suspect
---

с первого же опрошенного репликасета (s1-master) сразу вылетает "Exception during calling 'box.execute': Timeout exceeded" и затем остальные образцы не могут до него достучатся. Так происходит каждый раз при вызове данной функции.

Если это решение в корне не правильное, возникает вопрос: Какой стандартный метод существует для вызова SQL запросов на Cartridge кластере?

1 ответов

21 просмотр

а вручную на ноде SQL запрос за сколько выполняется? Если руками подключиться и там запустить?

Похожие вопросы

Обсуждают сегодня

Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
48
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
а проверьте, собирается ли у кого сейчас транк лазаря через делюкс? у меня вот: fpcupdeluxe: info: Lazarus Native Installer (BuildModuleCustom: UserIDE): LazBuild: building Us...
Iluha Companets
20
This is a big issue. Just by being a citizen of a country, you are denied to contribute to Open Source software: https://youtu.be/L5Ec5jrpLVk?si=1iIuHnMPbCB4anV-
Sharuzzaman Ahmat Raslan
72
добрый день. возможно ли изменить цвет окон лазаруса? Как?
Budemposmotret
35
Мне тут приспичило встроить в программу форматировние текста SQL, расставить переносы строк и отступы так, чтобы лучше читалось. Я что-то свое изобразил, оно после ключевых сл...
Sergey Bodrov
11
Господа, а кто-нибудь сталкивался с размещением на TTabControl/TTabSheet множества контролов (> 100) с последующими External: Access violation? Вот буквально на ровном месте. ...
Dmitry
29
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Does anyone have some zeroday's left?
Wito!d ♥️🩷
44
Добрый день. Опять снова хочу обратиться к вам за помощью. После создания проэкта stack new, lazy.nvim + nvim-lspconfig/haskell-tools + hlint, ormolu из mason + hls из ghcup ...
Nannk
8
Карта сайта