Gravic Labs - Patent List

Noteworthy Awarded Patents - Abstracts listed below

8,086,661 - Method for resolving collisions in a database replication system by relaxing a constraint that contributes to collisions, or removing the cause of the constraint that contributes to the collisions

"A method is provided for resolving collisions in a database replication system. The system includes a source database and a target database, wherein changes made at the source database are replicated to the target database. Each database has one or more tables, and at least one of the tables has multiple constraints. A collision is detected during data replication as a result of one of the tables having multiple constraints. One constraint that contributes to the collision is identified. The constraint that contributes to the collision is relaxed, or the cause of the constraint that contributes to the collision is removed. This process is repeated for all additional constraints that contribute to the collision. In this manner, the collision is resolved."

7,962,458 - Method for replicating explicit locks in a data replication engine

"An automated method is provided of replicating a locking protocol in a database environment for performing I/O operations wherein the database environment includes a plurality of databases. A locking protocol is performed that includes one or more explicit locking operations on objects in a first database of the database environment. The one or more explicit locking operations are replicated in one or more other databases in the database environment. At least some of the explicit locking operations are performed asynchronously with respect to the explicit locking operations performed in the first database. I/O operations are performed at the first database of the database environment that are associated with the one or more explicit locking operations implemented in the first database."

7,949,640 - Referential integrity, consistency, and completeness loading of databases

"A method is provided for loading data from a source database to a target database that includes at least one table. Prior to loading the data from the source database into the target database, at least one referential integrity constraint and/or at least one consistency requirement regarding the data is automatically identified. A subset of the data that satisfies the at least one referential integrity constraint and/or consistency requirement is then automatically identified. The identified subset of the data is then loaded into the target database as a unit of work."

7,882,062 - Synchronization of plural databases in a database replication system when replication is slower than the synchronization process

"A target database is synchronized with a source database and the source database is replicated to the target database in a database replication system. The source database is on-line during the synchronization. The source database is located at a first node of the system, and the target database is located at a second node of the system. Changes in the source database are replicated to the target database by sending a replication stream from the first node to the second node. Successive blocks of data are sent from the first node to the target database to synchronize or resynchronize the target database with the source database. Each block of data includes one or more rows of data. The successively sent blocks of data define a loading stream. The successively sent blocks of data are posted into the target database when the replication stream is occurring slower than the loading stream. Synchronization or resynchronization thereby occurs simultaneously with replication."

7,864,986 - Optical mark reading that uses a disregard state as part of an unambiguous symbology of marks to fill into response

"Response bubbles on a scannable form are provided that allow a user to mark the bubbles in a manner that signifies that the user wishes to have a response disregarded."

7,853,561 - Synchronization of plural databases in a database replication system with simultaneous synchronization and replication

"A target database is synchronized with a source database and the source database is replicated to the target database in a database replication system. The source database is on-line during the synchronization. The source database is located at a first node of the system, and the target database is located at a second node of the system. Changes in the source database are replicated to the target database by sending a replication stream from the first node to the second node. Successive blocks of data are sent from the first node to the target database to synchronize or resynchronize the target database with the source database. Each block of data includes one or more rows of data. The successively sent blocks of data are inserted into the replication stream at a point when the respective blocks of data are current or consistent in the source database, and the replication stream is posted to the target database. Synchronization or resynchronization thereby occurs simultaneously with replication."

7,801,851 - 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."

7,739,237 - Data input routing after failure

"Data associated with a plurality of transactions in a data replication system including first and second nodes connected via communication media in a topology is replicated. Each node includes a database and a replication engine which performs data replication functions between the first and second nodes. Each transaction is one or more transaction steps or transaction operations. One or more initial transaction steps or operations of a transaction are sent from an input device to a first node. The one or more initial transaction steps or operations of the transaction are sent to the second node via the replication engine at the first node. If a communication failure is detected between the input device and the first node, the input device sends the remaining transaction steps or operations to the second node. The remaining transaction steps or operations received at the second node are appended to the one or more initial transaction steps or operations received from the replication engine of the first node, thereby completing the transaction at the second node."

7,613,740 - 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."

7,603,389 - 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."

7,555,145 - Multi-level optical mark reading that uses an unambiguous symbology of marks to fill into response bubbles

"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 non-empty intended responses having different output values 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 intended non-empty responses, and outputting the value of the non-empty response for each response bubble. Different output values have different meanings."

7,539,898 - Method of increasing system availability by assigning process pairs to processor pairs

"A method is provided of assigning processors 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. There are a plurality of process pairs. The processors are in communication with one another via a communication network. The processors are associated with a plurality of predefined processor pairs. First, a plurality of process pairs are provided that are initially assigned to a respective plurality of pairs of processors, wherein at least one of the processors in the plurality of pairs of processors is initially assigned to more than one processor pair. Each processor is then assigned to only one of the predefined processor pairs so that no processor belongs to more than one processor pair. Then, each of the plurality of process pairs are assigned to a respective one of the predefined processor pairs. This assigning process results in a configuration that reduces the number of failure modes from the number of failure modes that exists in the initial configuration.“

7,523,110 - 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.“

7,321,904 - Synchronization of a target database with a source database during database

"A target database is synchronized with a source database in a database replication system. Key ranges of blocks of data to be replicated are used in the replication process. Also, synchronization occurs simultaneously with replication.“

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,533,636 - CD spacer

A spacer for building a toy yo-yo includes a central axis for receiving a tether string for wrapping around the central axis and two outer sidewalls, each outer sidewall having an attachment hub disposed on the outer sidewall for receiving a compact disc. The spacer in combination with two compact discs may form a toy yo-yo. The spacer may also be included in a kit for building a toy yo-yo where the user supplies the compact discs separately.

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."

Published Patent ApplicationsCheck with Gravic for current information.