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


Следствия сетевой модели


«Наибольшей потерей здесь является пропускная способность сети, поскольку при обновлении единственного объекта из нескольких байт потребуется обновить в кэше потенциально большого числа клиентов несколько тысяч байт – страницу …»

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

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

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




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



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