Скачиваний:
106
Добавлен:
02.05.2014
Размер:
2.28 Mб
Скачать

6. Независимость от репликации

Система поддерживает репликацию данных, если данная хранимая переменная- отношение— или в общем случае данный фрагмент данной хранимой переменной- отношения — может быть представлена несколькими отдельными копиями или репликами, которые хранятся на нескольких отдельных узлах. Рассмотрим конкретный пример (рис. 20.3). Обратите внимание, что внутри системы дубликаты имеют имена NL_EMP и LN_EMP.

REPLICATE N ЕМР AS

LN ЕМР AT SITE 'London' ;

REPLICATE L EMP AS

NL EMP AT SITE 'New York' ;

New York ||

|| London

N_EMP

L_EMP

EMP#

DEPT#

SALARY

EMP#

DEPT#

SALARY

El

Dl

40K

E3

D2

30K

E2

Dl

42K

E4

D2

35K

E5

D3

48K

EMP#

dept#"~

SALARY"

EMP#

DEPT#

SALARY_.

El

Dl

40K

E3

D2

30K

E2

Dl

42K

E4

D2

35K

E5

D3

48K

NL EMP (дубликат L EMP)

LN EMP (дубликат N EMP)

Рис. 20.3. Пример репликации данных

Репликация желательна по крайней мере по двум причинам. Во-первых, она способна обеспечить более высокую производительность, поскольку приложения смогут обраба- тывать локальные копии вместо того, чтобы устанавливать связь с удаленными узлами. Во-вторых, наличие репликации может также обеспечивать более высокую степень дос- тупности, поскольку любой реплицируемый объект остается доступным для обработки (по крайней мере для выборки данных), пока хотя бы одна реплика в системе остается доступной. Главным недостатком репликации, конечно, является то, что если реплици- руемый объект обновляется, то и все его копии должны быть обновлены (проблема распространения обновления). В разделе 20.4 мы еще скажем несколько слов относи- тельно этой проблемы.

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

Очевидно, что репликация, как и фрагментация, теоретически должна быть "прозрачной для пользователя". Другими словами, система, которая поддерживает репликацию данных, также должна поддерживать независимость от репликации (иногда говорят "прозрачность репликации"). Для пользователей должна быть создана такая среда, чтобы они, по крайней мере с логической точки зрения, могли считать, что в действительности данные не дублируются. Независимость от репликации (как и независимость от располо- жения, и независимость от фрагментации) является весьма желательной, поскольку она уп- рощает создание пользовательских программ и выполнение терминальных операций. В ча-

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

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

Завершая подраздел, отметим, что многие коммерческие продукты в настоящее время поддерживают такой вид репликации, который не обеспечивает полной независимости от репликации, т.е. репликация будет не полностью "прозрачна для пользователя". Неко- торые дополнительные замечания по этому вопросу будут приведены в подразделе о распространении обновления в разделе 20.4.

Соседние файлы в папке Дейт К. Дж. Введение в системы баз данных [7 издание]