Транзакционные параллельные СУБД новая волна


Спекулятивное выполнение транзакций - часть 6


Если координатор принимает решение зафиксировать T1, то спекулятивные результаты Tn являются корректными, и координатор может учесть это при фиксации Tn. В этом случае окончательно фиксируются транзакции T1, ..., Tn-1, а на фоне ожидания решения координатора о фиксации транзакции Tn продолжается спекулятивное выполнение транзакций из очереди необработанных транзакций потока управления.

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

Достоинством метода спекуляций является возможность избежать простоев в работе потоков управления основных разделов без использования синхронизационных блокировок и отслеживания наборов чтения и записи транзакций. Недостатками и ограничениями являются:

  • возможность перехода в спекулятивный режим выполнения только после обработки последнего фрагмента многораздельной транзакции (т.е. простои между выполнением последовательных фрагментов одной и той же транзакции возможны);

  • потребность в едином координаторе для все многораздельных транзакций, чтобы можно было допустить их спекулятивное выполнение (как отмечалось ранее, центральный координатор может ограничивать потенциально возможную пропускную способность системы);

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

Наконец, последняя схема, рассматриваемая в , основывается на синхронизационных блокировках. Идейно эта схема очень близка к схеме применяемой в (см. подраздел 3.2). Поскольку все фрагменты транзакций, адресуемые одному разделу базы данных, выполняются в одном потоке управления, нет потребности в менеджере блокировок, доступ к которому производился бы из разных потоков управления. Тем самым, нет потребности в какой-либо синхронизации доступа к структурам данных, разделяемым между несколькими потоками управления.


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



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