Глобальные таблицы DDB Версия 2019.11.21 - Невозможно добавить более одной реплики региона одновременно - PullRequest
0 голосов
/ 08 мая 2020

Я изучаю глобальные таблицы DDB, и есть новая версия . Я использовал пример формы в этом руководстве для создания реплик в трех регионах и, таким образом, создания глобальной таблицы.

Вот что у меня в коде:


// Initialize DDB service client earlier with credentials

    private void createGlobalTableConfiguration( String tableName, List<Regions> replicaRegions ) {
        log.info( "Creating global table configuration for {} in regions: {}", tableName, replicaRegions  );

        final List<ReplicationGroupUpdate> replicaActionList = replicaRegions.stream()
                .map( region -> new ReplicationGroupUpdate()
                        .withCreate( new CreateReplicationGroupMemberAction().withRegionName( region.getName() ) )
                )
                .collect( Collectors.toList() );

        final UpdateTableResult result = ddbServiceClient
                .updateTable( new UpdateTableRequest()
                                      .withTableName( tableName )
                                      .withReplicaUpdates( replicaActionList ) );

        log.info( "Replicas are being added to create global table: {}", result );

Но с этим я получаю следующее исключение:

Update table operation with more than one create or delete replica actions not allowed (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: ValidationException;

Означает ли это, что мы можем добавить только один реплика за раз? Я не понимаю, потому что API принимает массив действий по обновлению.

У меня есть вопросы:

  1. Какой вариант использования, где мы ' d добавить несколько действий реплики, но не все из них будут созданы?

  2. Косвенно мы добавляем одну реплику, ждем, пока статус таблицы снова станет активным, а затем размещаем второй запрос - Похоже, долгое ожидание для получения конфигурации глобальной таблицы.

...