Способ и система для маршрутизации и выполнения транзакций

1. Распределенная программная система для маршрутизации транзакций с целью их выполнения, в которой транзакции формируются из запроса, предоставленного источником запросов, содержащая:
- подсистему базы данных, содержащую множество мест назначения транзакции и разделенную на множество сегментов, каждый из которых содержит соответствующую часть множества мест назначения транзакции; и
- подсистему маршрутизации транзакций для упорядочивания множества транзакций, каждая из которых имеет соответствующий уникальный идентификатор транзакции (TUID) и предназначена для по меньшей мере одного соответствующего места назначения транзакции для выполнения, содержащую:
- множество портов-координаторов, каждый из которых связан с соответствующим счетчиком и выполнен с возможностью:
- приема соответствующего набора транзакций, каждая из которых имеет соответствующий идентификатор TUID и связана с по меньшей мере одним соответствующим местом назначения транзакции для выполнения;
- определения для сегмента, содержащего по меньшей мере одно место назначения транзакции, связанное с соответствующим набором транзакций, локального посегментного порядка транзакций из подмножества набора транзакций, предназначенных для по меньшей мере одного места назначения транзакции из этого сегмента, при этом локальный посегментный порядок основан на соответствующих идентификаторах TUID транзакций из подмножества набора транзакций; при этом локальный посегментный порядок для подмножества набора транзакций указывает порядок, в котором транзакции из подмножества набора транзакций должны выполняться этим сегментом, и
- множество портов-посредников, каждый из которых заранее сопоставлен с по меньшей мере одним сегментом и выполнен с возможностью приема от множества портов-координаторов локальных посегментных порядков, связанных с по меньшей мере одним сегментом, с которым заранее сопоставлен некоторый порт из множества портов-посредников, и определения централизованного посегментного порядка для по меньшей мере одного заранее сопоставленного сегмента путем упорядочивания соответствующих локальных посегментных порядков, связанных с этим по меньшей мере одним заранее сопоставленным сегментом, на основе связанных с множеством портов-координаторов счетчиков принятых соответствующих локальных посегментных порядков; при этом централизованный посегментный порядок указывает порядок, в котором все транзакции, предназначенные для мест назначения транзакции соответствующего сегмента и принятые соответствующим портом-посредником, должны выполняться соответствующим сегментом.
2. Система по п. 1, в которой каждый порт из множества портов-координаторов и каждый порт из множества портов-посредников реализован в виде программного модуля.
3. Система по п. 2, в которой программный модуль реализован как конечный автомат (SM).
4. Система по п. 1, в которой каждый сегмент из множества сегментов заранее сопоставлен с одним портом-посредником из множества портов-посредников.
5. Система по п. 4, в которой порт-посредник из множества портов-посредников заранее сопоставлен с несколькими сегментами из множества сегментов.
6. Система по п. 1, в которой порт-посредник из множества портов-посредников реализован в виде части соответствующего заранее сопоставленного сегмента.
7. Система по п. 1, в которой порт из множества портов-координаторов выполнен с возможностью отправки пустого пакета координатора в те порты из множества портов-посредников, для которых этот порт из множества портов-координаторов не принял транзакции.
8. Система по п. 1, в которой количество портов во множестве портов-координаторов меньше количества портов во множестве портов-посредников.
9. Система по п. 8, в которой количество портов во множестве портов-посредников меньше количества сегментов во множестве сегментов.
10. Система по п. 1, в которой подсистема базы данных содержит базу данных.
11. Система по п. 10, в которой база данных представляет собой распределенную базу данных и хранится в подсистеме распределенного хранения данных.
12. Система по п. 10, в которой база данных содержит одну или несколько таблиц базы данных.
13. Система по п. 12, в которой одна или несколько таблиц базы данных разделены между множеством сегментов.
14. Способ маршрутизации транзакций с целью их выполнения, выполняемый распределенной программной системой, содержащей подсистему базы данных, содержащую множество мест назначения транзакции и разделенную на множество сегментов, каждый из которых содержит соответствующую часть множества мест назначения транзакции, и подсистему маршрутизации транзакций для упорядочивания множества транзакций, каждая из которых имеет соответствующий уникальный идентификатор транзакции (TUID) и предназначена для по меньшей мере одного соответствующего места назначения транзакции для выполнения, при этом подсистема маршрутизации транзакций содержит множество портов-координаторов и множество портов-посредников и каждый порт из множества портов-посредников заранее сопоставлен с по меньшей мере одним сегментом из множества сегментов, включающий в себя:
- прием портом-координатором соответствующего набора транзакций, каждая из которых имеет соответствующий идентификатор TUID и связана с по меньшей мере одним соответствующим местом назначения транзакции для выполнения;
- формирование портом-координатором по меньшей мере одного локального посегментного порядка на основе идентификаторов TUID и по меньшей мере одного соответствующего места назначения транзакции для транзакций из соответствующего набора транзакций, при этом некоторый порядок из по меньшей мере одного локального посегментного порядка содержит транзакции из соответствующего набора транзакций, предназначенных для мест назначения транзакции некоторого сегмента из множества сегментов;
- передачу портом-координатором по меньшей мере одного локального посегментного порядка в соответствующий порт-посредник, заранее сопоставленный с некоторым сегментом из множества сегментов;
- прием портом-посредником по меньшей мере одного локального посегментного порядка от множества портов-координаторов, при этом каждый порядок из по меньшей мере одного локального посегментного порядка, принятого портом-посредником, связан с идентификатором координатора (CID) соответствующего порта-координатора и со счетчиком соответствующего порта-координатора; и
- формирование этим портом-посредником по меньшей мере одного централизованного посегментного порядка выполнения из по меньшей мере одного локального посегментного порядка, принятого от множества портов-координаторов, на основе соответствующих идентификаторов CID и соответствующих счетчиков, при этом такой по меньшей мере один централизованный посегментный порядок выполнения предназначен для соответствующего заранее сопоставленного сегмента этого порта-посредника.
15. Способ по п. 14, дополнительно включающий в себя выполнение соответствующим заранее сопоставленным сегментом порта-посредника транзакций, указанных в соответствующем централизованным посегментном порядке выполнения.
16. Способ по п. 14, в котором перед формированием по меньшей мере одного централизованного посегментного порядка выполнения способ дополнительно включает в себя проверку портом-посредником получения пакета координатора от каждого порта из множества портов-координаторов.
17. Способ по п. 14, в котором формирование портом-координатором по меньшей мере одного локального посегментного порядка включает в себя упорядочивание этим портом-координатором соответствующего набора транзакций с целью формирования соответствующего упорядоченного набора транзакций.
18. Способ по п. 17, в котором упорядочивание включает в себя применение алгоритма упорядочивания в отношении соответствующих идентификаторов TUID.
19. Способ по п. 14, в котором количество портов во множестве портов-координаторов меньше количества портов во множестве портов-посредников.
20. Способ по п. 19, в котором количество портов во множестве портов-посредников меньше количества сегментов во множестве сегментов.
21. Способ по п. 14, в котором подсистема базы данных содержит базу данных.
22. Способ по п. 21, в котором база данных представляет собой распределенную базу данных и хранится в подсистеме распределенного хранения данных.
23. Способ по п. 21, в котором база данных содержит одну или несколько таблиц базы данных.
24. Способ по п. 22, в котором одна или несколько таблиц базы данных разделены между множеством сегментов.