Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Дифференциальные файлы





 

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

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

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

Для каждого приложения и его версии имеются разные представления о дифференциальном файле. Относительно распределенных систем баз данных существует три варианта дифференциального файла. Дифференциальная структура для ленточных систем создана для исключения записей, которые не меняются в течении последовательной пакетной обработки обновлений. При этом файл с данными делится на одинаково упорядоченные подфайлы. Подфайлы представляют собой общность записей, в которых может осуществляться лишь чтение, при этом они хранятся на одной ленте, а небольшая совокупность изменяемых записей хранится на совершенно отдельной «ленте изменений» [9;24]. Когда данные из файла обновляются, происходит слияние двух лент и при этом образуется новая измененная лента. Доступные только для чтения записи ленты никогда на нее не записываются. Именно поэтому после модификации половины всех записей желательно осуществлять преобразование файла с данными.

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

Система с аналогичной структурой была создана для возможности восстановления базы данных, если вдруг произойдет отключение электрического питания. В подобной ситуации любые запросы будут проходить через системный индекс и все преобразования начнут выделяться в специальный файл изменений, который будет носить название Modfile. Все записи, с которыми начнут происходить видоизменения, будут указывать на свой старый образ. Если же произойдет отключение электропитания, то вся информация из журнала транзакций вместе с информацией из файла Modfile станет применяться для удаления незаконченных обновлений [9].

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

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

Для защиты главного файла и устройства его поиска от различных видоизменений, мы вынуждены осуществлять дополнительные затраты в виде поиска в дифференциальном файле при любом запросе к записи. При таком подходе два файла размещаются на различных устройствах, а доступ к ним происходит с помощью независимых каналов. А так как поиск реализуется параллельно, пользователи системы не ощущают дополнительной задержки [3]. Но в том случае, когда мы не можем применить параллельный поиск нужно ждать увеличения среднего времени выборки на время произвольного доступа к вторичной памяти. При этом дополнительное время доступа может быть не очень большим, а это в свою очередь сильно уменьшает производительность системы.

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

Существует некоторое количество преимуществ дифференциальной организации базы данных. Пять из них связаны с целостностью базы данных, так как при применении дифференциального файла уменьшается не только стоимость копирования и восстановления, но и сводится к минимуму возможность неисправимых потерь данных. Другие три преимущества связаны с эксплуатацией. Одновременно дифференциальный файл может повышать доступность данных и снижать затраты памяти со стоимостью выборки [3;17].

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

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

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

4. Ускорение восстановления после потери данных. С помощью отката неправильно обработанной или частично не завершенной транзакции можно быстро восстанавливать систему.

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

6. Эффективная поддержка «файла памяти». Почти все системы, для избегания масштабных издержек, которые связаны с выбором применяемых программных средств, накапливают изменения для пакетной обработки после окончания.

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

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

Date: 2015-07-24; view: 463; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию