Репликация (изчисление)

С репликацията промените, направени в едно копие на обект, могат да бъдат разпространени в други копия.

Пример за софтуерно решение е DRBD, блоково устройство, предназначено за изграждане на устойчиви на грешки клъстерни системи на операционна система с Linux ядро.

Съдържание

Репликацията може да бъдесинхроннаилиасинхронна, както е описано по-долу.

Синхронна репликация

В случай насинхронна репликация, ако дадена реплика се актуализира, всички други реплики на същата част от данните също трябва да бъдат актуализирани в същата транзакция. Логично това означава, че има само една версия на данните.

В повечето продукти синхронната репликация се изпълнява с помощта на задействащи процедури (може би скрити и управлявани от системата). Но синхронната репликация има недостатъка, че създава допълнителни разходи за всички транзакции, в които се актуализират реплики (в допълнение, може да има проблеми, свързани с наличността на данни).

Асинхронна репликация

Сасинхронна репликация, актуализация на една реплика се разпространява към други известно време по-късно, вместо в същата транзакция. По този начин асинхронната репликация въвежда забавяне или изчакване, по време на което отделните реплики може всъщност да не са идентични (т.е. дефинирането нарепликане е напълно подходящо, тъй като нямаме работа с точни и навременни копия).

В повечето продукти асинхронната репликация се реализира чрез четене на регистрационния файл на транзакциите или постоянна опашка от тези актуализации, които трябва да бъдат разпространени. Предимството на асинхронната репликация е, че няма допълнителни разходи за репликация, свързани сактуализиране на транзакции, които могат да бъдат критични за работата на цялото предприятие и да поставят високи изисквания към производителността.

Недостатъците на тази схема включват, че данните може да са непоследователни (т.е. несъвместими от гледна точка на потребителя). С други думи, излишъкът може да се прояви на логическо ниво, което, строго погледнато, означава, че терминът контролиран излишък не е приложим в този случай.

Разгледайте накратко проблема с последователността (или по-скоро непоследователността). Факт е, че репликите могат да станат несъвместими в резултат на ситуации, които са трудни (или дори невъзможни) за избягване и последствията от които са трудни за коригиране.

По-специално могат да възникнат конфликти относно реда, в който трябва да се прилагат актуализациите. Да предположим например, че транзакция A вмъква ред в реплика X и след това транзакция B изтрива реда и също така да предположим, че Y е реплика X. Ако актуализациите се разпространяват към Y, но се въвеждат в реплика Y в обратен ред (например поради различни закъснения на предаване), тогава транзакция B не намира ред в Y за изтриване и не изпълнява действието си, след което транзакция A вмъква този ред. Крайният ефект е, че реплика Y съдържа посочения ред, но реплика X не.

Като цяло задачите за премахване на конфликтни ситуации и осигуряване на последователност на репликите са много сложни. Трябва да се отбележи, че поне в потребителската общност на търговските бази данни терминът репликация е започнал да означава предимно (или дори изключително) асинхронна репликация.

Ако се използва репликация, тогава актуализацията на една реплика в крайна сметка се разпространява към всички останалиавтоматично.