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


Следствия модели параллельности


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

Я не совсем понимаю, что Грин здесь имеет в виду. Почему меньшее число блокировок должно приводить к увеличению сетевого трафика, требуемого для управления блокировками? Я думаю, что он хотел сказать, что паразитные конфликты по блокировкам (он называет их ложными конфликтами) могут привести к возрастанию объема трешинга кэшированных блокировок и, следовательно, увеличению сетевого трафика. Это действительно так, но об этом не стоит говорить. Конечно, трешинг по причине паразитных конфликтов по блокировкам может возникнуть, если действительно имеются паразитные конфликты по блокировкам, но, как уже отмечалось, есть эффективные стратегии их устранения, и тогда никакого трешинга не будет.

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

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


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



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