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


Следствия модели запросов - часть 2


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

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

Здесь следует подчеркнуть, что навигационный доступ является основным почти для всех приложений ООБД, хотя эта тема едва упомянута в статье Грина.

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




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



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