IP Library Granted Patent US 9,317,372
Granted Patent B1
US 9,317,372 · App. 14/216,304 · Granted Apr 19, 2016

Dynamic membership management in a distributed system

Inventors: Benjamin A. Rousseau (Somerville, MA); Carl Hu (Arlington, MA); Frederick A. Tompkins, Jr. (Londonderry, NH)
Assignee: Progress Software Corporation
G06F11/1425
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,317,372
App. No.
14/216,304
Granted
Apr 19, 2016
Kind
B1
Abstract

Transactional database replication techniques are disclosed that do not require altering of the database management system implementation. A replicator module includes a dynamic membership manager, which is configured to manage the persistent membership of a coordination group. The persistent membership can be, for example, a durable set of sites that can replicate changes amongst themselves. Changes from sites not in the persistent membership are discarded. The set of recovered members is a subset of the persistent membership. The persistent membership changes incrementally by either removing or adding members. Failed members may still be part of the persistent membership. The dynamic membership manager module manages the modification of the persistent membership, initialization of replicas, and propagation of membership information.

Claims (49)

1. A method comprising:

determining, using one or more processors, individual weights associated with individual persistent members of a coordination group in a previous quorum;

determining, using one or more processors, that a current quorum is attained based on an algorithm using the individual weights associated with the individual persistent members of the coordination group in the previous quorum;

determining, using one or more processors, whether a first site that is a persistent member of the coordination group has participated in at least one quorum prior to the current quorum; and

responsive to determining that the first site has participated in at least one quorum prior to the current quorum, a registrar of the first site modifying the persistent membership of the coordination group, the coordination group including a number of sites in a distributed environment and including the first site.

2. The method of claim 1 comprising:

receiving, by the registrar of the first site, a membership request from an entrant seeking to become a member of the persistent membership;

wherein modifying the persistent membership of the coordination group includes:

modifying, by the registrar of the first site, the persistent membership for the entrant;

responsive to the registrar receiving the membership request, disconnecting the registrar of the first site from the coordination group and inhibiting, by a distributed lock manager, updates to a first database while cotemporaneous to the inhibition of the updates the registrar of the first site initializes an entrant database for the entrant; and

reconnecting, by the registrar of the first site, to the coordination group after initialization of the entrant database.

3. The method of claim 1 comprising:

acquiring, by the registrar of the first site, a distributed lock on the coordination group and a name for the entrant;

examining, by the registrar of the first site upon receiving the distributed lock, the persistent membership to ensure that no other site utilizes the name for the entrant; and

refusing, by the registrar of the first site, to proceed with modifying the persistent membership of the coordination group to initialize the entrant database in response to the name for the entrant being already in use.

4. The method of claim 1 , wherein the algorithm is a dynamic linear voting algorithm with weightings in order to determine quorum.

5. The method of claim 1 , wherein quorum is attained when more than half the sum of the weightings in the previous quorum are present.

6. The method of claim 1 , wherein the weight associated with the persistent member is fixed at the time that persistent member joins the persistent membership.

7. The method of claim 1 , wherein a weight associated with a persistent member in the previous quorum is omitted when determining whether a quorum is attained.

8. The method of claim 1 , wherein a weight associated with a persistent member in the previous quorum is omitted when determining whether a quorum is attained, when that persistent member is evicted.

9. The method of claim 1 , wherein a weight associated with a persistent member in the previous quorum is omitted when determining whether a quorum is attained when that persistent member has left voluntarily.

10. A non-transitory computer-readable medium encoded with instructions that, when executed by one or more processors, causes the one or more processors to carry out a process comprising:

determining, using one or more processors, individual weights associated with individual persistent members of a coordination group in a previous quorum;

determining that a current quorum is attained based on an algorithm using the individual weights associated with the individual persistent members of the coordination group in the previous quorum;

determining whether a first site that is a persistent member of the coordination group has participated in at least one quorum prior to the current quorum; and

responsive to determining that the first site has participated in at least one quorum prior to the current quorum, a registrar of the first site modifying the persistent membership of the coordination group, the coordination group including a number of sites in a distributed environment and including the first site.

11. The computer-readable medium of claim 10 , the process comprising:

receiving, by the registrar of the first site, a membership request from an entrant seeking to become a member of the persistent membership;

wherein modifying the persistent membership of the coordination group includes:

modifying, by the registrar of the first site, the persistent membership for the entrant;

responsive to the registrar receiving the membership request, disconnecting the registrar of the first site from the coordination group and inhibiting, by a distributed lock manager, updates to a first database while cotemporaneous to the inhibition of the updates the registrar of the first site initializes an entrant database for the entrant; and

reconnecting, by the registrar of the first site, to the coordination group after initialization of the entrant database.

12. The computer-readable medium of claim 10 , the process comprising:

acquiring, by the registrar of the first site, a distributed lock on the coordination group and a name for the entrant;

examining, by the registrar of the first site upon receiving the distributed lock, the persistent membership to ensure that no other site utilizes the name for the entrant; and

refusing, by the registrar of the first site, to proceed with modifying the persistent membership of the coordination group to initialize the entrant database in response to the name for the entrant being already in use.

13. The computer-readable medium of claim 10 , wherein the algorithm is a dynamic linear voting algorithm with weightings in order to determine quorum.

14. The computer-readable medium of claim 10 , wherein quorum is attained when more than half the sum of the weightings in the previous quorum are present.

15. The computer-readable medium of claim 10 , wherein the weight associated with the persistent member is fixed at the time that persistent member joins the persistent membership.

16. The computer-readable medium of claim 10 , wherein a weight associated with a persistent member in the previous quorum is omitted when determining whether a quorum is attained.

17. The computer-readable medium of claim 10 , wherein a weight associated with a persistent member in the previous quorum is omitted when determining whether a quorum is attained, when that persistent member is evicted.

18. The computer-readable medium of claim 10 , wherein a weight associated with a persistent member in the previous quorum is omitted when determining whether a quorum is attained when that persistent member has left voluntarily.

19. A system comprising:

a processor; and

a memory storing instructions that, when executed, cause the system to:

determine individual weights associated with individual persistent members of a coordination group in a previous quorum;

determine that a current quorum is attained based on an algorithm using the individual weights associated with the individual persistent members of the coordination group in the previous quorum;

determine whether a first site that is a persistent member of the coordination group has participated in at least one quorum prior to the current quorum; and

responsive to determining that the first site has participated in at least one quorum prior to the current quorum, a registrar of the first site modifying the persistent membership of the coordination group, the coordination group including a number of sites in a distributed environment and including the first site.

Assignments (7)
SECURITY INTEREST Recorded Jul 21, 2025
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 072094/0790 →
SECURITY INTEREST Recorded Mar 7, 2024
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 066762/0833 →
SECURITY INTEREST Recorded Jan 25, 2022
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058840/0099 →
SECURITY INTEREST Recorded Apr 30, 2019
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., ADMINISTRATIVE AGENT
Reel/Frame 049031/0684 →
SECURITY INTEREST Recorded Dec 18, 2017
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 044889/0325 →
SECURITY INTEREST Recorded Dec 2, 2014
From: PROGRESS SOFTWARE CORPORATION
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 034504/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 10, 2014
From: ROUSSEAU, BENJAMIN A.; HU, CARL; TOMPKINS, FREDERICK A., JR
To: PROGRESS SOFTWARE CORPORATION
Reel/Frame 033289/0656 →
Continuity (5)
Continuation 13784479 · Mar 4, 2013
Continuation 13432934 · Mar 28, 2012
Continuation 12728574 · Mar 22, 2010
Continuation 11404155 · Apr 13, 2006
Provisional Application 60671373 · Apr 13, 2005