Gravic Labs - Patent List

Noteworthy Published Patents - Abstracts listed below

7,194,488 - Split processing system for providing increased system availability

"A split processing system is provided that has a plurality of nodes and a communication network. Each node includes one or more processors, or a processor subsystem including at least one processor and an operating system. Each node has a specific number of failure modes which is less than the number of failure modes in an unsplit system wherein all of the processors are located at a single node. The communication network allows the one or more processors at each of the nodes to interoperate with each other."

7,177,866 - Asynchronous coordinated commit replication and dual write with replication transmission and locking of target database on updates only

"Tokens are used to prepare a target database for replication from a source database and to confirm the preparation in an asynchronous coordinated commit replication process. During a dual write replication process, transmission of the replicated data and locking of data records in the target database occurs only on updates."

7,113,938 - Method of increasing system availability by splitting a system

"A method is provided for splitting a system comprising a processor subsystem including a plural number (n.sub.p) of processors, and an instance of a database. A number (n.sub.n) of nodes is selected that the system is to be split into. Each node may be provided with a processor subsystem including at least one processor. At least some of the nodes further include an instance of at least a portion of the database. A network is provided for communications among the nodes. At least some of the nodes that contain an instance of at least a portion of the database are automatically synchronized so that contents of the database that exist in plural nodes remain synchronized in at least some of the plural nodes whenever contents of the database at one of the nodes is changed. Systems with multiple processors, but without databases, may also be split in the same manner."

7,103,586 - Collision avoidance in database replication systems

"Database replication systems replicate blocks of transaction steps or operations with synchronous replication, and perform dual writes with queuing and blocking of transactions. Tokens are used to prepare a target database for replication from a source database and to confirm the preparation. Database replication systems switch between a synchronous replication mode and an asynchronous replication mode, and then back to a synchronous replication mode, based on detection of selected events."

7,003,531 & 6,745,209- Synchronization of plural databases in a database replication system

"In a database synchronization process, a block of data is read from a source database at the first node. A marker is assigned to the block of data, and the marker is then written to an audit trail at the first node. The marker is sent from the audit trail to a second node having a target database. The block of data is sent from the first node to the second node without passing the block of data through the audit trail. At the second node, the block of data is stored in the target database upon receipt at the second node of the block of data and the marker assigned to the block of data. This process is repeated for additional blocks of data in the source database, wherein a marker is assigned to each subsequent block of data. In this manner, some or all of the source database may be replicated to the target database without having to store or pass any data in the source database in or through the audit trail at the first node."

6,662,196 - Collision avoidance in bidirectional database replication

"A bidirectional database replication system includes a plurality of nodes. Each transaction at an originating node is paused prior to a commit operation. Ready to commit tokens are sent to the other nodes in the system to determine if the other nodes are prepared for the commit operation for the paused transaction. If all of the ready to commit tokens properly return to the originating node from the other nodes, thereby indicating that the other nodes are prepared for the commit operation, then the transaction is commited. For lengthy transactions, ready to sync tokens are assigned at one or more predesignated intermediate points in the transaction, and propagate throughout the system in a similar manner. The transaction continues to execute as long as all ready to sync tokens properly return to the originating node. The pause-before-commit and sync point schemes are used to avoid collisions at any of the nodes."

6,122,630 - Bidirectional database replication scheme for controlling ping-ponging

"Transaction ping-pong is selectively prevented in a bidirectional database replication system. The system has a plurality of nodes connected via communication media in a topology. Each node includes a database and a transaction transmitter or collector which sends transactions posted to the database to a database at one or more other nodes for replication in the databases of the one or more other nodes. All transactions to be posted to databases in remote nodes that were sent by a local node are detected, and the database at the local node is inhibited from posting selective transactions which were detected as being originally sent by the local node."

Noteworthy Published Applications - Abstracts listed below

20060200533 - High availability designated winner data replication

"Collisions are resolved in a database replication system. The system includes a plurality of nodes arranged in either a master-slave or network configuration. Each node includes a database, wherein changes made at the databases of each node are replicated to the databases at one or more of the other nodes. When a collision is detected during data replication between multiple nodes, the collision is resolved by a rule that gives precedence to certain nodes over other nodes."

20060200507 - Optimized statement caching for transaction replay

"Transactions are replicated from a source database to a target database in a data replication system. The system includes a first memory location that persistently stores statement text associated with transactions to be replicated. Transactions to be replicated are cached by separating the transactions into statement text and statement data. A determination is made as to whether the statement text has been previously stored in the first memory location. If not, then the statement text is persistently stored to the first memory location. A similar scheme is provided for replicating I/O operations."

20060200501 - Control of a data replication engine using attributes associated with a transaction

"A data replication engine is controlled in a system that replicates data associated with a plurality of transactions from a source database to a target database. The system includes a change queue that contains transaction data associated with the transactions. The system maintains one or more attributes outside of the change queue which are associated with transactions. One or more attributes outside of the change queue are identified which are associated with a transaction. The one or more of the identified attributes are then used to control the replication engine."

20040245339 - Multi-level optical mark reading

"One or more response bubbles are used on a scannable form to be read by a scanning system. An unambiguous symbology of marks is defined to fill into each response bubble, thereby allowing at least one of a plurality of different responses to be entered into each response bubble. One or more response bubbles are provided on the scannable form to be filled in according to the defined symbology of unambiguous marks. A filled in form is scanned with the scanning system and an image of the scanned form is processed by identifying pixels associated with each response bubble, interpreting the pixels associated with each response bubble to define a raw score according to the defined unambiguous symbology of marks used to mark each response bubble, translating the raw score for each response bubble into one of the plurality of different responses, and outputting the response for each response bubble."

20030172106 - Method of increasing system availability by assigning process pairs to processor pairs

Processors are assigned in a multiprocessor environment to a plurality of processes that are executed in the multiprocessor environment. Each process has a process pair defined by a primary process that executes on a first processor and a backup process that executes on a second processor. The processors are in communication with one another via a communication network. The plurality of processors are organized into predefined processor pairs. Every process pair is assigned to one of the processor pairs, wherein no process pairs span across different processor pairs.

20050021567 - Method for ensuring referential integrity in multi-threaded replication engines

"During replication of transaction data from a source database to a target database via a change queue associated with the source database, one or more multiple paths are provided between the change queue and the target database. The one or more multiple paths cause at least some of the transaction data to become unserialized. At least some of the unserialized data is reserialized prior to or upon applying the originally unserialized transaction data to the target database. If the current transaction load is close or equal to the maximum transaction load capacity of a path between the change queue and the target database, another path is provided. If the maximum transaction threshold limit of an applier associated with the target database has been reached, open transactions may be prematurely committed."