Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A computer-implemented method for distributing a plurality of tasks from an external application to a plurality of application server instances based on consensus for load balancing among the plurality of application server instances with information from a database management system (DBMS), the plurality of application server instances coupled to the DBMS having a membership table and a task partition map, the method comprising: identifying, by each of the plurality of application server instances in a membership group, a current task partition ownership based on the task partition map for a predetermined time duration by communicating with the DBMS wherein the membership table stores information that identifies each of the plurality of application server instances which participates in the membership group during the predetermined time duration; rebalancing, by each of the plurality of application server instances in the membership group, the plurality of tasks owned by the plurality of application server instances based on the identifying; generating, when the predetermined time duration expires, a new membership group and a new task partition ownership based on the current task partition ownership comprising at least one task from a set of tasks in the task partition map; and recording the new membership group and the new task partition ownership in the membership table and the task partition map, respectively, wherein the task partition map maps the current task partition ownership and the new task partition ownership to the plurality of application server instances.
A system distributes tasks from an external application to multiple application server instances in a database system. Each server instance identifies its currently assigned tasks from a shared task partition map within a database management system (DBMS). This task assignment is valid for a specific time. The system maintains a membership table in the DBMS, tracking which server instances are participating. After the time window, each instance rebalances tasks among instances, generating a new group of participating instances and a new task assignment based on existing assignments. These updates are recorded in the membership table and task partition map, ensuring all instances know the current task ownership. Load balancing happens through consensus.
2. The method of claim 1 , wherein each membership participation by the plurality of application server instances is identified by a random number in the membership table and the task partition map.
Each time a server instance participates in a membership group, the system assigns a unique random number to that participation, storing it in the membership table and task partition map. This random number serves as an identifier for that specific instance's involvement in that group, allowing for tracking and management of individual instance contributions to the overall task distribution.
3. The method of claim 1 , wherein the current task partition ownership includes task partitions owned by an application server instance, the task partitions allocated to other application server instances in the membership group, and the task partitions that are unallocated.
The current task assignment tracked by each application server instance includes three categories: task partitions owned by that specific instance, task partitions allocated to other application server instances currently in the membership group, and task partitions that are currently unallocated and available for assignment. This comprehensive view allows each instance to understand the overall task distribution state.
4. The method of claim 1 , wherein the generation of the new membership group and the new task partition ownership includes: determining an average number of task partitions owned by each member in the membership group based on the current task partition ownership and the number of the application server instances in the membership group; releasing a task partition owned by an application server instance if the number of task partitions owned by the application server instance is more than the average; and taking a task partition from those currently unallocated if the number of task partitions owned by the application server instance is less than the average.
The system creates a new membership group and task partition assignment by first calculating the average number of task partitions each instance *should* own. If an instance owns more than the average, it releases partitions. If an instance owns less than the average, it takes unallocated partitions. This process aims to achieve a balanced workload across all participating server instances in the system.
5. The method of claim 4 , wherein the releasing the task partition owned by the application server instance comprises: selecting a random task partition currently owned by the application server instance; reporting to a host application server instance that the selected random task partition is being offered to an application server instance in the membership group; and waiting for an acknowledgment from the host application server instance, wherein the host application server instance is the application server instance which uses reported information in its interaction with the DBMS.
Releasing a task partition involves the instance first selecting a random partition it currently owns. It then notifies a "host" instance that it is offering the partition to the membership group. The host instance, which manages interactions with the DBMS, must acknowledge the release before it is finalized. The requesting instance waits for this acknowledgement.
6. The method of claim 5 , further comprising marking the selected random task partition as being returned to the membership group in a local copy of the task partition map.
After offering a task partition to the membership group (as described in the previous description about releasing partitions), the application server instance updates its local copy of the task partition map, marking the selected random task partition as returned to the pool of unallocated tasks, even before receiving final acknowledgement from the host application server.
7. The method of claim 4 , wherein the taking the task partition owned by the application server instance comprises: selecting a random task partition from those currently unallocated task partitions; and marking it as being taken in a local copy of the task partition map.
When an application server needs to take a task partition because it owns less than the average number (as described in the task balancing process), it selects a random task partition from the currently unallocated task partitions and immediately marks it as being taken in its local copy of the task partition map.
8. The method of claim 1 , wherein the predetermined time duration is a time window that begins at the present time minus a multiple of a lease interval and ends at the present time plus the lease interval, and wherein the lease interval is a predetermined period of time during which participation of an application server instance in the membership group remains valid.
The predetermined time window during which a task partition assignment is valid is calculated relative to the current time. It starts at the present time minus a multiple of a "lease interval" and ends at the present time plus the lease interval. The lease interval is a fixed period representing how long a server instance's participation in the membership group is valid before needing to be renewed.
9. The method of claim 8 , wherein each application server instance has a lease time-stamp, and the new membership group includes those application server instances having the lease time-stamp within the time window.
Each application server instance has a "lease time-stamp" indicating when its participation in the membership group expires. The system forms the new membership group by including only those instances whose lease time-stamp falls within the time window, ensuring that only active and recently participating instances are part of the new group.
10. The method of claim 9 , further comprising resetting the lease time-stamp of the application server instances in the new membership group to the present time; wherein the resetting is for rejoining of the application server instances to the new membership group when the lease time-stamp of the application server instances expires.
After forming the new membership group, the system resets the lease time-stamp of all participating application server instances to the current time. This action essentially renews their membership, allowing them to continue participating in the group for another lease interval. This resetting mechanism is crucial for preventing instances from being prematurely removed from the group due to expired leases.
11. The method of claim 1 , wherein each application server instance has a birth time-stamp and a lease time-stamp at which the participation of the membership group expires, the method further comprises removing from the new membership group any application server instance having expired lease time-stamp.
Each application server instance has both a "birth time-stamp" (when it joined the system) and a "lease time-stamp" (indicating its current participation validity). Before adding an instance to a new membership group, the system verifies that its lease time-stamp is still valid. Any instance with an expired lease time-stamp is excluded from the new membership group, ensuring only active instances participate.
12. The method of claim 1 , wherein the plurality of application server instances create and update data in the DBMS using SQL primitives.
The application server instances interact with the database management system (DBMS) to create, read, update, and delete data using standard SQL commands (SQL primitives), allowing them to manage the membership table and task partition map.
13. A system having a processor and a non-transitory computer readable medium storing instructions executed by the processor for distributing tasks from an external application to a plurality of application server instances based on consensus for load balancing among the plurality of application server instances with information from a database management system (DBMS), the system comprising: the database management system (DBMS); the plurality of application server instances coupled to the DBMS, wherein the DBMS having a membership table and a task partition map; means for identifying, in each of the plurality of application server instances in a membership group, a current task partition ownership based on the task partition map for a predetermined time duration by communicating with the DBMS; wherein the membership table stores information that identifies each of the plurality of application server instances which participates in the membership group during the predetermined time duration; means for rebalancing the plurality of tasks owned by the plurality of applicant server instances based on the identifying; means for generating, when the predetermined time duration expires, a new membership group and a new task partition ownership based on the current task partition ownership comprising at least one task from the set of tasks in the task partition map; and means for recording the new membership group and the new task partition ownership in the membership table and the task partition map, respectively, wherein the task partition map maps the current task partition ownership and the new task partition ownership to the plurality of application server instances.
A system comprising a processor and memory, load balances tasks from an external application to multiple application server instances. A DBMS stores a membership table and a task partition map. The system identifies each server instance's task ownership from the shared task partition map for a specific time. The membership table tracks participating instances. The system rebalances tasks among instances, generating a new group of participants and new task assignments. These updates are recorded in the membership table and task partition map.
14. The system of claim 13 , wherein each participation by an application server instance in the membership group is identified by a random number in the membership table and the task partition map.
Each time an application server instance participates in a membership group, that participation is identified by a random number stored in the membership table and the task partition map, uniquely marking that instance's involvement.
15. The system of claim 13 , wherein the current partition ownership includes task partitions owned by the application server instance, the task partitions allocated to other application server instances in the membership group, and the task partitions that are unallocated.
The task ownership tracked by each application server includes partitions it owns, partitions allocated to others, and unallocated partitions, providing a complete view of the system's workload distribution.
16. The system of claim 13 , wherein the new membership group and the new task partition ownership are further based on an average task partition ownership by the plurality of application server instances in the membership group.
The new membership group and task partition assignments are determined based on calculating an average task partition ownership among the application server instances in the group, aiming for equal load distribution.
17. The system of claim 16 , wherein a random task partition owned by the application server instance is released to an application server instance in the same membership group if the application server instance owns more task partitions than the average, the released task partition is marked in a local copy of the task partition map.
If an application server owns more tasks than the average, it releases a random task to another instance in the group, marking this release in its local copy of the task partition map to keep track of its actions.
18. The system of claim 16 , wherein the random task partition from those unallocated is taken by the application server instance if the application server instance owns less partitions than the average, the taken partition is marked in a local copy of the partition map.
If an application server owns fewer tasks than the average, it takes a random, unallocated task, marking this action in its local task partition map to maintain an accurate local state.
19. The system of claim 13 , wherein the predetermined time duration is a time window that begins at the present time minus a multiple of a lease interval and ends at the present time plus the lease interval, and wherein the lease interval is a predetermined period of time during which participation of an application server instance in the membership group remains valid.
This invention relates to distributed computing systems, specifically managing application server instances in a membership group. The problem addressed is ensuring valid participation of server instances in a group over time, particularly in environments where leases or time-based validity periods are used to manage membership. The system monitors server instances in a membership group, where each instance must periodically renew its participation to remain valid. A key feature is the use of a time window for determining validity, which begins at a time before the present (specifically, a multiple of a lease interval prior to the current time) and extends into the future (up to the lease interval ahead of the present time). The lease interval defines the period during which an instance's participation remains valid without renewal. The time window ensures that instances can renew their membership within a flexible but bounded period, preventing both premature invalidation and excessive delays in renewal. This approach helps maintain system stability by allowing controlled overlap in validity periods while enforcing timely updates. The system dynamically adjusts to changes in server availability and network conditions, ensuring reliable group membership management.
20. The system of claim 19 , wherein each of the plurality of application server instances has a lease time-stamp, and the new membership group includes those application server instances having the lease time-stamp within the time window.
Each application server instance has a lease time-stamp, and the new membership group only includes instances with lease time-stamps falling within the current time window.
21. The system of claim 20 , wherein each of the plurality of application server instances resets the lease time-stamp of the application server instances in the new membership group to the present time for rejoining of the application server instances to the new membership group when the lease time-stamp of the application server instances expires.
After forming the new group, the system resets each instance's lease time-stamp to the present time, enabling instances to seamlessly rejoin after their lease would have expired.
22. The system of claim 13 , wherein each of the plurality of application server instances has a birth time-stamp and the application server instance having a birth time-stamp older than a predetermined time removes from the new membership group.
Each application server has a birth time-stamp and the application server removes from the new membership group any application server instance having expired lease time-stamp, thereby removing old or inactive instances.
23. The system of claim 13 , wherein the plurality of application server instances create and update data in the DBMS using SQL primitives.
The application server instances interact with the DBMS to create and update data using SQL commands.
24. A computer program product having a non-transitory computer readable medium storing program codes executed by a processor for distributing a plurality of tasks from an external application to a plurality of application server instances based on consensus for load balancing among the plurality of application server instances with information from a database management system (DBMS), the plurality of the application server instances coupled to the DBMS having a membership table and a task partition map, wherein the program codes perform the steps of: identifying, by each of the plurality of application server instances in a membership group, a current task partition ownership based on the task partition map for a predetermined time duration by communicating with the DBMS; wherein the membership table stores information that identifies each of the plurality of application server instances which participates in the membership group during the predetermined time duration; rebalancing, by each of the plurality of application server instances in the membership group, the plurality of tasks owned by the plurality of applicant server instances based on the identifying; generating, when the predetermined time duration expires, a new membership group and a new task partition ownership based on the current task partition ownership comprising at least one task from a set of tasks in the task partition map; and recording, the new membership group and the new task partition ownership in the membership table and the task partition map, respectively, wherein the task partition map maps the task partition ownership and the new task partition ownership to the plurality of application server instances.
A computer program load balances tasks from an external application to multiple application server instances. The program identifies each server's task ownership from a shared map in the DBMS for a specific time duration. It uses a membership table in the DBMS to track participating instances. When time expires, the program rebalances tasks, generates a new group, and creates new assignments based on the original assignments. The program then records the new membership and partition assignments in the shared tables, mapping task ownership to the application servers.
Unknown
December 9, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.