Size: a a a

2020 September 10

ДМ

Дмитрий Мищенко... in Tarantool
Michael Filonenko
log.info(realKey) на второй строке надо бы сделать
0 вроде как
источник

MF

Michael Filonenko in Tarantool
ноль?
источник

MF

Michael Filonenko in Tarantool
в тех случаях когда возвращается весь спейс ?
источник

ДМ

Дмитрий Мищенко... in Tarantool
Michael Filonenko
в тех случаях когда возвращается весь спейс ?
Да извините, когда нормальные данные вот так:
- - 1110769967
 -
 - 0
когда все то: []
источник

ДМ

Дмитрий Мищенко... in Tarantool
Можно рестартить?)
источник

DS

Dmitry Sharonov in Tarantool
ищите проблему в getRealKey
источник

MA

Mons Anderson in Tarantool
Что в ней, кстати?
источник

MF

Michael Filonenko in Tarantool
{} пустая таблица в паирс даст фулскан
источник

MF

Michael Filonenko in Tarantool
Дмитрий Мищенко
Можно рестартить?)
нужно править код
источник

MF

Michael Filonenko in Tarantool
Дмитрий Мищенко
Можно рестартить?)
и вопрос с обезличенными снипетами если можно на стековерфло - спасибо)
источник

ДМ

Дмитрий Мищенко... in Tarantool
Mons Anderson
Что в ней, кстати?
function model.getRealKey(space, key)
   if spaces[space] == nil then
       return {}
   end

   local realKey = {}
   for i, field in ipairs(spaces[space].indexes.primary.parts) do
       table.insert(realKey, key[field])
   end

   return realKey
end
источник

ДМ

Дмитрий Мищенко... in Tarantool
и модель
источник

ДМ

Дмитрий Мищенко... in Tarantool
stream_geo_device = {
       format = {
           { 'bucket_id', 'unsigned' }, --1
           { 'stream_id', 'unsigned' }, --2
           { 'geo', 'string' }, --3
           { 'device', 'unsigned' }, --4
           { 'value', 'scalar' }, --5
           { 'expire_at', 'unsigned' }, --6
       },
       shardingKeyParts = { 'stream_id', 'geo', 'device' },
       expirationType = 'expire_at',
       indexes = {
           primary = {
               type = 'tree',
               unique = true,
               parts = { 'stream_id', 'geo', 'device' }
           },
           bucket_id = {
               type = 'tree',
               unique = false,
               parts = { 'bucket_id' }
           },
       }
   },
источник

ДМ

Дмитрий Мищенко... in Tarantool
Michael Filonenko
и вопрос с обезличенными снипетами если можно на стековерфло - спасибо)
Просто задать вопрос вы на него ответите или как?)
источник

MF

Michael Filonenko in Tarantool
Дмитрий Мищенко
Просто задать вопрос вы на него ответите или как?)
да
источник

MF

Michael Filonenko in Tarantool
ответ будет с нашей стороны
источник

MA

Mons Anderson in Tarantool
Дмитрий Мищенко
function model.getRealKey(space, key)
   if spaces[space] == nil then
       return {}
   end

   local realKey = {}
   for i, field in ipairs(spaces[space].indexes.primary.parts) do
       table.insert(realKey, key[field])
   end

   return realKey
end
Это довольно тяжеловесная функция
Посмотрите вот тут, как это можно такое разово "скомпилировать":
https://github.com/moonlibs/spacer/blob/master/spacer.lua#L55-L104
https://github.com/moonlibs/xqueue/blob/master/xqueue.lua#L200-L220

получаются очень быстрые функции, которые один раз создаются для спейса
там-же можно сделать возврат box.NULL вместо nil, который защитит от fullscan'а
источник

ДМ

Дмитрий Мищенко... in Tarantool
Mons Anderson
Это довольно тяжеловесная функция
Посмотрите вот тут, как это можно такое разово "скомпилировать":
https://github.com/moonlibs/spacer/blob/master/spacer.lua#L55-L104
https://github.com/moonlibs/xqueue/blob/master/xqueue.lua#L200-L220

получаются очень быстрые функции, которые один раз создаются для спейса
там-же можно сделать возврат box.NULL вместо nil, который защитит от fullscan'а
Большое спасибо
источник

MA

Mons Anderson in Tarantool
(где-то у нас была прямо exctract_key, но не помню где :)
источник

MF

Michael Filonenko in Tarantool
Mons Anderson
(где-то у нас была прямо exctract_key, но не помню где :)
в key_def ?
источник