IP Library Granted Patent US 9,648,095
Granted Patent B2
US 9,648,095 · App. 14/013,807 · Granted May 9, 2017

System and method for processing data feeds

Inventors: Shivansh Tyagi (Bengaluru, IN); Ravi Pratap Maddimsetty (Bengaluru, IN)
Assignee: MOBILEMOTION TECHNOLOGIES PRIVATE LIMITED
H04L67/1002G06F9/46
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 9,648,095
App. No.
14/013,807
Granted
May 9, 2017
Kind
B2
Abstract

The present invention provides a method and a system for processing a plurality of data feeds. The method and system include acquiring the plurality of data feeds from one or more content servers via a network, adding a respective task of a plurality of tasks to each of the plurality of data feeds, queuing the plurality of tasks at a queuing database, fetching each of the plurality of tasks queued at the queuing database by one or more worker servers and asynchronously processing the plurality of tasks by the one or more worker servers. Each respective task of the plurality of tasks is a request for processing a data feed of the plurality of data feeds.

Claims (40)

1. A method for processing a plurality of data feeds, the method comprising:

acquiring said plurality of data feeds from one or more content servers via a network;

adding a respective task of a plurality of tasks to each of said plurality of data feeds, wherein each respective task of said plurality of tasks is a request for processing a data feed of said plurality of data feeds;

storing and queuing said plurality of tasks in a persistent queue at a queuing database;

fetching each of said plurality of tasks queued at said queuing database by one or more worker servers;

asynchronously processing said plurality of tasks by said one or more worker servers; and

engaging additional worker servers when traffic load of the tasks increases, and disengaging one or more of the worker servers when the traffic load of the tasks decreases, to maintain a ratio of traffic load of the tasks to number of engaged worker servers;

wherein a push mechanism enables acquiring said plurality of data feeds from said one or more content servers;

wherein a pull mechanism enables acquiring said plurality of data feeds from said one or more content servers;

wherein the persistent queue is created by taking a snapshot of data stored in the queuing database for recovery in event of the queuing database being inaccessible.

2. The method as recited in claim 1 , wherein queuing said plurality of tasks is based on a priority.

3. The method as recited in claim 2 , wherein said priority is based on a predetermined criterion, the predetermined criteria including at least one of a frequency with which the content servers publish new web content and a service-level agreement relating to the content servers and the feed processing platform.

4. The method as recited in claim 1 , wherein asynchronously processing said plurality of tasks by a worker server of said one or more worker servers comprises requesting for additional tasks irrespective of status of said plurality of tasks running on other worker servers of said one or more worker servers.

5. A method for processing a plurality of data feeds, the method comprising:

acquiring said plurality of data feeds from one or more content servers via a network;

adding a respective task of a plurality of tasks to each of said plurality of data feeds, wherein each respective task of said plurality of tasks is a request for processing a data feed of said plurality of data feeds;

storing and queuing said plurality of tasks in a persistent queue at a queuing database based on a priority;

asynchronously processing said plurality of tasks by one or more worker servers, wherein said one or more worker server fetches each of said plurality of tasks; and

engaging additional worker servers when traffic load of the tasks increases, and disengaging one or more of the worker servers when the traffic load of the tasks decreases, to maintain a ratio of traffic load of the tasks to number of engaged worker servers

wherein a push mechanism enables acquiring said plurality of data feeds from said one or more content servers;

wherein a pull mechanism enables acquiring said plurality of data feeds from said one or more content servers.

6. The method as recited in claim 5 , wherein said priority is based on a predetermined criterion.

7. The method as recited in claim 5 , wherein asynchronously processing said plurality of tasks by a worker server of said one or more worker servers comprises requesting for additional tasks irrespective of status of tasks running on other worker servers of said one or more worker servers.

8. A system for processing a plurality of data feeds, the system comprising:

a feed processing platform, wherein said feed processing platform comprises:

a queuing data base; and

a plurality of worker servers,

wherein said feed processing platform is configured to:

communicate with a plurality of content servers to source a plurality of data feeds from said one or more content servers via a network;

add a respective task of a plurality of tasks to each of said plurality of data feeds, wherein each respective task of said plurality of tasks is a request for processing a data feed of said plurality of data feeds;

queue said plurality of tasks at said queuing database;

fetch each of said plurality of tasks queued at said queuing database by said one or more worker servers;

asynchronously process said plurality of tasks by said one or more worker servers; and

engage additional worker servers when traffic load of the tasks increases, and disengaging one or more of the worker servers when the traffic load of the tasks decreases, to maintain a ratio of traffic load of the tasks to number of engaged worker servers;

wherein a push mechanism enables sourcing said plurality of data feeds from said one or more content servers;

wherein a pull mechanism enables sourcing said plurality of data feeds from said one or more content servers;

wherein queuing said plurality of tasks is based on a priority based on a predetermined criterion.

9. The system as recited in claim 8 , wherein asynchronously processing said plurality of tasks by a worker server of said one or more worker servers comprises requesting for additional tasks irrespective of status of said plurality of tasks running on other worker servers of said one or more worker servers.

10. The system as recited in claim 8 , wherein said feed processing platform is configured to disengage a first set of workers servers of said one or more worker servers when traffic load of said plurality of tasks is decreased.

11. The system as recited in claim 8 , wherein said feed processing platform is configured to engage a first set of workers servers in said one or more worker servers when traffic load of said plurality of tasks is increased.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2015
From: TEXTRON INC.
To: TEXTRON INNOVATIONS INC.
Reel/Frame 035567/0813 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2013
From: TYAGI, SHIVANSH; MADDIMSETTY, RAVI PRATAP
To: M/S MOBILEMOTION TECHNOLOGIES PRIVATE LIMITED
Reel/Frame 031112/0192 →
Continuity (2)
Provisional Application 61694295 · Aug 29, 2012
Related Publication 20140068083A1 · Mar 6, 2014