что означает слово «распределенный» в «распределенной системе контроля версий», например в Git? - PullRequest
0 голосов
/ 05 ноября 2018

Я уже прочитал вопрос Распределенная система контроля версий , чтобы найти ответ, но этот вопрос отличается и возникает при сравнении «Распределенной системы управления версиями» с другими «Распределенными системами».

Когда я вижу слово «Распределенный» в других терминах, таких как «Распределенная база данных», «Распределенный кэш» и «Распределенные вычисления», тогда я обнаруживаю, что данные или вычисления действительно распределены по сети. Здесь слово «распределенный» означает «разделенный ( равно не всегда)». Например, в Hazelcast, «системе распределенного кэша», ключи действительно разделены между предоставленными узлами. Но я не нахожу этого сходства в «Распределенной системе контроля версий».

  1. Имеет ли Распределенное значение Разделение в «Распределенной системе контроля версий»?
  2. Если ДА, то что такое Распределено (потому что я не вижу деления в коде или истории коммитов)?

1 Ответ

0 голосов
/ 05 ноября 2018

Что касается систем контроля версий, «распределенный» является просто антонимом для «централизованного». Централизованная система контроля версий имеет один центральный или главный сервер. Он может иметь или не иметь дополнительные серверы, но если он имеет дополнительные серверы и если эти серверы не согласны с назначенным центральным сервером, то эти серверы неправильны: центральный сервер является источник правды. В распределенной системе контроля версий такого сервера нет: все репозитории являются одноранговыми, по крайней мере с точки зрения разработки. Любая система с распределенным дизайном, конечно, может использоваться , как если бы она была централизованной. Таким способом можно использовать Git, указав один из репозиториев Git в качестве основного хранилища обновлений.

Когда я вижу слово «Распределенный» в других терминах, таких как «Распределенная база данных», «Распределенный кэш» и «Распределенные вычисления», тогда я обнаруживаю, что данные или вычисления действительно распределены по сети. Здесь слово «распределенный» означает «разделенный (одинаково не всегда)». Например, в Hazelcast, «системе распределенного кэша», ключи действительно разделены между предоставленными узлами. Но я не нахожу этого сходства в «Распределенной системе контроля версий».

Распределенные базы данных с репликацией не обязательно делят их хранилище. Например, etcd использует систему кворума для выбора лидера; все члены кворума стараются обновлять свои копии данных. Поведение кэша в многопроцессорных системах также часто является формой распределенного хранилища, хотя обычно оно значительно более тесно связано. См., Например, запись в Википедии для согласованности кэша . Распределенные системы с репликацией обычно классифицируются с помощью моделей согласованности .

(Быстрый поиск показывает, что Hazelcast имеет резервные копии для обработки сбоя узла, поэтому они также должны использовать некоторую модель согласованности. Если некоторое подмножество данных в распределенной системе хранится только на одном узле, эти данные становятся недоступными если узел выходит из строя. Так как вероятность отказа обычно увеличивается с увеличением количества узлов, это обычно не приемлемо.)

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