tarantool / migrations

BSD 2-Clause "Simplified" License
21 stars 5 forks source link

Migrations do not apply on new replicasets in cluster #65

Closed opomuc closed 5 months ago

opomuc commented 1 year ago

When scaling cluster horizontally and adding new replicasets -- they do not have migrations applied.

This means, for example, if a box.schema.func has been created in a migrations, the new replicaset won't have it.

Steps to reproduce:

  1. Create a Tarantool Cartridge cluster
  2. Run migration
    return {
    up = function()
        box.schema.func.create('is_expired_code', {body = [[
            function(args, tuple)
                -- уточнить условия экспирации
                return false
            end
        ]]})
        return true
    end
    }
  3. Add a new replicaset to the cluster
  4. Wait for it to start and be running
  5. Check box.space._func.index.name:get('is_expired_code') on the new replicaset to see if it has the function is_expired_code
opomuc commented 9 months ago

@LeonidVas Привет! какой статус?

мы в очередной раз на этом подорвались...

DifferentialOrange commented 9 months ago

За что... image

DifferentialOrange commented 9 months ago

@LeonidVas Привет! какой статус?

мы в очередной раз на этом подорвались...

На первый взгляд выглядит как задача, нормальное решение которой требует полной переработки текущей имплементации. Я считаю, что с таким стоит заходить через Product Team, но лучше дождаться ответа Лёни.

opomuc commented 9 months ago

@DifferentialOrange

Задачу добавили в бэклог и забыли про нее. Я скинул project, чтобы она попала на триаж еще раз.

Да, вероятно это требует пересмотра механизма миграций и доработок в картридже. но куда деваться? у нас не работает горизонтальное масштабирование в принципе :(

DifferentialOrange commented 9 months ago

Да, вероятно это требует пересмотра механизма миграций и доработок в картридже. но куда деваться?

Ну я это к тому, что оно не делается за полчаса, а объёмные штуки всё-таки стоит провести через продактов. Лёня придерживается той же позиции