Size: a a a

2020 November 10

MA

Mons Anderson in Tarantool
в общем это звучит как запрос на "магию"
никакой магии нет. всё ходит по сети. если вам нужно распространять что-то на все узлы, вам нужно сделать запрос по сети на все узлы.
источник

ИЛ

Илья Лебедев... in Tarantool
да понятно что сами данные не телепортируются. хотелось просто их переносить пореже и пачками побольше
источник

AK

Alexey Kuzin in Tarantool
Илья Лебедев
да понятно что сами данные не телепортируются. хотелось просто их переносить пореже и пачками побольше
Читайте пачки, собирайте в пачки, отпавляйте пачки
источник

MA

Mons Anderson in Tarantool
организуйте небольшую очередь, переносите пачками раз в интервал времени
источник

ИЛ

Илья Лебедев... in Tarantool
Mons Anderson
организуйте небольшую очередь, переносите пачками раз в интервал времени
ну вот видимо так и буду делать
источник

ИЛ

Илья Лебедев... in Tarantool
спасибо
источник

С

Сергей in Tarantool
Mons Anderson
организуйте небольшую очередь, переносите пачками раз в интервал времени
А можно пример кода
источник

MA

Mons Anderson in Tarantool
для embedded очереди можно взять https://github.com/moonlibs/xqueue
источник

Sergey Й in Tarantool
Mons Anderson
для embedded очереди можно взять https://github.com/moonlibs/xqueue
Это та самая, которую долго собирался выложить?
источник

ЯШ

Ярослав Шумаков... in Tarantool
Илья Лебедев
да понятно что сами данные не телепортируются. хотелось просто их переносить пореже и пачками побольше
А данные прям такие не нужные, что если что-то не успеет реплицироваться, а мастер упадет - то и не страшно!?
источник

MA

Mons Anderson in Tarantool
Сергей
А можно пример кода
Во время транзакции:

box.atomic(function()
 -- your updates...
 box.space.yourspace:update(...)

 -- create task for outer transfer
 box.space.xq:put({task for migration})
end)


файбер, который будет разгребать (примерный код):

fiber.create(function()
 while true do
   fiber.sleep(1) -- collect interval
   
   local pack = {}
   local taken = 0
   repeat
     local task = box.space.xq:take(0)
     if not task then break end
     table.insert(pack, task)
   until #pack >= 100

   -- send pack to others

   for _, task in pairs(pack) do
     box.space.xq:ack(task.id)
   end
 end
end)
источник

MA

Mons Anderson in Tarantool
Sergey Й
Это та самая, которую долго собирался выложить?
Вообще оно давно выложено... Вроде ж это с indexpiration долго было :)
источник

ИЛ

Илья Лебедев... in Tarantool
Ярослав Шумаков
А данные прям такие не нужные, что если что-то не успеет реплицироваться, а мастер упадет - то и не страшно!?
а они касаются этого сэта в основном. писаться будут сразу на нем, и дальше в очередь на отправку. если сэт лежит, эти данные на остальных сэтах бесполезны
источник

AK

Alexey Kuzin in Tarantool
Я бы написал отдельный сервис (или создал отдельный репликасет), который хранит общие данные, писал бы туда и читал оттуда с других сервисов кому эти данные нужны
источник

ИЛ

Илья Лебедев... in Tarantool
Alexey Kuzin
Я бы написал отдельный сервис (или создал отдельный репликасет), который хранит общие данные, писал бы туда и читал оттуда с других сервисов кому эти данные нужны
а вообще да. отдельный сэт тоже вполне справится
источник

Sergey Й in Tarantool
Mons Anderson
Вообще оно давно выложено... Вроде ж это с indexpiration долго было :)
Да точно.
источник

MA

Mons Anderson in Tarantool
Илья Лебедев
а вообще да. отдельный сэт тоже вполне справится
тогда это хороший вариант
источник

NK

Nick Karlov in Tarantool
Anton Melnikov
Доброго времени суток, друзья! Рад представить вам обертку для C API Tarantool'а на Rust.
Сейчас из функционала доступно:
- Box: spaces, indexes, sequences
- Fibers: fiber attributes, conditional variables
- CoIO
- Transactions
- Latches
- Tuple utils
- Logging (совместимо с https://docs.rs/log/0.4.11/log/)
- Error handling
Актуальная версия 0.2.1

Подробнее по ссылкам:
- https://github.com/picodata/tarantool-module
- https://crates.io/crates/tarantool-module
- https://docs.rs/tarantool-module/0.2.1/tarantool_module/

Буду очень рад фидбеку. По вопросам, связанным с библиотекой, можно обращаться ко мне (@volt_0), @kostja_osipov или @VifleY.
еще, кажется, у вас нет очень важной штуки — поддержки итераторов (на моей памяти все хранимки на си писались как раз с целью работы с итераторами без луа и ГЦ)
источник
2020 November 11

ИЛ

Илья Лебедев... in Tarantool
Илья Лебедев
а вообще да. отдельный сэт тоже вполне справится
в доках не рекомендуют поднимать роутер на сторадже. можно узнать причины? хотелось вот на этих репликах поднять по роутеру
источник

MA

Mons Anderson in Tarantool
да без проблем
источник