SuperServer:
- один процесс ОС на все соединения/базы
- общий кеш страниц для всех баз
- централизованный(central) менеджер блокировок
- блокировки работают на базы, а не соединения - т.е. все операции с базой выстраиваются в одну очередь.
- для версии <>
- не поддерживает многопроцессорность, т.к. ОС не может распаралелить один процесс по нескольким процессорам
- отдельный процесс на каждое соединение с БД
- отдельный кеш страниц на каждое соединение
- внешний менеджер блокировок(в 2.5. он уже внутренний)
- хорошая поддержка многопроцессорности
- накладывает некоторые ограничения в следствие ресурсоемкости процессов, в сравнении с потоками
- один процесс на все соединения (в перспективе - отдельный процесс на каждую базу)
- используется пул потоков ОС для обработки запросов от соединений - т.о. каждое соединение работает в отдельном потоке управляемом ОС, а неактивные соединения не отъедают ресурсы потоков
- централизованный менеджер блокировок, который может обрабатывать как внутренние, так и внешние обращения(одна и таже база может быть доступна как посредством СУБД из процесса А, так и через FB Embeded из процессов B, C и т.д.)
- теоретически этот менеджер блокировок позволяет организовывать кластеризацию используя готовые распределенные движки блокировок
- кеш страниц на соединение
- хорошая поддержка многпроцессорности, т.к. потоки ОС легко распараллеливаются
В v3.0 планируются такие доработки:
- общий кеш страниц на уровне базы
- кеш подготовленных запросов
- общий кеш метаданных
Как итог - SuperClassic это промежуточный шаг(насколько я понял изначально родившийся в RedSoft) к следующей основной архитектуре FB, появившийся в следствии крупного рефакторинга внутренностей движка.
Пока для пользователей практический выигрыш лишь в экономии на процессах и, как следствие, чуть более быстрой синхронизации. Хотя если верить документации, то совокупный выигрыш - до 15-20% на TPC-С тестах в сравнении с классиком.
Подробнее можно посмотреть в Firebird 2.5 Release Notes
UPD: Презентация от Дмитрия Еманова - Firebird 2.5 Architecture
Комментариев нет:
Отправить комментарий