- Главная
- Информатика
- Управление параллелизмом с низкими накладными расходами
Содержание
- 2. Естественный интерес вызывают и возможности применения распределенных систем баз данных в приложениях, которые традиционно назывались транзакционными
- 3. Во многих приложениях OLTP имеются некоторые транзакции, которые производят доступ к данным из нескольких разделов. Это
- 4. Схемы управления параллелизмом разработаны для систем разделенных данных в основной памяти типа H-Store. В H-Store поддерживается
- 5. В последнее время в связи с этой проблемой часто упоминается теорема CAP Эрика Брювера (Eric Brewer),
- 6. Выполнение транзакций
- 7. H-Store представляет собой инфраструктуру для системы, использующей разделение данных и однопотоковое выполнение для упрощения управления параллелизмом.
- 8. Компоненты системы Система состоит из трех типов процессов, показанных на рис. 1. данные сохраняются в разделах,
- 9. Транзакции оформляются в виде хранимых процедур, состоящих из детерминированного кода, который перемежается операциями над базой данных.
- 10. После получения подтверждения от всех процессов резервных разделов результат транзакции посылается клиенту. Этот протокол гарантирует долговечность
- 11. Чтобы обеспечить сериализуемый порядок выполнения многораздельных транзакций без возможности возникновения синхронизационных тупиков, они направляются в систему
- 12. Многораздельные транзакции выполняются с использованием буфера отката, а для принятия решения об успешности завершения транзакций применяется
- 13. При выполнении многораздельных транзакций при ожидании данных от процессов других разделов в процессе основного раздела могут
- 14. Спекулятивная обработка однораздельных транзакций. Для каждого раздела поддерживается очередь невыполненных транзакций и очередь незафиксированных транзакций. В
- 15. Это схема чисто локального спекулятивного выполнения, когда спекулятивные результаты буферизуются внутри раздела и не демонстрируются за
- 16. Например, если имеется некоторая таблицы, над которой в основном выполняются операции чтения, то может оказаться полезно
- 17. У спекулятивной схемы выполнения транзакций имеется несколько ограничений. Во-первых, поскольку спекулятивное выполнение может применяться только после
- 18. Преимуществом спекулятивной схемы является то, что в этом случае не требуются синхронизационные блокировки и отслеживание наборов
- 19. Механизм синхронизационных блокировок гарантирует, что результаты будут эквивалентны результатам выполнения транзакций в некотором последовательном порядке. Недостатком
- 20. При обнаружении цикла для его разрушения в жертву приносятся однораздельные транзакции, потому что их повторное выполнение
- 21. Аварийное завершение транзакций Спекулятивная схема основана не предположении, что транзакции будут фиксироваться. Если транзакция завершается аварийно,
- 22. Результаты анализа показывают, что выбор наилучшего механизма управления параллелизмом зависит от свойств рабочей нагрузки. Спекулятивная схема
- 24. Скачать презентацию
Слайд 2Естественный интерес вызывают и возможности применения распределенных систем баз данных в приложениях,
Естественный интерес вызывают и возможности применения распределенных систем баз данных в приложениях,
Слайд 3Во многих приложениях OLTP имеются некоторые транзакции, которые производят доступ к данным
Во многих приложениях OLTP имеются некоторые транзакции, которые производят доступ к данным
.Возможны две схемы управления параллелизмом с низкими накладными расходами. В первой схеме используются легковесные блокировки, а вторая схема обеспечивает разновидность спекулятивного управления параллелизмом, при котором избегаются накладные расходы отслеживания операций чтения и записи, но иногда выполняется работа, которую рано или поздно приходится откатить.
Слайд 4Схемы управления параллелизмом разработаны для систем разделенных данных в основной памяти типа
Схемы управления параллелизмом разработаны для систем разделенных данных в основной памяти типа
В H-Store поддерживается только выполнение транзакций, которые заранее объявляются в виде хранимых процедур. Вызов каждой хранимой процедуры является одной транзакцией, которая должна быть либо аварийно завершена, либо зафиксирована до возврата результатов клиенту. Устранение непредвиденных транзакций приводит к отсутствию задержек из-за ожидания реакции пользователей, что сокращает потребность в параллелизме.
При отсутствии задержек из-за ожидания реакции пользователей или обменов с дисками в H-Store транзакции выполняются с начала до конца в одном потоке управления. Для получения преимуществ от наличия нескольких физических машин и нескольких процессоров данные должны быть разбиты на разъединенные разделы. В каждом разделе транзакции выполняются независимо. Возникает проблема нахождения способа разделения данных, при котором каждая транзакция обращается к данным только одного раздела
Слайд 5В последнее время в связи с этой проблемой часто упоминается теорема CAP
В последнее время в связи с этой проблемой часто упоминается теорема CAP
Было установлено, что при выполнении части тестового набора TPC-C на поддержку блокировок, защелок (latch) и буфера откатов, которая требуется при наличии многопотокового управления параллелизмом, уходит 42% команд процессора. Это говорит о том, что устранение управления параллелизмом может привести к значительному повышению производительности.
Слайд 6Выполнение транзакций
Выполнение транзакций
Слайд 7H-Store представляет собой инфраструктуру для системы, использующей разделение данных и однопотоковое выполнение
H-Store представляет собой инфраструктуру для системы, использующей разделение данных и однопотоковое выполнение
Результаты особенно важны для систем, в которых разделение данных используется для достижения параллелизма, поскольку рабочую нагрузку, не разделенную должным образом, можно выполнять без накладных расходов, свойственных управлению параллелизмом на основе синхронизационных блокировок.
Слайд 8Компоненты системы
Система состоит из трех типов процессов, показанных на рис. 1.
данные
Компоненты системы
Система состоит из трех типов процессов, показанных на рис. 1.
данные
2. Имеется один процесс, называемый центральным координатором и используемый для координации всех распределенных транзакций. Это обеспечивает глобальную упорядоченность распределенных транзакций. 3. Клиентские процессы являются приложениями конечных пользователей, запускающими в системе транзакции в форме вызовов хранимых процедур. Когда клиентская библиотека подключается к базе данных, она загружает часть системного каталога, в которой описываются доступные хранимые процедуры, сетевые адреса разделов и способ распределения данных. Это позволяет клиентской библиотеке направлять транзакции в соответствующие процессы.
Слайд 9Транзакции оформляются в виде хранимых процедур, состоящих из детерминированного кода, который перемежается
Транзакции оформляются в виде хранимых процедур, состоящих из детерминированного кода, который перемежается
Каждая транзакция разбивается на фрагменты. Фрагмент – это часть работы, которую выполнить в точно одном разделе. В нем может выполняться некоторая смесь пользовательского кода и операций над базой данных. Если клиент определяет, что запрос является одноузловой транзакцией, он направляет его в основной раздел, отвечающий за требуемые данные. Для обеспечения долговечности хранения в соответствующем процессе основного раздела используется протокол репликации между основным и резервными разделами. При отсутствии сбоев процесс основного раздела получает запрос из сети и посылает его копию процессам резервных разделов. Во время ожидания их подтверждения в процессе основного раздела выполняется транзакция. Поскольку эта транзакция является однораздельной, этот процесс не блокируется.
Слайд 10После получения подтверждения от всех процессов резервных разделов результат транзакции посылается клиенту.
После получения подтверждения от всех процессов резервных разделов результат транзакции посылается клиенту.
Для выполнения одноузловых транзакций не требуется никакого управления параллелизмом. В большинстве случаев система выполняет такие транзакции без сохранения информации, требуемой для откатов, что приводит к очень низким накладным расходам. Это возможно благодаря тому, что транзакции сопровождаются аннотациями, в которых указывается, может ли произойти аварийное завершение транзакции по инициативе пользователя. Для транзакций, для которых отсутствует возможность аварийного завершения по инициативе пользователя, при использовании схем управления параллелизмом, гарантирующих отсутствие синхронизационных тупиков, журнал отката не поддерживается. В других случаях система поддерживает в основной памяти буфер отката, который освобождается при фиксации транзакции.
Слайд 11Чтобы обеспечить сериализуемый порядок выполнения многораздельных транзакций без возможности возникновения синхронизационных тупиков,
Чтобы обеспечить сериализуемый порядок выполнения многораздельных транзакций без возможности возникновения синхронизационных тупиков,
Слайд 12Многораздельные транзакции выполняются с использованием буфера отката, а для принятия решения об
Многораздельные транзакции выполняются с использованием буфера отката, а для принятия решения об
Когда процесс основного раздела получает заключительный фрагмент, он отсылает все фрагменты транзакции процессам резервных разделов и ожидает их подтверждения до отправки окончательных результатов координатору.
Это эквивалентно принуждению участника 2PC к выталкиванию на диск своего решения о фиксации транзакции.
Когда у координатора имеются все решения участников, он завершает транзакцию, посылая сообщение "фиксация" ("commit") процессам разделов и возвращая окончательный результат приложению.
Слайд 13При выполнении многораздельных транзакций при ожидании данных от процессов других разделов в
При выполнении многораздельных транзакций при ожидании данных от процессов других разделов в
Простейшая схема управления многораздельными транзакциями состоит в том, что до завершения активных транзакций прием на обработку других транзакций блокируется. Когда процесс некоторого раздела получает первый фрагмент некоторой многораздельной транзакции, он выполняет его и возвращает результаты. Все другие транзакции ставятся в очередь. При получении последующих фрагментов активной транзакции процесс обрабатывает их по порядку. После того как данная транзакция фиксируется или откатывается, обрабатываются транзакции, ранее поставленные в очередь.
Слайд 14Спекулятивная обработка однораздельных транзакций. Для каждого раздела поддерживается очередь невыполненных транзакций и
Спекулятивная обработка однораздельных транзакций. Для каждого раздела поддерживается очередь невыполненных транзакций и
Слайд 15Это схема чисто локального спекулятивного выполнения, когда спекулятивные результаты буферизуются внутри раздела
Это схема чисто локального спекулятивного выполнения, когда спекулятивные результаты буферизуются внутри раздела
Когда многораздельные транзакции зафиксируются, и очередь незафиксированных транзакций станет пустой, процессы разделов смогут возобновить не спекулятивное выполнение транзакций. Эта схема позволяет без блокирования выполнять последовательность многораздельных транзакций, в каждой из которых имеется по одному фрагменту для каждого раздела, если все эти транзакции фиксируются. Мы называем такие транзакции простыми многораз-дельными транзакциями. Транзакции этого вида довольно распространены.
Слайд 16Например, если имеется некоторая таблицы, над которой в основном выполняются операции чтения,
Например, если имеется некоторая таблицы, над которой в основном выполняются операции чтения,
Слайд 17У спекулятивной схемы выполнения транзакций имеется несколько ограничений. Во-первых, поскольку спекулятивное выполнение
У спекулятивной схемы выполнения транзакций имеется несколько ограничений. Во-первых, поскольку спекулятивное выполнение
Во-вторых, многораздельное спекулятивное выполнение транзакций можно применять только в тех случаях, когда многораздельные транзакции поступают от одного и того же координатора. Это требуется для того, чтобы координатор знал о виде завершения более ранних транзакций и мог при необходи-мости каскадно откатить несколько транзакций. Однако единственный координатор может стать узким местом системы. Чтобы система могла получить пользу от этой оптимизации при применении нескольких координаторов, каждый координатор должен распределять транзакции по пакетам. Это может приводить к задержке выполнения транзакций и требует настройки числа координаторов в соответствии с особенностями рабочей нагрузки.
Слайд 18Преимуществом спекулятивной схемы является то, что в этом случае не требуются синхронизационные
Преимуществом спекулятивной схемы является то, что в этом случае не требуются синхронизационные
Синхронизационные блокировки.
В схеме с синхронизационными блокировками транзакции при своем выполнении запрашивают синхронизационные блокировки элементов данных по чтению и записи, и выполнение транзакции, запросившей конфликтующую синхронизационную блокировку, приостанавливается. Транзакции должны сохранять информацию, требуемую для отката, чтобы иметь возможность откататься при возникновении синхронизационного тупика. Применение синхронизационных блокировок позволяет в одном разделе выполнять и фиксировать неконфликтующие транзакции во время сетевых задержек для многораздельных транзакций.
Слайд 19Механизм синхронизационных блокировок гарантирует, что результаты будут эквивалентны результатам выполнения транзакций в
Механизм синхронизационных блокировок гарантирует, что результаты будут эквивалентны результатам выполнения транзакций в
В схеме синхронизационных блокировок следуют строгому двухфазному протоколу. Поскольку это гарантирует получение сериализуемого плана выполнения транзакций, клиенты посылают многораздельные транзакции прямо процессам разделов, не используя центральный координатор. Этот подход более эффективен при отсутствии конфликтующих синхронизационных блокировок, но при этом появляется возможность распределенного синхронизационного тупика.
Для распознавания локальных тупиков используется выявление наличия циклов, а наличие распределенных тупиков устанавливается с использованием механизма тайм-аутов.
Слайд 20При обнаружении цикла для его разрушения в жертву приносятся однораздельные транзакции, потому
При обнаружении цикла для его разрушения в жертву приносятся однораздельные транзакции, потому
Эффективность схемы с синхронизационными блокировками зависит от наличия или отсутствия конфликтов между транзакциями. При отсутствии конфликтов транзакции выполняются параллельно. Однако при их наличии возникают дополнительные накладные расходы на приостановку и возобновление выполнения. Синхронизационные тупики в этой рабочей нагрузке невозможны, что позволило избежать влияния на производительность зависящих от реализации политик разрешения такие ситуаций. Производительность системы с использованием схемы синхронизационных блокировок при повышении частоты конфликтов падает. Система с синхронизационными блокировками превосходит по производительности систему с блокировочной схе-мой при наличии большого числа многораздельных транзакций, потому что в данной рабочей нагрузке каждая транзакция конфлик-тует только в одном разделе, так что некоторую часть работы удается выполнять параллельно.
Слайд 21Аварийное завершение транзакций
Спекулятивная схема основана не предположении, что транзакции будут фиксироваться. Если
Аварийное завершение транзакций
Спекулятивная схема основана не предположении, что транзакции будут фиксироваться. Если
Слайд 22Результаты анализа показывают, что выбор наилучшего механизма управления параллелизмом зависит от свойств
Результаты анализа показывают, что выбор наилучшего механизма управления параллелизмом зависит от свойств
Спекулятивная схема является предпочтительной, когда имеется немного транзакций с несколькими циклами коммуникаций (транзакций общего вида) и аварийных завершений транзакций.