×

Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes

  • US 5,423,037 A
  • Filed: 11/08/1994
  • Issued: 06/06/1995
  • Est. Priority Date: 03/17/1992
  • Status: Expired due to Term
First Claim
Patent Images

1. A multiprocessor computer system, comprising:

  • N data processors, wherein N is a positive integer greater than three, each data processor having it own, separate, central processing unit, memory for storing database tables and other data structures, and communication channels for communication with other ones of said N data processors;

    each of said N data processors independently executing a distinct instruction data stream;

    at least a plurality of said N data processors including a communications processor for receiving transaction requests and for transmitting responses thereto;

    said N data processors being divided into first and second groups, each having at least two data processors;

    each data processor including;

    fragmenting means for fragmenting each of said database tables into N fragments, and for storing a primary replica and a standby replica of each fragment, respectively, in different ones of said N data processors, wherein said different ones of said N data processors are in different ones of said first and second groups of data processors such that a complete copy of each of said database tables is located within each said group of data processors and such that simultaneous failure of all data processors in either of said groups wold leave a complete copy of each of said database tables in the other of said groups of data processors;

    said fragmenting means adapted for allocating each record in any one of said database tables to a particular one of its N fragments in accordance with predefined criteria;

    a data dictionary that stores information indicating where each said primary replica and standby replica of each fragment of said database tables is stored among said N data processors;

    said fragmenting means further adapted for changing the information stored in said data dictionary upon failure of any one of said N data processors to indicate that the primary and standby replicas stored on the failed data processor are not available, for regenerating said primary and standby replicas on the failed data processor, and for storing portions of said regenerated replicas over non-failed ones, if any, of the data processors in the same group of data processors as the failed data processor; and

    a transaction manager that responds to database queries by determining which fragment of a database table is being accessed by each database query and then forwarding said each database query to the data processor on which the primary replica of that database table fragment is stored.

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