Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТБД_Давыдов.docx
Скачиваний:
7
Добавлен:
11.03.2016
Размер:
57.45 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра ТПИ

Курсовая работа

По дисциплине: «Технологии баз данных»

Факультет: ПМИ

Группа: ПМИ-21

Вариант: 2

Студент: Давыдов Д.В.

Преподаватель: Стасышин В.М.

Новосибирск

2015

  1. Задание:

Изучение технологий тиражирования данных.

Вариант 2.

Схема репликации:

Многонаправленное тиражирование “Центр-филиалы”. Изменение (вставка, модификация, удаление), выполненное в одной из ПБД, тиражируются в ЦБД, после чего изменения реплицируются во все другие ПБД.

Запуск репликатора:

Запуск репликатора через определенный интервал времени в секундах, задаваемый при запуске программы РД.

Разрешение коллизий:

Разрешение коллизий в пользу более раннего обновления. Постановка задачи

Разрабатываемое программное обеспечение состоит из трех программ:

  1. Программа инициализации данных (ИД).

  2. Программа имитации работы системы (ИРС).

  3. Программы репликатора данных (РД).

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

При этом

- в поле даты/времени заносится текущее время инициализации данных;

- в поле идентификации операции заносится значение “начальные данные”.

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

II. Программа имитации работы системы c определенной дискретностью (интервал в несколько секунд) моделирует процесс работы информационной системы, выполняя следующие действия:

- случайным образом выбирает одну из условных баз данных;

- случайным образом выбирает одну из операций (вставка/обновление/удаление);

- если выполняется операция вставки, то в выбранную базу данных вставляется строка, в которой:

- в поле даты/времени заносится текущее время вставки;

- в поле идентификации операции заносится значение “вставка в БДi”, где i=1,2…;

- в журнале изменений (файл данных) запоминается

- время вставки;

- база данных, в которую выполняется вставка;

- вставленная строка.

- если выполняется операция обновления, то в выбранной базе данных обновляется строка с минимальным oid, в которой:

- в поле даты/времени заносится текущее время обновления;

- в поле идентификации операции заносится значение “обновление в БДi”, где i=1,2…;

- в журнале изменений запоминается

- время обновления;

- база данных, в которую выполняется обновление;

- старое и новое состояние обновляемой строки.

- если выполняется операция удаления, то в выбранной базе данных удаляется строка с максимальным oid;

- перед удалением в журнале изменений запоминается

- время удаления;

- база данных, из которую выполняется удаление;

- удаляемая строка.

III. Программа репликатора данных работает в соответствии с моделью репликации, определенной условиями (схема репликации, условие запуска репликатора, способ разрешения коллизий), заданными в табл.1. После выполнения цикла репликации (переноса данных и обеспечения согласованного состояния таблиц) программа РД фиксирует в журнале содержимого таблиц:

- текущее время;

- содержимое всех таблиц условных баз данных (“ЦБД”, “ПБД” и т.д.).

  1. Алгоритм решения задачи

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

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

Существует два вида репликации: синхронная и асинхронная.

Основным достоинством синхронной репликации является соблюдение принципов ACID на всех узлах. В основе синхронной репликации лежит двухфазный сетевой протокол.

Первая фаза: ведущий узел рассылает всем узлам SQL-запрос. Каждый узел проверяет корректность запроса и, если все нормально, отсылает OK.

Если подтверждение получено от всех узлов, начинается вторая фаза: ведущий отсылает команду на фиксацию запроса. Если на первой фазе хотя бы один узел не ответил OK, то мастер вместо подтверждения фиксации разошлет команду abort (отмена запроса).

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

Асинхронная репликация – это однофазный процесс.

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

Узел при получении запроса просто фиксирует его. Реализация асинхронной репликации зависит полностью от правильной логики приложения. Главный недостаток этого подхода – это возможность рассинхронизации данных по узлам. Но у него есть и масса достоинств: уменьшение сетевого трафика, повышение производительности. У ведущего узла, что называется, развязываются руки – не нужно ничего контролировать и синхронизировать.

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

Согласно варианту коллизии решаются в пользу более раннего обновления.