Size: a a a

2020 June 19

AP

Andrey Privalov in Tarantool
капец какой-то took too long: 31.585 sec. при работе со временем как-то так деградирует
источник

EK

Eduard Korolev in Tarantool
если я запущу 3 инстанса lua на машине, я получу 3 использованных ядра с общей памятью?
источник

MM

Max Melentiev in Tarantool
Eduard Korolev
ну значит правильно понимаю, если я делаю длинный цикл на луа в одном запросе, мне нужно беспокоиться о том, чтобы кинуть yield, иначе другие более быстрые запросы все зависнут, так как будут ждать этот 1 длинный цикл
да
источник

AP

Andrey Privalov in Tarantool
по 30 сек и больше took to long. бри небольшом batch_size и отключенных транзакциях
источник

MM

Max Melentiev in Tarantool
Eduard Korolev
если я запущу 3 инстанса lua на машине, я получу 3 использованных ядра с общей памятью?
нет отдельных инстансов луа, только тарантулы. если хотите распараллеливать нагрузку по одним данным, то надо несколько тарантулов объединять в репликасет
источник

MM

Max Melentiev in Tarantool
на каждом тарантуле будет своя копия данных
источник

MS

Mike Siomkin in Tarantool
Mons Anderson
индекс с unicode_ci сделайте
да вот кстати что-то в SQL-то и не работает (
источник

MS

Mike Siomkin in Tarantool
box.execute("select * from \"test\" where upper(\"col1\") like 'A%'")
источник

MS

Mike Siomkin in Tarantool
звучит как тикет?
источник

AK

Alexey Kuzin in Tarantool
Mike Siomkin
box.execute("select * from \"test\" where upper(\"col1\") like 'A%'")
А полный пример можешь скинуть?
источник

EK

Eduard Korolev in Tarantool
ок, подскажите пожалуйста, мне нужно делать like по некоторым полям. Данные нужно хранить в памяти. Я могу все эти данные в 1 ключ запихнуть в memcache, или в tarantool. Записей будет от 3000 до 50000. Именно с этой задачей я пришел к tarantool, потому что мне кажется что как минимум будет выигрыш по памяти. Например мои данные весят 100 мб, если я их в мемкеш закину, то я в каждом php процессе буду доставать все данные и по ним циклом бегать, получится 100мб*кол-во запросов, а если в tarantool, то 100 мб и больше память не затратится
источник

EK

Eduard Korolev in Tarantool
блин, вместо тарантула пишу lua, сори
источник

MS

Mike Siomkin in Tarantool
Alexey Kuzin
А полный пример можешь скинуть?
t = box.schema.create_space("test")
t:format({{name = "id", type = "number"}, {name = "col1", type = "string"}})
t:create_index('primary')
t:create_index("col1_idx", {parts = {{field = "col1", type = "string", collation = "unicode_ci"}}})
t:insert{1, "aaa"}
t:insert{2, "aab"}
t:insert{1, "abc"}

tarantool> box.execute("select * from \"test\" where \"col1\" = 'aaa'")
---
- metadata:
 - name: id
   type: number
 - name: col1
   type: string
 rows:
 - [1, 'aaa']
...

tarantool> box.execute("select * from \"test\" where \"col1\" like 'a%'")
---
- metadata:
 - name: id
   type: number
 - name: col1
   type: string
 rows:
 - [1, 'aaa']
 - [2, 'aab']
 - [3, 'abc']
...

tarantool> box.execute("select * from \"test\" where \"col1\" = 'AAA'")
---
- metadata:
 - name: id
   type: number
 - name: col1
   type: string
 rows: []
...

tarantool> box.execute("select * from \"test\" where \"col1\" like 'A%'")
---
- metadata:
 - name: id
   type: number
 - name: col1
   type: string
 rows: []
...
источник

MS

Mike Siomkin in Tarantool
источник

MS

Mike Siomkin in Tarantool
Mike Siomkin
box.execute("select * from \"test\" where upper(\"col1\") like 'A%'")
тут КПД хуже паравоза конеш
источник

NP

Nikita Pettik in Tarantool
А если явно указать indexed by "col1_idx" ?
источник

OK

Oleg Koshovetc in Tarantool
Eduard Korolev
ок, подскажите пожалуйста, мне нужно делать like по некоторым полям. Данные нужно хранить в памяти. Я могу все эти данные в 1 ключ запихнуть в memcache, или в tarantool. Записей будет от 3000 до 50000. Именно с этой задачей я пришел к tarantool, потому что мне кажется что как минимум будет выигрыш по памяти. Например мои данные весят 100 мб, если я их в мемкеш закину, то я в каждом php процессе буду доставать все данные и по ним циклом бегать, получится 100мб*кол-во запросов, а если в tarantool, то 100 мб и больше память не затратится
все отдаваемые наружу значения аллоцируются на тарантуловой арене (поправьте меня, если я неправ), поэтому расход по памяти может быть побольше, а так выглядит, как нормальный юзкейс
источник

AK

Alexey Kuzin in Tarantool
Eduard Korolev
ок, подскажите пожалуйста, мне нужно делать like по некоторым полям. Данные нужно хранить в памяти. Я могу все эти данные в 1 ключ запихнуть в memcache, или в tarantool. Записей будет от 3000 до 50000. Именно с этой задачей я пришел к tarantool, потому что мне кажется что как минимум будет выигрыш по памяти. Например мои данные весят 100 мб, если я их в мемкеш закину, то я в каждом php процессе буду доставать все данные и по ним циклом бегать, получится 100мб*кол-во запросов, а если в tarantool, то 100 мб и больше память не затратится
Вы пришли по адресу, однако если у вас несколько полей, и вы собираетесь делать like только потому что собираетесь объединить их в одно поле, то лучше так не делать
источник

AK

Alexey Kuzin in Tarantool
Eduard Korolev
ок, подскажите пожалуйста, мне нужно делать like по некоторым полям. Данные нужно хранить в памяти. Я могу все эти данные в 1 ключ запихнуть в memcache, или в tarantool. Записей будет от 3000 до 50000. Именно с этой задачей я пришел к tarantool, потому что мне кажется что как минимум будет выигрыш по памяти. Например мои данные весят 100 мб, если я их в мемкеш закину, то я в каждом php процессе буду доставать все данные и по ним циклом бегать, получится 100мб*кол-во запросов, а если в tarantool, то 100 мб и больше память не затратится
Лучше задайте несколько полей и индекс по этим полям, и ищите по индексу указывая части
источник

AK

Alexey Kuzin in Tarantool
Либо постройте многокритериальный индекс используя тип индекса  BITSET
источник