# US 8,571,882 B1 · Peer to peer database

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,571,882 B1
- Document ID: US8571882B1
- Status: Granted
- Kind: B1
- Application number: 11/824,817
- Filed: 2007-07-03
- Granted: 2013-10-29
- Earliest claimed: 2006-07-05
- Applicants: Ronald J. Teitelbaum
- Inventors: Ronald J. Teitelbaum
- Web page: https://patentgrep.com/patent/US8571882B1

## CPC

- G06F 12/0866: for peripheral storage systems, e.g. disk cache
- G06F 16/211: {Schema design and management}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 2212/465: Structured object, e.g. database record
- H04L 67/1076: {Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A system for providing database functionality on a peer-to-peer network is described that provides a highly scalable, fault tolerant, highly available, secure distributed transactions and reporting environment for application development and deployment.

## Claims

### Claim 1

A method of executing instructions stored on a non-transitory computer-readable storage medium, using at least one processor, to thereby execute relationship mapping for data of a peer-to-peer database, the peer-to-peer database including a plurality of data records which are uniquely identified for querying thereof within a namespace of the peer-to-peer network and which each are related to data objects which form a corresponding data record of the plurality of data records, comprising:
determining, using the at least one processor, a data object of the data objects to be persisted on the peer-to-peer database as part of a data record of the plurality of data records, the data object having a data network address;
associating, using the at least one processor, a redirection object with the data object, the redirection object including a network address and the data network address;
persisting, using the at least one processor, the redirection object on the peer to peer database; and
maintaining a connection between the data object at the data network address and the redirection object at the network address, wherein the redirection object provides a primary reference from the data object to its associated data record of the plurality of data records of the peer-to-peer database, and connections of the associated data record are independent of the connection between the data object and the redirection object.

### Claim 2

A method of executing instructions stored on a non-transitory computer-readable storage medium, using at least one processor, to thereby execute persisting data on a peer-to-peer database, the peer-to-peer database including a plurality of data records which are uniquely identified for querying thereof within a namespace of the peer-to-peer network and which each are related to data objects which form a corresponding data record of the plurality of data records, the method comprising:
determining, using the at least one processor, at least one data object associated with a data transaction, each data object being associated with a data network address on the peer-to-peer database;
determining, using the at least one processor, at least one storage node for each data object;
determining, using the at least one processor, a consistency of the at least one data object on a respective at least one storage node; and
determining, using the at least one processor, whether to write the at least one data object to the respective at least one storage node, based on the determining of the consistency.

### Claim 3

A method of executing instructions stored on a non-transitory computer-readable storage medium, using at least one processor, to thereby execute persisting composite elements on a peer-to-peer database, the peer-to-peer database including a plurality of data records which are uniquely identified for querying thereof within a namespace of the peer-to-peer network and which each are related to data objects which form a corresponding data record of the plurality of data records, the method comprising:
determining, using the at least one processor, a composite definition for at least one class on the peer-to-peer database;
determining, using the at least one processor, a data transaction including data objects of the composite definition;
assigning, using the at least one processor, a composite network address to the data objects; and
storing, using the at least one processor, the data objects at the composite network address on the peer-to-peer database.

### Claim 4

A method of executing instructions stored on a non-transitory computer-readable storage medium, using at least one processor, to thereby execute persisting data using segregated address spaces on a peer-to-peer database, the peer-to-peer database including a plurality of data records which are uniquely identified for querying thereof within a namespace of the peer-to-peer network and which each are related to data objects which form a corresponding data record of the plurality of data records, the method comprising:
accessing, using the at least one processor, the data objects at a node of the peer-to-peer database;
subscribing, using the at least one processor, a local area network (LAN) of the node to the data objects;
committing, using the at least one processor, updates to the data objects on the LAN as a segregated address space of the namespace of the peer-to-peer network; and
committing, using the at least one processor, the updates to the corresponding data records of the peer-to-peer database.

### Claim 5 (depends on 1)

The method of claim 1 wherein the redirection object is configured to maintain a link to current data stored on the peer-to-peer database.

### Claim 6 (depends on 1)

The method of claim 1 wherein the redirection object is configured to maintain a history of data network addresses that hold previous peer-to-peer data objects previously linked using the redirection object.

### Claim 7 (depends on 1)

The method of claim 1 wherein the redirection object is configured to provide a primary reference from an index to an associated data record in the peer-to-peer database, and wherein the peer-to-peer database is configured to update index values of the index independently of a manner in which the index and data records are linked.

### Claim 8 (depends on 1)

The method of claim 1 wherein the redirection object is configured to manage local data caching.

### Claim 9 (depends on 1)

The method of claim 1 wherein the redirection object is configured to manage composite data structures.

### Claim 10 (depends on 1)

The method of claim 1 wherein the redirection object is configured to manage data of the peer-to-peer database including publishing, deleting or reorganizing the data on at least one peer-to-peer database node.

### Claim 11 (depends on 1)

The method of claim 1 wherein the redirection object is configured to trigger a local process to publish, delete or reorganize data of the peer-to-peer database on at least one peer-to-peer database node.

### Claim 12 (depends on 1)

The method of claim 1 wherein the redirection object is configured to manage data backup to a separate peer-to-peer database.

### Claim 13 (depends on 1)

The method of claim 1 wherein the redirection object is configured to manage an association of composite data records.

### Claim 14 (depends on 1)

The method of claim 1 wherein the redirection object is configured to trigger code to execute locally which writes data for a composite data record.

### Claim 15 (depends on 2)

The method of claim 2 wherein the storage node is a component of the peer-to-peer database that is locatable amongst other storage nodes of the peer-to-peer database as containing data being sought, based on characteristics of the data being sought.

### Claim 16 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store relational data.

### Claim 17 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store peer-to-peer data indexes.

### Claim 18 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store peer-to-peer redirection objects, each redirection object associated with a corresponding data object and including a network address and the data network address of the corresponding data object, wherein a connection is maintained between the data object at the data network address and the redirection object at the network address, wherein the redirection object provides a primary reference from the data object to its associated data record of the plurality of data records of the peer-to-peer database, and connections of the associated data record are independent of the connection between the data object and the redirection object.

### Claim 19 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store programming code.

### Claim 20 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store database triggers that maintain data consistency.

### Claim 21 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes configured to store security information for related data security techniques.

### Claim 22 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store database schema information

### Claim 23 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to store composite data.

### Claim 24 (depends on 2)

The method of claim 2 wherein the peer-to-peer database nodes are configured to execute methods deferred or forked from other processes.

### Claim 25 (depends on 3)

The method of claim 3 wherein data linked into the composite definition is addressable and stored on the peer-to-peer database at individual data element network locations, and wherein the peer-to-peer database is configured to read the linked data together when referenced from the composite definition storage location.

### Claim 26 (depends on 3)

The method of claim 3 wherein a process that updates a single composite data object triggers updates to related, stored composite records on the peer-to-peer database.

### Claim 27 (depends on 3)

The method of claim 3 wherein composite definition updates are deferred or forked to another process on a peer-to-peer database node.

### Claim 28 (depends on 4)

The method of claim 4 wherein the updates to the data objects that are committed on the LAN include data of local data consumers on the LAN.

### Claim 29 (depends on 4)

The method of claim 4 wherein the updates to the data objects that are committed on the LAN include data that is used as a persistent backup for defined peer-to-peer data.

### Claim 30 (depends on 4)

The method of claim 4 wherein the updates to the data objects that are committed on the LAN include data of a process that requires data retrieval for the peer-to-peer database.

### Claim 31 (depends on 4)

The method of claim 4 wherein the updates to the data objects that are committed on the LAN include data stored using different security requirements.

### Claim 32 (depends on 4)

The method of claim 4 wherein the updates to the data objects that are committed on the LAN include private data that is not available on the peer-to-peer database outside of the LAN.

### Claim 33 (depends on 4)

The method of claim 4 wherein the updates to the data objects that are committed on the LAN include data maintained in private by a creator thereof.
