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


Параллельность в архитектуре, основанной на страницах - часть 3


В ObjectStore также обеспечивается специальный режим доступа, называемый MVCC (MultiVersion Concurrency Control), который позволяет клиентам читать страницы из базы данных с гарантией того, что эти чтения не заблокируют обновления, никогда не приведут к синхронизационному тупику и обеспечат транзакционно согласованные данные, но, возможно, не самые свежие. Это также может полностью устранить проблемы конфликтов и синхронизационных тупиков.

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

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




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



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