Method and apparatus for processing electronic mail in parallel
First Claim
1. A method for processing mail objects in parallel in a computer system comprising the steps of:
- maintaining, in said computer system, a plurality of queues each having a plurality of mail objects for processing in said computer system;
defining, using said computer system, an initial configuration that identifies an initial number of processes to be invoked for each of said plurality of queues;
initiating a parent process in said computer system;
initiating by said parent process said initial number of processes in said computer system;
processing in parallel said mail objects in each of said plurality of queues by said initial number of processes while any of said mail objects remain in said queue;
monitoring using a monitoring process the number of mail objects in one of said plurality of queues;
defining using said computer system a modified initial number of processes based on information provided by said monitoring process;
examining by said parent process said modified initial number of processes;
initiating by said parent process a plurality of additional processes when said modified initial number of processes is greater than said initial number of processes; and
terminating by said parent process a plurality of processes when said modified initial number of processes is less than said initial number of processes.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a method and apparatus for processing electronic mail in parallel. The present invention provides the ability to process mail objects in an electronic mail system in parallel. A message can be assigned to a queue. One or more processes can manage a plurality of messages in the queue. Each process can identify the next entry to be processed. Entries previously processed can be marked such that subsequent access is locked out. Mail objects and process information can be stored in a relational database system that provides the ability to perform locking at the record level. A process can be configured to perform a plurality of activities in a plurality of time periods. A guardian process can initiate or terminate other processes based on process information. Further, a guardian process examines system information periodically and identifies any need to initiate, restart, or stop one or more processes. Further, the guardian process can pass process information to an initiated process. One or more tables can be used to retain message information such as a instance table that includes a queue column. Further, tables can be used to retain process information such as process, process parameters, and process time tables.
-
Citations
9 Claims
-
1. A method for processing mail objects in parallel in a computer system comprising the steps of:
-
maintaining, in said computer system, a plurality of queues each having a plurality of mail objects for processing in said computer system; defining, using said computer system, an initial configuration that identifies an initial number of processes to be invoked for each of said plurality of queues; initiating a parent process in said computer system; initiating by said parent process said initial number of processes in said computer system; processing in parallel said mail objects in each of said plurality of queues by said initial number of processes while any of said mail objects remain in said queue; monitoring using a monitoring process the number of mail objects in one of said plurality of queues; defining using said computer system a modified initial number of processes based on information provided by said monitoring process; examining by said parent process said modified initial number of processes; initiating by said parent process a plurality of additional processes when said modified initial number of processes is greater than said initial number of processes; and terminating by said parent process a plurality of processes when said modified initial number of processes is less than said initial number of processes.
-
-
2. A method for processing mail objects in parallel in a computer system comprising the steps of:
-
maintaining, in said computer system, a plurality of queues each having a plurality of mail objects for processing in said computer system; defining, using said computer system, an initial configuration that identifies an initial number of processes to be invoked for each of said plurality of queues; initiating a parent process in said computer system; initiating by said parent process said initial number of processes in said computer system; processing in parallel said mail objects in each of said plurality of queues by said initial number of processes while any of said mail objects remain in said queue; wherein said processing step further comprises the steps of; selecting by said one of said initial number of processes one of said plurality of mail objects from one of said plurality of queues; and marking said one of said plurality of mail objects as selected by said one of said processes.
-
-
3. A method for processing mail objects in parallel in a computer system comprising the steps of:
-
maintaining, in said computer system, a plurality of queues each having a plurality of mail objects for processing in said computer system; defining, using said computer system, an initial configuration that identifies an initial number of processes to be invoked for each of said plurality of queues; initiating a parent process in said computer system; initiating by said parent process said initial number of processes in said computer system; processing in parallel said mail objects in each of said plurality of queues by said initial number of processes while any of said mail objects remain in said queue; and wherein said plurality of mail objects is maintained in a plurality of relations in a relational database system, said plurality of relations containing information about each of said plurality of mail objects including a queue designation. - View Dependent Claims (4)
-
-
5. A method for processing mail objects in parallel in a computer system comprising the steps of:
-
maintaining, in said computer system, a plurality of queues each having a plurality of mail objects for processing in said computer system; defining, using said computer system, an initial configuration that identifies an initial number of processes to be invoked for each of said plurality of queues; initiating a parent process in said computer system; initiating by said parent process said initial number of processes in said computer system; processing in parallel said mail objects in each of said plurality of queues by said initial number of processes while any of said mail objects remain in said queue; and wherein said initial configuration is maintained in a plurality of relations in a relational database system.
-
-
6. A method of dynamically scaling processing capabilities of an electronic mail system comprising the steps of:
-
initiating a parent process in said electronic mail system; initiating, by said parent process, a plurality of processes to process mail objects in said electronic mail system; processing, by said plurality of processes, said mail objects; monitoring, using a monitoring process, the level of activity in said electronic mail system; terminating one or more of said plurality of processes when said level of activity can be accommodated using fewer of said plurality of processes; initiating one or more additional processes when said level of activity cannot be accommodated by said plurality of processes; and wherein said processing step further comprises the steps of; assigning said mail objects to one or more queues in said electronic mail system; selecting, by one of said plurality of processes, a queue entry to be processed; identifying, by another of said plurality of processes, said queue entry as processed; selecting, by said another of said plurality of processes, another queue entry to process.
-
-
7. A method of dynamically scaling processing capabilities of an electronic mail system comprising the steps of:
-
initiating a parent process in said electronic mail system; initiating, by said parent process, a plurality of processes to process mail objects in said electronic mail system; processing, by said plurality of processes, said mail objects; monitoring, using a monitoring process, the level of activity in said electronic mail system; terminating one or more of said plurality of processes when said level of activity can be accommodated using fewer of said plurality of processes; initiating one or more additional processes when said level of activity cannot be accommodated by said plurality of processes; and wherein said step of initiating said plurality of processes further comprises the steps of; defining a system configuration for said electronic mail system; examining, by said parent process, said system configuration; and initiating said plurality of processes based on said system configuration. - View Dependent Claims (8, 9)
-
Specification