Рекомендация по номеру экземпляра в BigTable - PullRequest
0 голосов
/ 28 апреля 2020

Есть ли лучшие практики или предложения о том, сколько экземпляров нужно иметь в BigTable? Что является хорошей практикой в ​​этих 2 ситуациях?

a) Иметь 2 МГНОВЕНИЯ с 2 кластерами в каждом

  • Экземпляр A имеет 2 кластера: кластер A1 и кластер A2; оба находятся в us-EAST1 регион
  • Экземпляр B имеет 2 кластера: кластер B1 и кластер B2; оба находятся в us-EAST4 регион

ИЛИ

b) иметь только 1 МОМЕНТ с 2 кластерами:

  • кластер C1 в us-EAST1 регион и
  • кластер C2 в us-EAST4 регион

Я понимаю, кластер для репликации и Вышеуказанные ситуации учитывают репликацию.

Мне кажется, что ситуация б) (1 Экземпляр) более эффективна, поскольку она охватывает не только репликацию, но и ОБА-регионы, us-EAST1 и us-EAST4, и с одним экземпляром меньше (и, следовательно, меньше $$$).

Пожалуйста, сообщите об этом из того, что вы знаете, и / или если у вас также есть практический опыт в этом.

1 Ответ

0 голосов
/ 28 апреля 2020

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

Bigtable - это высокопроизводительная масштабируемая база данных No SQL, которая идеально подходит для больших аналитических рабочих нагрузок. Что касается Репликация , то, согласно документации, это позволяет повысить доступность и долговечность. Кроме того, он считается в конечном итоге непротиворечивым, что означает, что когда вы записываете изменение в свой кластер, оно сможет считывать изменения из других кластеров в экземпляре только после репликации изменений между кластерами.

  • Репликация и пропускная способность

Пропускная способность чтения : репликация может улучшить считывание через ввод, особенно при использовании нескольких маршрутизация Это также может уменьшить задержку, если кластер находится ближе к региону клиента. Подробнее об этом можно прочитать здесь .

Пропускная способность записи : согласно документации репликация не увеличивается написать пропускную способность. Пропускная способность записи может быть go ниже, поскольку запись в один кластер должна быть реплицирована в другие кластеры. Таким образом, каждый кластер тратит больше ресурсов процессора, чтобы извлечь изменения из других. Например:

  • Если число узлов в кластере удвоилось, кластер из 3 узлов теперь с 6 узлами (например), пропускная способность записи для экземпляра удваивается. Однако данные доступны только в одной зоне.

  • Добавление второго кластера с таким же количеством узлов, кластера из 3 узлов и еще одного с 3 узлами, всего 6 узлов. Затем данные доступны в двух разных зонах, но пропускная способность записи может уменьшиться на go, поскольку каждый фрагмент данных записывается дважды при репликации в другие кластеры.

Задержка репликации: реплицированные кластеры в разных зонах, как правило, будут иметь более высокую задержку, чем кластеры в одном регионе.

Также следует учитывать профили приложений и трафик c маршрутизация в рамках вашего бизнеса. Многокластерная маршрутизация минимизирует задержку, потому что это автоматический выбор c, который направляет запросы к ближайшему кластеру в экземпляре (с точки зрения приложения), что приводит к минимально возможной задержке. Принимая во внимание, что однокластерная маршрутизация может использоваться для разделения рабочих нагрузок или иметь семантику чтения-записи в одном кластере.

Google подготовил несколько примеров вариантов использования репликации, чтобы прояснить преимущества каждого параметра. Я рекомендую вам посмотреть здесь .

Если вам понадобится еще совет по архитектуре, вы также можете связаться с GCP, здесь .

ОБНОВЛЕНИЕ

Анализ 2 ваших дел:

Если у вас 1 экземпляр с 4 кластерами, он будет поддерживать высокую доступность ваших данных. Кроме того, если у вас есть кластеры в одном и том же регионе, но в разных зонах, это повысит региональную устойчивость и возможность переключения при сбое без создания затрат на межрегиональную репликацию. Тем не менее, вы можете иметь только один, иметь один профиль приложения (маршрутизация нескольких или одного кластера). Это означает, что вы не сможете отделить аналитические рабочие нагрузки от других приложений. Поэтому, если у вас есть возможность запустить большое пакетное задание, это может замедлить работу пользователей приложения.

Теперь, если у вас есть 2 экземпляра с 2 кластерами в каждом. Вы можете иметь высокую доступность и даже региональную устойчивость, если кластеры находятся в одной зоне для одного и того же экземпляра. Однако, если кластеры находятся в разных регионах, это повлечет за собой затраты на репликацию из одного региона в другой. Также таблица / данные принадлежат экземпляру. Таким образом, вы сможете отделить аналитические рабочие нагрузки от других приложений, что будет способствовать повышению производительности (при выполнении больших пакетных заданий), причем каждый экземпляр имеет свои собственные конфигурации профиля приложения.

...