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


Скорость эволюции схемы - часть 2


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

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

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

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

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




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



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