×

System and method of distributing replication commands

  • US 7,707,181 B2
  • Filed: 02/19/2003
  • Issued: 04/27/2010
  • Est. Priority Date: 02/19/2003
  • Status: Expired due to Fees
First Claim
Patent Images

1. A system for distributing replication commands from a distributor to a subscriber, the system comprising:

  • a memory;

    a distributor for execution on a first computer in a network including a plurality of computers, the distributor comprising;

    a command queue that receives transactional replication commands from a publisher and stores the transactional replication commands in the memory, wherein each replication command corresponds to a change in data in a data row and is associated with a respective hash of a primary key of the data row to which the replication command is associated;

    a plurality of command buckets, wherein each of the plurality of command buckets is associated with a respective connection to the command queue and only one data row, and wherein at least a portion of a communication and logging overhead associated with a two phase commit operation is avoided by including for each of the plurality of command buckets an executor that executes a coordinated commit operation upon the plurality of command buckets at substantially the same time;

    a dispatcher, wherein the dispatcher;

    sorts the transactional replication commands stored in the command queue as a function of each hash associated with a transactional replication command, and by applying a logical sequence number of commit record in order to identify which commands amongst the transactional replication commands of the command queue need to be re-applied as a result of an unsuccessful commit operation;

    transmits each transactional replication command in the command queue to an associated command bucket as a function of the hash associated with the transactional replication command using the respective connection for the associated command bucket such that each command bucket stores a respective set of replication commands having a same hash value;

    marks each of the command buckets as ready to be committed;

    stops sending new transactional replication commands to the marked command buckets; and

    waits to receive from each executor, an event that signals a successful completion of the coordinated commit operation, thereby detecting a mixture of successful and unsuccessful commit operations amongst the plurality of command buckets.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×