Size: a a a

2021 January 22

SP

Sergey Petrenko in Tarantool
И да, похоже что реплика не успевает за мастером
источник

MA

Mons Anderson in Tarantool
Sergey Petrenko
Это не джоин. Это синк уже
Я хочу понять: чистый ребутстрап поможет запустить реплику?
Ну и на такой нагрузке непонятно, с чего ей не успевать
источник

SP

Sergey Petrenko in Tarantool
Mons Anderson
Я хочу понять: чистый ребутстрап поможет запустить реплику?
Ну и на такой нагрузке непонятно, с чего ей не успевать
Должно помочь подключить реплику когда вообще нагрузки нет. Ребутстрап кажется не поможет. И дело не только в нагрузке, а ещё в количестве данных. Пока мастер отсылает снапшот, он успевает накопить данные в икслоге, и их отправляет с гораздо большим рпс
источник

MA

Mons Anderson in Tarantool
Sergey Petrenko
Должно помочь подключить реплику когда вообще нагрузки нет. Ребутстрап кажется не поможет. И дело не только в нагрузке, а ещё в количестве данных. Пока мастер отсылает снапшот, он успевает накопить данные в икслоге, и их отправляет с гораздо большим рпс
Ну, отключение нагрузки, как мы понимаем, это не вариант.
источник

HT

Harry Truman in Tarantool
Всем привет!
Вопрос такой а Tarantool есть встроеннные средства экранирования символов? А то любая кавычка и сразу insert перестает срабатывать.
источник

MA

Mons Anderson in Tarantool
о боже. вы ведь не делаете SQL конкатенацией, правда?
источник

AT

Alexander Turenko in Tarantool
Справедливости ради, у нас дока могла подтолкнуть к такому решению: https://github.com/tarantool/doc/issues/1478
источник

MA

Mons Anderson in Tarantool
😭
источник

AT

Alexander Turenko in Tarantool
Я бы и в текущей формулировке добавил, что «второй путь» — это когда по-другому совсем никак.
источник

DS

Dmitry Sharonov in Tarantool
Mons Anderson
о боже. вы ведь не делаете SQL конкатенацией, правда?
я про это на скринигах спрашиваю
источник

HT

Harry Truman in Tarantool
Mons Anderson
о боже. вы ведь не делаете SQL конкатенацией, правда?
Делаю. Я что-то упустил?
источник

MA

Mons Anderson in Tarantool
Harry Truman
Делаю. Я что-то упустил?
SQL Injection...
источник

MA

Mons Anderson in Tarantool
единственный нормальный вариант — это испольовать плейсхолдеры
box.execute('select * from "x" where "a" = ?', ...)
источник

AT

Alexander Turenko in Tarantool
tarantool> box.execute('select ?, ?', {42, 43})
---
- metadata:
 - name: COLUMN_1
   type: integer
 - name: COLUMN_2
   type: integer
 rows:
 - [42, 43]
...
tarantool> box.execute('select :bar, :foo', {{[':foo'] = 42}, {[':bar'] = 43}})
---
- metadata:
 - name: COLUMN_1
   type: integer
 - name: COLUMN_2
   type: integer
 rows:
 - [43, 42]
...
источник

AT

Alexander Turenko in Tarantool
Для примера.
источник

HT

Harry Truman in Tarantool
Mons Anderson
SQL Injection...
Да нет, с этим всё нормально. От клиента запросы фильтруем. Просто при  переносе  данных из Postgres есть строки которые  содержат одинарные кавычки и эти кавычки нужно сохранить. Как лучше это сделать?  Используем Python коннектор.
источник

A

Andrey in Tarantool
Sergey Petrenko
И да, похоже что реплика не успевает за мастером
Но почему на старом сервере реплика нормально успевает и другие 10 шт тоже нормально успевают, а на новом сервере нет?
источник

A

Andrey in Tarantool
Dmitry Sharonov
350 рпс на auth?

(извините, это не имеет отношения к вопросу)
По поводу почему так много, спрошу у программистов, почему так получается, возможно каждый раз создаётся соединение
источник

HT

Harry Truman in Tarantool
Alexander Turenko
tarantool> box.execute('select ?, ?', {42, 43})
---
- metadata:
 - name: COLUMN_1
   type: integer
 - name: COLUMN_2
   type: integer
 rows:
 - [42, 43]
...
tarantool> box.execute('select :bar, :foo', {{[':foo'] = 42}, {[':bar'] = 43}})
---
- metadata:
 - name: COLUMN_1
   type: integer
 - name: COLUMN_2
   type: integer
 rows:
 - [43, 42]
...
Мы используем следующий код
await conn.sql(f"insert into info(id, title, body) "
                               f"values ( {row['id']}, '{row['title']}', '{row['body']}' )" )
источник

MA

Mons Anderson in Tarantool
Harry Truman
Мы используем следующий код
await conn.sql(f"insert into info(id, title, body) "
                               f"values ( {row['id']}, '{row['title']}', '{row['body']}' )" )
а должно быть
await conn.sql(f"insert into info(id, title, body) values (?, ?, ?)", {row['id'], row['title'], row['body']})
источник