Архитектуры ООСУБД. Анализ реализаций


Архитектура, основанная на объектах


«Архитектура, «основанная на объектах», является сбалансированной конструкцией, в которой кэширование и поддержка функционирования осуществляется как в процессах приложений, так и в серверных процессах.»

Здесь понятие «сбалансированности» используется для субъективной эстетической оценки. Можно сказать, что все зависит от собственного восприятия. Более важно то, что серверный процесс в архитектуре, основанной на страницах, такой как в ObjectStore, может производить кэширование дисковых страниц, и в ObjectStore это кэширование действительно производится. В ObjectStore механизм кэширования страниц разработан с целью эффективного использования возможности операционных систем кэшировать в основной памяти страницы файлов, к которым недавно осуществлялся доступ. Кроме того, сервер в архитектуре, основанной на страницах, выступает в качестве посредника при всех обращениях к базе данных, отслеживая права доступа клиентов к страницам, управляет транзакциями на стороне сервера и поддерживает жизненный цикл страниц. Так что говорить о «сбалансированности» серверной архитектуры, основанной на страницах, настолько же оправданно и настолько же бессмысленно, как и по отношению к архитектуре, основанной на объектах: в обоих случаях сервер и клиент взаимодействуют для достижения некоторых целей.

Вопрос о том, следует ли выполнять запросы и обрабатывать индексы на клиенте или на сервере, является сложным. Совсем не обязательно более «сбалансированным» является подход, при котором все это делается на сервере. Клиенты базы данных не обязаны выполняться на той же машине, что и сервер, и не обязательно все клиенты работают на одной машине, так что потенциально у клиентов может иметься гораздо большие процессорная мощность и объем основной памяти для кэширования, чем на стороне сервера. Если индексы размещаются в кэшах клиентов и не слишком часто изменяются, то выгоднее использовать эту компьютерную мощность, выполняя запросы на стороне клиентов. Стратегией ObjectStore является перемещение данных ближе к приложению. Но если для запросов нет подходящих индексов, позволяющих оптимизировать их выполнение, или если индексы невозможно эффективно кэшировать в клиентах, то может оказаться лучше выполнять запросы как можно ближе к дискам, т.е. на стороне сервера. Какая архитектура в этом случае сработает лучше, зависит от детальных характеристик данных, приложения и развертывания ООСУБД.




Начало  Назад  Вперед



Книжный магазин