Должен ли каждый узел содержать полную базу данных?

Могу ли я теоретически иметь 10 000 узлов с 1 гигабайтным жестким диском и хранить между ними 100 гигабайт?

Есть ли какие-то параметры, которые мне нужно установить для этого? Или конфиг мне нужен?

Спасибо.


person Sammy Roberts    schedule 14.06.2017    source источник


Ответы (1)


Каждый узел не должен содержать всю базу данных.

Бинарный файл cockroach проверяет машину, на которой он работает, и находит доступное дисковое пространство; эта информация передается другим узлам через протокол Gossip, и Cockroach алгоритмически решает, как лучше всего хранить данные (контролируется вашим Зоны репликации).

Однако совокупное доступное дисковое пространство должно быть> 3x размера вашей базы данных. Например, для БД 100 ГБ требуется не менее 300 ГБ на всех машинах в вашем кластере.

Чтобы ответить на ваши последующие вопросы:

  • Теоретически у вас может быть 10 000 узлов каждый с жестким диском емкостью 1 Гбайт, на котором будет храниться 100 Гбайт БД. Однако это нереально, потому что у Cockroach в настоящее время (начиная с версии 1.0.1) могут быть проблемы с обменом данными между 10 000 узлов. Лаборатория тараканов просто не тестировала ничего подобного.
  • Никаких специальных настроек или конфигов для этого не требуется. Как я уже упоминал, все обрабатывается алгоритмически.
person Loiselle    schedule 15.06.2017
comment
По умолчанию это фрагменты размером 64 МБ, которые можно настроить при необходимости. - person eduncan911; 01.07.2017