УСТРОЙСТВО И СПОСОБ ПРОГОНА МНОЖЕСТВА ПОТОКОВ

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