ПОРЯДОК ФИКСАЦИИ ПРОГРАММНЫХ ТРАНЗАКЦИЙ И УПРАВЛЕНИЕ КОНФЛИКТАМИ

1. Способ применения упорядочения к транзакциям в системе с программной транзакционной памятью, содержащий этапы, на которых
обеспечивают систему с программной транзакционной памятью (242);
обеспечивают функцию, позволяющую задавать определенный порядок фиксации для множества транзакций (244), и
используют заданный порядок фиксации во время работы, чтобы помочь в определении порядка, в котором следует фиксировать множество транзакций в системе с программной транзакционной памятью (246).
2. Способ по п.1, дополнительно содержащий этап, на котором
используют заданный порядок фиксации для помощи в разрешении конфликтов, возникающих между двумя или более из множества транзакций (248).
3. Способ по п.1, в котором заданный порядок фиксации содержит заданное полное упорядочение множества транзакций (244).
4. Способ по п.1, в котором заданный порядок фиксации содержит заданное частичное упорядочение множества транзакций (244).
5. Способ по п.1, в котором обеспечивают арбитр фиксации, который отслеживает одно или более значений упорядочения для заданного порядка фиксации (272).
6. Способ по п.5, в котором при приготовлении конкретной транзакции из множества транзакций к фиксации сравнивают одно или более значений упорядочения со значением упорядочения для конкретной транзакции, чтобы определить, можно ли фиксировать конкретную транзакцию (278).
7. Способ по п.1, в котором заданный порядок фиксации назначают динамически (244).
8. Способ по п.1, в котором заданный порядок фиксации назначают статически (244).
9. Способ по п.1, в котором обеспечивают арбитр фиксации, который отслеживает поле «следующего для фиксации», которое представляет следующую транзакцию из множества транзакций, которую следует допустить к фиксации (274).
10. Способ по п.9, в котором порядковый номер фиксации предоставляют для каждой из множества транзакций (276).
11. Способ по п.10, в котором при приготовлении конкретной транзакции из множества транзакций к фиксации определяют, имеет ли порядковый номер фиксации для конкретной транзакции то же значение, что и поле «следующего для фиксации», отслеживаемое арбитром фиксации (278).
12. Способ по п.11, в котором, если порядковый номер фиксации для конкретной транзакции и поле «следующего для фиксации» имеют одинаковое значение, разрешают выполнение фиксации (278).
13. Способ по п.12, в котором, после того как происходит фиксация и она является успешной, арбитр фиксации увеличивает поле «следующего для фиксации» до следующего номера в последовательности (278).
14. Способ по п.11, в котором, если порядковый номер фиксации для конкретной транзакции и поле «следующего для фиксации» не имеют одинакового значения, помещают конкретную транзакцию в режим ожидания, пока она не будет вызвана в более поздний момент времени, после того как фиксируется транзакция-предшественник (280).
15. Машиночитаемый носитель, имеющий исполняемые компьютером команды, побуждающие компьютер выполнять этапы способа по п.1 (200).
16. Способ обеспечения управления конфликтами с упорядочением, содержащий этапы, на которых
обеспечивают систему с программной транзакционной памятью, которая поддерживает заданный порядок фиксации для одной или более групп транзакций (342);
обеспечивают процесс управления конфликтами, который вызывают, когда возникает конфликт между первой транзакцией и второй транзакцией (344), и
используют заданный порядок фиксации в процессе управления конфликтами для помощи в определении того, какая из первой транзакции или второй транзакции должна выиграть в конфликте и быть допущенной к выполнению (346).
17. Способ по п.16, в котором, если процесс управления конфликтами определяет, что первая транзакция и вторая транзакция являются частью одной группы транзакций (348), то сравнивают (352) первое поле порядкового номера, представляющее первую транзакцию, и второе поле порядкового номера, представляющее вторую транзакцию, и конкретная транзакция из первой транзакции и второй транзакции, которая имеет меньший соответствующий порядковый номер, допускается к выполнению (354).
18. Машиночитаемый носитель, имеющий исполняемые компьютером команды, побуждающие компьютер выполнять этапы способа по п.16 (200).
19. Машиночитаемый носитель, имеющий исполняемые компьютером команды, побуждающие компьютер выполнять этапы, содержащие
обеспечение системы с программной транзакционной памятью (206);
обеспечение арбитра фиксации, который позволяет задавать определенный порядок фиксации для множества транзакций (208), причем арбитр фиксации функционирует для использования заданного порядка фиксации во время выполнения, чтобы помочь в определении порядка, в котором следует фиксировать множество транзакций в системе с программной транзакционной памятью (210);
обеспечение процесса управления конфликтами, который вызывается, когда возникает конфликт между первой транзакцией и второй транзакцией (212), и
использование заданного порядка фиксации в процессе управления конфликтами для помощи в определении, какая из первой транзакции или второй транзакции должна выиграть в конфликте и быть допущенной к выполнению (214).
20. Машиночитаемый носитель по п.19, в котором арбитр фиксации функционирует для принудительного выполнения упорядочения фиксации во вложенных транзакциях (380).