Как работает поддержка нескольких сегментов на модуль в азоте ODL

В файле module-shards.conf упоминается следующее:

Для Helium мы поддерживаем только один сегмент на модуль. Помимо Helium, мы будем поддерживать более 1

Имейте ODL Nitrogen и пытаетесь использовать «module-shards.conf», как показано ниже:

module-shards = [
    {
        name = "default"
        shards = [
            {
                name="default1"
                replicas = [
                    "member-1"
                ]
            },
            {
                name="default2"
                replicas = [
                    "member-1"
                ]
            }
        ]
    }
]

Кажется, это работает, поскольку karaf показывает 2 осколка, успешно созданных для одного и того же модуля «по умолчанию». Но неясно, как данные распределяются между двумя осколками, может ли приложение контролировать/решать, какие данные попадают в какие из осколков модуля.

Мне не ясно, как данные дерева конфигурации приложения и данные рабочего дерева для данного модуля хранятся в разных осколках для одного и того же модуля. Если для одного и того же модуля существует несколько сегментов, может ли приложение решать/контролировать, какой сегмент использовать для хранения определенного типа данных. Например, может ли приложение решить сохранить дерево конфигурации в сегменте «default1» и рабочее дерево в сегменте «default2» для одного и того же модуля «default»?

Можно ли отключить компонент операционного дерева для одного из сегментов данного модуля, скажем, отключить компонент операционного дерева для сегмента «по умолчанию2» модуля «по умолчанию» с двумя сегментами, а именно «по умолчанию1» и «по умолчанию2»?


person Ratan    schedule 20.02.2018    source источник


Ответы (1)


Хотя в Helium говорится, что поддерживается только один сегмент на модуль, это все еще так — поддержка более 1 никогда не реализовывалась. Там не было прецедента для этого. Шарды создаются, но транзакции направляются только к одному из них (т. е. выбирают первый найденный).

person Tom Pantelis    schedule 20.02.2018