Вопросы об инструменте CreateCluster в базе данных H2 - PullRequest
2 голосов
/ 27 мая 2011

У меня есть пара вопросов о поведении инструмента создания кластера в H2.

  1. Если создать кластер с указанием источника A и цели B, будет ли H синхронизировать B с A?Другими словами, поддерживаются ли отношения ведущий-ведомый между обоими?

  2. Давайте представим, что базы данных A, B и C принадлежат одному кластеру.Что произойдет, если две транзакции будут выполнены одновременно на А и В.Выбирает ли H2 лидер в кластере, чтобы убедиться, что для всех баз данных в кластере существует уникальный порядок выполнения?

  3. Если H2 выбирает лидера, что если этот лидер исчезнет?Есть ли механизм автоматического переключения при отказе?Новый лидер автоматически избирается?Могу ли я все еще

  4. Если я создам кластер с источником A -> цель B, то источник B -> цель C, затем источник C -> цель D, получит ли D операторы для выполненияиз C, C получают операторы выполнения от B и B получают операторы для выполнения для A?Или B, C и D получат заявления о выполнении от A (или избранного лидера)?Другими словами, есть ли у нас цепная или звездная организация?

1 Ответ

3 голосов
/ 27 мая 2011

См. Документацию кластера на веб-сайте H2.

  1. Нет ни главного / подчиненного, ни лидера, ни соединения между узлами кластера. Вместо этого каждый клиент подключается к обоим узлам кластера и выполняет операторы на обоих.

  2. Каждый клиент выполняет все операторы на всех узлах кластера в том же порядке. У каждого клиента есть список узлов кластера, и каждый узел кластера также хранит этот список. Клиенты подтверждают, что список такой же.

  3. Нет лидера. Механизм отработки отказа: если клиент теряет соединение с одним из узлов кластера, он удаляет этот узел кластера из своего списка и сообщает каждому узлу кластера удалить узел кластера из списка.

  4. Это просто расширит список, и вы получите A, B, C, D. Затем каждый клиент выполнит все операторы обновления на каждом узле кластера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...