Тиражирование моментального снимка данных 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тиражирование моментального снимка данных



Способ тиражирования моментального снимка отличается от слияния данных тем, что издатель распространяет не последовательность транзакций, а снимок всех данных, в том числе и системных. В результате, подписчики не имеют возможности изменять полученные данные, и поэтому они доступны только на чтение. Все операции изменения данных выполняются только через издателя. Механизм тиражирования в этом случае работает так: дистрибьютор запрашивает у издателя моментальный снимок данных, а когда получает, то распространяет его по подписчикам. В этом варианте тиражирования, кроме распространения по запросу можно использовать схему принудительной рассылки тиража. При этом распространение данных инициируется не подписчиком, а дистрибьютором. Таким образом, при хорошей связи подписчик начинает прием данных, как только они стали доступны дистрибьютору.

Такая схема распространения данных достаточно проста и не требует разрешения конфликтов. Она может с успехом использоваться для распространения медленно меняющихся данных, например, для распространения цен на товары. Другим примером использования такой схемы является подготовка отчетов. Например, несколько подразделений предприятия собирают определенные сведения о своей деятельности и передают их в центральный офис. Затем эта информация централизовано обрабатывается и передается обратно в подразделения в качестве отчета. На этапе сбора данных подразделения выступают в роли издателя своей части данных, а для центрального офиса они доступны только на чтение. Когда же отчет готов, то его издателем является центральный офис, а для подразделений он доступен только для чтения.

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

 

Тиражирование транзакций

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

Тиражирование транзакций лучше всего использовать, когда в системе много данных, а операций над ними выполняется мало. Впрочем, при увеличении количества транзакций можно уменьшить период тиражирования транзакций. Причем чем меньше интервал между периодами синхронизации, тем меньше данных нужно в них передавать. Время согласования данных в различных элементах системы приблизительно равно периоду синхронизации. Одним из примеров использования метода тиражирования транзакций является система магазин-офис-склад. Магазин периодически отчитывается перед центральным офисом о количестве проданных товаров и полученных денег, а также пересылает на склад необходимые данные о количестве оставшегося товара. В этом случае, магазин может передавать накопленные данные в определенные момент (например, каждый час), что не требует серьезных расходов на поддержание информационной инфраструктуры и позволяет оперативно обновлять сведения во всех базах данных магазина, офиса и склада.

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

 

Обновление на подписчике

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

При этом способе тиражирования достигается достаточно высокий показатель целостности транзакций и непротиворечивости данных, что очень важно для СУБД, обслуживающих быстро меняющиеся процессы. Фактически, при хорошей связи со всеми подписчиками, транзакция будет доведена до них за несколько секунд. Однако немедленное тиражирование требует постоянного, хотя и не очень надежного подключения каждого элемента системы к дистрибутору. Если же связь после каждой транзакции обрывается, а на восстановление требуется определенное время (например, при использовании телефонного модема), то лучше воспользоваться методом тиражирования транзакций.

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

 

Распределенные транзакции

В распределенных транзакциях участвуют несколько равноправных серверов баз данных, поэтому модель «издатель-дистрибьютор-подписчик» в этом случае не применима. Для подтверждения каждой транзакции все команды распространяются всем серверам, от которых должны прийти подтверждения о возможности проведения данной транзакции. Только после этого транзакция является принятой. Так работает двух фазная система подтверждения транзакции. В случае, когда хотя бы одна база данных недоступна, вся система перестает работать, поскольку неработающая система не может ни подтвердить, ни опровергнуть транзакцию. Поскольку все сервера равноправны, то транзакции можно проводить через любой сервер СУБД, а в процессе подтверждения они становятся доступны всем остальным серверам.

Основным недостатком распределенных транзакций является то, что они требуют постоянной связи между всеми серверами системы. Это предъявляет жесткие требования не только к каналам связи, но и к самим серверам. Впрочем, такая система обеспечивает максимальную целостность данных и их наиболее оперативное обновление. Использовать ее лучше всего в тех случаях, когда работа всей вычислительной системы невозможна без максимально быстрого распространения информации. Такие требования характерны для геоинформационных и метеорологических задач, а также для моделирования и САПР, где данные, на основе которые выполняются вычисления, распределены по нескольким компьютерам и базам данных.

 

Общие замечания

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

 



Поделиться:


Последнее изменение этой страницы: 2017-02-07; просмотров: 177; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.35.148 (0.005 с.)