IP Library › Granted Patent US 10,057,333
Granted Patent B2
US 10,057,333 · App. 15/055,130 · Granted Aug 21, 2018

Coordinated processing of data by networked computing resources

Inventors: Walter Michael Pitio (Morganville, NJ); Philip Iannaccone (New York, NY); Robert Park (New York, NY); John Schwall (New York, NY); Richard Steiner (Wyckoff, NJ); Allen Zhang (Princeton, NJ); Thomas L. Popejoy (New York, NY); Daniel Michael Aisen (New York, NY); Bradley Katsuyama (New York, NY)
Assignee: ROYAL BANK OF CANADA
H04L67/10G06Q40/04H04L43/0852H04L47/283H04L67/325H04L43/0858H04L43/0864
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,057,333
App. No.
15/055,130
Filed
Feb 26, 2016
Granted
Aug 21, 2018
Kind
B2
Art Unit
2444
USPC
709/201
Abstract

Systems, methods, and computer-readable media for coordinating processing of data by multiple networked computing resources include monitoring data associated with a plurality of networked computing resources, and coordinating the routing of data processing segments to the networked computing resources.

Claims (37)

1. A system for coordinating processing of data by multiple networked computing resources, the system comprising at least one processor configured to:

obtain a plurality of data processing waves, each data processing wave identifying: two or more data processing segments, one or more networked corresponding computing resources to which the two or more data processing segments are to be routed; and a timing sequence in which the two or more data processing segments are to be routed;

obtain a minimum handling interval for each of the networked computing resources;

schedule an order for routing the plurality of data processing waves based on the wave timing sequences and the minimum handling intervals for the networked computing resources; and

route each of the data processing segments in the plurality of data processing waves based on the order.

2. The system of claim 1 wherein scheduling the order for routing the plurality of data processing waves comprises determining an order which intersperses the data processing segments of different data processing waves without violating the minimum handling intervals of the plurality of networked computing resources or the timing sequences of the plurality of data processing waves.

3. The system of claim 1 wherein the timing sequences identify one or more time ranges within which a first data processing segment in a particular data processing wave can be routed relative to a time at which a second data processing segment in the particular data processing wave is routed.

4. The system of claim 1 wherein obtaining the plurality of data processing waves comprises obtaining M data processing waves from a wave queue; and wherein scheduling the order for routing the M data processing waves comprises: determining a total handling time for each possible arrangement of the M data processing waves, and scheduling the order as an arrangement of the possible arrangements having the shortest total handling time.

5. The system of claim 4 wherein M is selected based on a scheduling computation time and total handling times for one or more of the plurality of data processing waves.

6. The system of claim 1 wherein obtaining the plurality of data processing waves comprises obtaining M data processing waves from a wave queue; and wherein scheduling the order for routing the M data processing waves comprises: determining total handling times for different arrangements of the N data processing waves until a defined computation time expires, and scheduling the order as an arrangement from the different arrangements having the shortest total handling time determined before the defined computation time expired.

7. The system of claim 1 , wherein the at least one processor is configured to: monitor data associated with the plurality of networked computing resources, the monitored data including data associated with data processing segments previously routed to the plurality of networked computing resources.

8. The system of claim 7 , wherein obtaining the minimum handling interval time comprises: determining when two or more data processing segments routed to one of the networked computing resources resulted in one or more execution latencies which are longer than a historical latency value; and using a relative timing of the routing of the two or more data processing segments to define the minimum handling time for the one of the networked computing resources.

9. The system of claim 1 wherein the at least one processor is configured to: identify two or more data processing segments which are scheduled to be routed to one of the plurality of networked computing resources with a relative timing that is within a threshold of the minimum handling interval of the one of the plurality of networked computing resources; and after routing the two or more data processing segments, monitoring execution latencies for the two or more data processing segments to determine whether to adjust the minimum handling interval of the one of the plurality of networked computing resources.

10. The system of claim 1 , wherein the at least one processor is configured to identify a plurality of data processing segments which are scheduled to be routed to one of the plurality of networked computing resources with a relative timing that is within a threshold of the minimum handling interval of the one of the plurality of networked computing resources; and after routing the plurality of data processing segments, monitoring execution latencies for the plurality of data processing segments to determine a number of data processing segments which will trigger the minimum handling interval of the one of the plurality of networked computing resources.

11. The system of claim 1 wherein the plurality of data processing waves is obtained from a wave queue; wherein the at least one processor is configured to fill the wave queue with at most N data processing waves from each of a plurality of session queues associated with one or more corresponding data sources.

12. The system of claim 11 wherein filing the wave queue comprises selecting data processing waves from the plurality of session queues using a priority scheme which is based at least in part on timing parameters associated with the data processing waves.

13. A method for coordinating processing of data by multiple networked computing resources, the method comprising:

obtaining a plurality of data processing waves, each data processing wave identifying: two or more data processing segments, one or more networked corresponding computing resources to which the two or more data processing segments are to be routed; and a timing sequence in which the two or more data processing segments are to be routed;

obtaining a minimum handling interval for each of the networked computing resources;

scheduling an order for routing the plurality of data processing waves based on the wave timing sequences and the minimum handling intervals for the networked computing resources; and

routing each of the data processing segments in the plurality of data processing waves based on the order.

14. The method of claim 13 wherein scheduling the order for routing the plurality of data processing waves comprises determining an order which intersperses the data processing segments of different data processing waves without violating the minimum handling intervals of the plurality of networked computing resources or the timing sequences of the plurality of data processing waves.

15. The method of claim 13 wherein the timing sequences identify one or more time ranges within which a first data processing segment in a particular data processing wave can be routed relative to a time at which a second data processing segment in the particular data processing wave is routed.

16. The method of claim 13 wherein obtaining the plurality of data processing waves comprises obtaining M data processing waves from a wave queue; and wherein scheduling the order for routing the M data processing waves comprises: determining a total handling time for each possible arrangement of the M data processing waves, and scheduling the order as an arrangement of the possible arrangements having the shortest total handling time.

17. The method of claim 16 wherein M is selected based on a scheduling computation time and total handling times for one or more of the plurality of data processing waves.

18. The method of claim 13 wherein obtaining the plurality of data processing waves comprises obtaining M data processing waves from a wave queue; and wherein scheduling the order for routing the M data processing waves comprises: determining total handling times for different arrangements of the N data processing waves until a defined computation time expires, and scheduling the order as an arrangement from the different arrangements having the shortest total handling time determined before the defined computation time expired.

19. The method of claim 13 , comprising: monitoring data associated with the plurality of networked computing resources, the monitored data including data associated with data processing segments previously routed to the plurality of networked computing resources.

20. The method of claim 19 , wherein obtaining the minimum handling interval time comprises: determining when two or more data processing segments routed to one of the networked computing resources resulted in one or more execution latencies which are longer than a historical latency value; and using a relative timing of the routing of the two or more data processing segments to define the minimum handling time for the one of the networked computing resources.

21. The method of claim 13 comprising: identifying two or more data processing segments which are scheduled to be routed to one of the plurality of networked computing resources with a relative timing that is within a threshold of the minimum handling interval of the one of the plurality of networked computing resources; and after routing the two or more data processing segments, monitoring execution latencies for the two or more data processing segments to determine whether to adjust the minimum handling interval of the one of the plurality of networked computing resources.

22. The method of claim 13 , comprising identifying a plurality of data processing segments which are scheduled to be routed to one of the plurality of networked computing resources with a relative timing that is within a threshold of the minimum handling interval of the one of the plurality of networked computing resources; and after routing the plurality of data processing segments, monitoring execution latencies for the plurality of data processing segments to determine a number of data processing segments which will trigger the minimum handling interval of the one of the plurality of networked computing resources.

23. The method of claim 13 wherein the plurality of data processing waves is obtained from a wave queue; wherein the at least one processor is configured to fill the wave queue with at most N data processing waves from each of a plurality of session queues associated with one or more corresponding data sources.

24. The method of claim 23 wherein filing the wave queue comprises selecting data processing waves from the plurality of session queues using a priority scheme which is based at least in part on timing parameters associated with the data processing waves.

25. A non-transitory, computer-readable medium or non-transitory, computer-readable media having stored thereon instructions which when executed by at least one processor, configure the at least one processor to:

obtain a plurality of data processing waves, each data processing wave identifying: two or more data processing segments, one or more networked corresponding computing resources to which the two or more data processing segments are to be routed; and a timing sequence in which the two or more data processing segments are to be routed;

obtain a minimum handling interval for each of the networked computing resources;

schedule an order for routing the plurality of data processing waves based on the wave timing sequences and the minimum handling intervals for the networked computing resources; and

route each of the data processing segments in the plurality of data processing waves based on the order.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2016
From: PITIO, WALTER MICHAEL; IANNACCONE, PHILIP
To: ROYAL BANK OF CANADA
Reel/Frame 037880/0132 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2016
From: PARK, ROBERT; KATSUYAMA, BRADLEY; STEINER, RICHARD; AISEN, DANIEL; ZHANG, ALLEN; SCHWALL, JOHN; POPEJOY, THOMAS L
To: ROYAL BANK OF CANADA
Reel/Frame 037880/0386 →
Continuity (6)
Continuation In Part 12796139 · Jun 8, 2010
Provisional Application 61285375 · Dec 10, 2009
Provisional Application 62126106 · Feb 27, 2015
Provisional Application 62126120 · Feb 27, 2015
Provisional Application 62132063 · Mar 12, 2015
Related Publication 20160205174A1 · Jul 14, 2016
Cited By (1)
US 12,387,266