Size: a a a

2020 August 04

AT

Alexander Turenko in Tarantool
Andrey
еще пару моментов.. приложение на cartridge >= 2.1.1 из роутера и хранилища+приложение
перезапустил инстансы на обоих серверах

сделал цикл который 1000 раз кидал в роутер по 1000 одинаковых записей, которые в итоге делают upsert одних и тех же данных
api.imports.localParams.prices( 1000 х [ 'product_id' => 9787, 'location'   => 999, 'type'       => 1,  'price'      => 10000,] )
без sleepов

дальше роутер на том же сервере, что и мастер делает
function callMaster(method, params)     return defaultRouter:callrw(1, 'storage.imports.' .. method, { params }, { timeout = 1800 }) end
return callMaster('localParams.prices', 1000записей)

на мастере по каждой из 1000 записей, без транзакций
local tuple = {productId,location,price, -1}
   box.space.product_internet:upsert(tuple, { { '=', 3, price } })


куча ошибок
SystemError unexpected EOF when reading from socket, called on fd 35, aka 10.1.1.3:3312, peer of 10.1.1.3:41312: Broken pipe

и потом
V> Got a corrupted row:
V> 00000000: 84 00 09 02 01 03 CE 0F EB 4C 8C 04 CB 41 D7 CA
V> 00000010: 58 20 2E 2D 55 84 10 CD 02 08 15 01 28 91 93 A1
V> 00000020: 3D 03 CD 27 10 21 94 CD 01 1A CD 03 E7 CE 00 00
V> 00000030: 00
I> can't read row
xrow.c:207 E> ER_INVALID_MSGPACK: Invalid MsgPack - packet body

расшифровать который я не могу
в данном случае, возможно, слишком много заливается, но в реальности там 5тысяч изменений от силы - должно же хватать и проца (загрузка небольшая) и сети (1G или 10G)
tarantool> msgpack.decode(('84 00 09 02 01 03 CE 0F EB 4C 8C 04 CB 41 D7 CA 58 20 2E 2D 55 84 10 CD 02 08 15 01 28 91 93 A1 3D 03 CD 27 10 21 94 CD 01 1A CD 03 E7 CE 00 00 00'):gsub(' ', ''):fromhex())
---
- {0: 9, 2: 1, 4: 1596547200.7215, 3: 267078796}
- 22
...
источник

VS

Vadim Shadrin in Tarantool
Добавил listen? Тишина
источник

AT

Alexander Turenko in Tarantool
Andrey
еще пару моментов.. приложение на cartridge >= 2.1.1 из роутера и хранилища+приложение
перезапустил инстансы на обоих серверах

сделал цикл который 1000 раз кидал в роутер по 1000 одинаковых записей, которые в итоге делают upsert одних и тех же данных
api.imports.localParams.prices( 1000 х [ 'product_id' => 9787, 'location'   => 999, 'type'       => 1,  'price'      => 10000,] )
без sleepов

дальше роутер на том же сервере, что и мастер делает
function callMaster(method, params)     return defaultRouter:callrw(1, 'storage.imports.' .. method, { params }, { timeout = 1800 }) end
return callMaster('localParams.prices', 1000записей)

на мастере по каждой из 1000 записей, без транзакций
local tuple = {productId,location,price, -1}
   box.space.product_internet:upsert(tuple, { { '=', 3, price } })


куча ошибок
SystemError unexpected EOF when reading from socket, called on fd 35, aka 10.1.1.3:3312, peer of 10.1.1.3:41312: Broken pipe

и потом
V> Got a corrupted row:
V> 00000000: 84 00 09 02 01 03 CE 0F EB 4C 8C 04 CB 41 D7 CA
V> 00000010: 58 20 2E 2D 55 84 10 CD 02 08 15 01 28 91 93 A1
V> 00000020: 3D 03 CD 27 10 21 94 CD 01 1A CD 03 E7 CE 00 00
V> 00000030: 00
I> can't read row
xrow.c:207 E> ER_INVALID_MSGPACK: Invalid MsgPack - packet body

расшифровать который я не могу
в данном случае, возможно, слишком много заливается, но в реальности там 5тысяч изменений от силы - должно же хватать и проца (загрузка небольшая) и сети (1G или 10G)
А есть возможность взять последний релиз (2.5.1) и погонять под той же нагрузкой?
источник

A

Andrey in Tarantool
Alexander Turenko
tarantool> msgpack.decode(('84 00 09 02 01 03 CE 0F EB 4C 8C 04 CB 41 D7 CA 58 20 2E 2D 55 84 10 CD 02 08 15 01 28 91 93 A1 3D 03 CD 27 10 21 94 CD 01 1A CD 03 E7 CE 00 00 00'):gsub(' ', ''):fromhex())
---
- {0: 9, 2: 1, 4: 1596547200.7215, 3: 267078796}
- 22
...
это должна быть фактическая строка после изменения? просто эти данные совсем не похожи на переданные, на итоговые.. вообще ни на что не похожи
источник

A

Andrey in Tarantool
Alexander Turenko
А есть возможность взять последний релиз (2.5.1) и погонять под той же нагрузкой?
попробую
источник

AT

Alexander Turenko in Tarantool
Andrey
это должна быть фактическая строка после изменения? просто эти данные совсем не похожи на переданные, на итоговые.. вообще ни на что не похожи
Это похоже на заголовок пакета.
источник

AT

Alexander Turenko in Tarantool
От upsert.
источник

AT

Alexander Turenko in Tarantool
$ date --date=@1596547200 -R
Tue, 04 Aug 2020 16:20:00 +0300

Вот, например, таймстемп получасовой давности.
источник

KN

Konstantin Nazarov in Tarantool
Vadim Shadrin
Вот интересно Костя Назаров еще работает в mail.ru ?
работаю. я занимаюсь Tarantool Enterprise
источник

VS

Vadim Shadrin in Tarantool
Очень приятно познакомиться
источник

VS

Vadim Shadrin in Tarantool
Респект
источник

KN

Konstantin Nazarov in Tarantool
Vadim Shadrin
МM..  теперь вопрос как мне в консоль попасть
docker exec -ti <container> console
источник

KN

Konstantin Nazarov in Tarantool
Vadim Shadrin
Очень приятно познакомиться
взаимно :)
источник

VS

Vadim Shadrin in Tarantool
Не работает консоль, видимо потомучто tarantool-entrypoint.lua не загружается
источник

KN

Konstantin Nazarov in Tarantool
покажи докерфайл
источник

VS

Vadim Shadrin in Tarantool
FROM tarantool/tarantool
COPY app.lua /opt/tarantool
CMD ["/usr/local/bin/tarantool", "/opt/tarantool/app.lua"]
источник

AT

Alexander Turenko in Tarantool
Andrey
еще пару моментов.. приложение на cartridge >= 2.1.1 из роутера и хранилища+приложение
перезапустил инстансы на обоих серверах

сделал цикл который 1000 раз кидал в роутер по 1000 одинаковых записей, которые в итоге делают upsert одних и тех же данных
api.imports.localParams.prices( 1000 х [ 'product_id' => 9787, 'location'   => 999, 'type'       => 1,  'price'      => 10000,] )
без sleepов

дальше роутер на том же сервере, что и мастер делает
function callMaster(method, params)     return defaultRouter:callrw(1, 'storage.imports.' .. method, { params }, { timeout = 1800 }) end
return callMaster('localParams.prices', 1000записей)

на мастере по каждой из 1000 записей, без транзакций
local tuple = {productId,location,price, -1}
   box.space.product_internet:upsert(tuple, { { '=', 3, price } })


куча ошибок
SystemError unexpected EOF when reading from socket, called on fd 35, aka 10.1.1.3:3312, peer of 10.1.1.3:41312: Broken pipe

и потом
V> Got a corrupted row:
V> 00000000: 84 00 09 02 01 03 CE 0F EB 4C 8C 04 CB 41 D7 CA
V> 00000010: 58 20 2E 2D 55 84 10 CD 02 08 15 01 28 91 93 A1
V> 00000020: 3D 03 CD 27 10 21 94 CD 01 1A CD 03 E7 CE 00 00
V> 00000030: 00
I> can't read row
xrow.c:207 E> ER_INVALID_MSGPACK: Invalid MsgPack - packet body

расшифровать который я не могу
в данном случае, возможно, слишком много заливается, но в реальности там 5тысяч изменений от силы - должно же хватать и проца (загрузка небольшая) и сети (1G или 10G)
источник

AT

Alexander Turenko in Tarantool
Т. е. конец body не совпадает с тем, что записано в заголовке пакета.
источник

AT

Alexander Turenko in Tarantool
или msgpack некорректный, но он корректный.
источник

VS

Vadim Shadrin in Tarantool
Я до дома поехал. Костя, если мысли будут напиши. Я через часик посмотрю
источник