Size: a a a

2020 November 16

SC

Sergey Chernetsky in Tarantool
Всем привет! Скажите, а как можно сбросить состояние кластера, если я в веб-интерфейсе натыкал не то? Например добавил инстанс не в тот реплика-сет
источник

SC

Sergey Chernetsky in Tarantool
или сделал expel
источник

DS

Dmitry Sharonov in Tarantool
проще всего удалить папки с данными
источник

AP

Anton Pavlov in Tarantool
Привет. Еще вопрос по cartridge без vashard. Я хочу поднять 2 инстанса
app.server1:
 advertise_uri: localhost:3301
 http_port: 8081

app.server2:
 advertise_uri: localhost:3302
 http_port: 8082


в обоих будет http сервер и база. для баз хочу сделать master-master репликацию.

Чтобы сделать репликацию я должен в box.cfg прописать параметр replication = {  }, а т.к в я е имею возможности вызвать box.cfg  я должен это сделть через cartridge.cfg как в документации.
ca
rtridge.cfg({
-- cartridge options example
 workdir = '/var/lib/tarantool/app',
 advertise_uri = 'localhost:3301',
 cluster_cookie = 'super-cluster-cookie',
 ...
}, {
-- box options example
 memtx_memory = 1000000000,
 ...
})

мой cartridge.cfg:
cart
ridge.cfg({
   roles = {
       'cartridge.roles.metrics',
       'app.roles.custom_role1.app',
       'app.roles.custom_role2.app'
   },
   cluster_cookie = 'reward-link-cluster-cookie',
   {
       replication = {'instance1:3301', 'instance2:3302'},
   }
})
На
что получил ошибку.
app.server1 | LuajitError: /opt/app/.rocks/share/tarantool/cartridge.lua:205: unexpected argument opts[1] to cfg
источник

DS

Dmitry Sharonov in Tarantool
не надо
источник

DS

Dmitry Sharonov in Tarantool
он сам
источник

DS

Dmitry Sharonov in Tarantool
настроит ее когда вы их объедините в репликасет
источник

AP

Anton Pavlov in Tarantool
Да, обьединил их в репликасет, репликация работает, когда добавляю напряму в бд, данные реплицируются.
Но теперь другая проблема.

Как я уже сказал у меня есть две custom роли:
1. app.roles.controller.app - занимается обработкой http запросов. у него в dependecies написано 'app.roles.model.app'
2. app.roles.model.app - занимается работой с бд,  и экспортирует функции с помощью
for name, func in pairs(exported_functions) do
       box.schema.func.create(name, {if_not_exists = true})
       box.schema.role.grant('public', 'execute', 'function', name, {if_not_exists = true})
       rawset(_G, name, func)
end


Все прекрасно работает, в signle mode.

После обединения в репликасет, при обращении чреез http интерфейс на второй инстанс, он говорит, что ничего не знает методы роли app.roles.models.app.
Инстанс 1(8081) работает отлично.
источник

DS

Dmitry Sharonov in Tarantool
под is_master небось регистрировали
источник

AP

Anton Pavlov in Tarantool
Да
источник

DS

Dmitry Sharonov in Tarantool
ну вот и ответ
источник

AP

Anton Pavlov in Tarantool
отлично, все понял.
В примере так и написано
if opts.is_master then
       init_spaces()

       for name in pairs(exported_functions) do
           box.schema.func.create(name, {if_not_exists = true})
           box.schema.role.grant('public', 'execute', 'function', name, {if_not_exists = true})
       end
   end

   for name, func in pairs(exported_functions) do
       rawset(_G, name, func)
   end


под opts.is_master иницилизируются спейсы и создаются функции, а экспортируются и для мастера и для реплики.
Спасибо.
источник

v

vpol in Tarantool
А есть где в тарантуле функции консистентного хеширования? Низкий уровень
источник

DS

Dmitry Sharonov in Tarantool
digest ?
источник

NR

Nemat Rakhmatov in Tarantool
Речь наверное не про хеш функции
источник

MA

Mons Anderson in Tarantool
vpol
А есть где в тарантуле функции консистентного хеширования? Низкий уровень
require 'digest'
источник

MA

Mons Anderson in Tarantool
там есть guava, murmur
источник

R

R-omk in Tarantool
vpol
А есть где в тарантуле функции консистентного хеширования? Низкий уровень
скорее всего вам нужен просто Rendezvous hashing   ...  он делается на основе любой хэш функции   и работает лучше чем   консистентное  хэширование
источник

v

vpol in Tarantool
Mons Anderson
там есть guava, murmur
guava подойдет, спасибо.
источник

МК

Максим Кобылинсикий... in Tarantool
Привет! Появилась такая задачка. Нужно пройтись по большому количеству кортежей.
И сравнить данные одной ячейки с другой.
Есть какой то способ оптимизации задачи?
Например, получать не полный кортеж, а только некоторые данные...
источник