METHODS AND APPARATUS FOR IMPLEMENTING A DISTRIBUTED DATABASE
First Claim
1. A node of a distributed database, the node providing database clients with access to the distributed database, the node comprising:
- a receiver configured to receive communications from database clients and other nodes of the distributed database;
a transmitter configured to send communications to database clients and other nodes of the distributed database; and
a processor configured to, upon receipt of a data request from a database client, the data request relating to a data instance, determine if a version of the data instance is stored in a database instance that is local to the database client, determine if ownership of the data instance has been or should be assigned to a local database instance, andwhere it is determined that either a local database instance is currently assigned ownership of the data instance or that ownership of the data instance should be transferred to a local database instance, to then use the version of the data instance that is stored at the local database instance to fulfil the data request;
where it is determined that a version of the data instance is not stored at a local database instance and that ownership of the data instance should be transferred to a local database instance, to then copy the data instance from a remote database instance and use the copy data instance to fulfil the data request;
where it is determined that a version of the data instance is not stored at a local database instance or that a version of the data instance is stored at a local database instance that is not currently assigned ownership of the data instance, and it is determined that ownership of the data instance should not be transferred to a local database instance that is not the current owner, then use a version of the data instance stored at a remote database instance to fulfil the data request.
1 Assignment
0 Petitions
Accused Products
Abstract
According to a first aspect of the present invention there is provided a node of a distributed database, the node providing database clients with access to the distributed database. The node comprises a receiver configured to receive communications from database clients and other nodes of the distributed database, a transmitter configured to send communications to database clients and other nodes of the distributed database and a processor. The processor is configured to fulfil the data request using a version of the data instance that is stored by a database instance of the distributed database that has been assigned ownership of the data instance.
-
Citations
18 Claims
-
1. A node of a distributed database, the node providing database clients with access to the distributed database, the node comprising:
-
a receiver configured to receive communications from database clients and other nodes of the distributed database; a transmitter configured to send communications to database clients and other nodes of the distributed database; and a processor configured to, upon receipt of a data request from a database client, the data request relating to a data instance, determine if a version of the data instance is stored in a database instance that is local to the database client, determine if ownership of the data instance has been or should be assigned to a local database instance, and where it is determined that either a local database instance is currently assigned ownership of the data instance or that ownership of the data instance should be transferred to a local database instance, to then use the version of the data instance that is stored at the local database instance to fulfil the data request; where it is determined that a version of the data instance is not stored at a local database instance and that ownership of the data instance should be transferred to a local database instance, to then copy the data instance from a remote database instance and use the copy data instance to fulfil the data request; where it is determined that a version of the data instance is not stored at a local database instance or that a version of the data instance is stored at a local database instance that is not currently assigned ownership of the data instance, and it is determined that ownership of the data instance should not be transferred to a local database instance that is not the current owner, then use a version of the data instance stored at a remote database instance to fulfil the data request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 9)
-
-
8. A node of a distributed database, the node providing a database instance of the distributed database, the node comprising:
-
a receiver configured to receive communications from other nodes of the distributed database; a transmitter configured to send communications to other nodes of the distributed database; a memory having a first portion and a second portion, the first portion being reserved for storing original data instances, original data instances being the first occurrence of a data instance that is stored in the distributed database, and the second portion being reserved for storing any replica data instances that have been replicated to the database instance from other database instances and any copy data instances that have been copied to the database instance from other database instances; and
a processor configured to, upon receipt of a data request relating to an original data instance or replica data instance stored in the memory, check ownership information that is stored with the data instance, the ownership information identifying the database instance that is currently assigned ownership of the data instance.
-
-
10. A method of operating a node of a distributed database, the node providing database clients with access to the distributed database, the method comprising the steps of:
upon receipt of a data request from a database client, the data request relating to a data instance, determining if a version of the data instance is stored in a database instance that is local to the database client, determining if ownership of the data instance has been or should be assigned to a local database instance, and where it is determined that a version of the data instance is stored at a local database instance, and that either the local database instance is currently assigned ownership of the data instance or that ownership of the data instance should be transferred to a local database instance, use the version of the data instance that is stored at a local database instance to fulfil the data request; where it is determined that a version of the data instance is not stored at a local database instance and that ownership of the data instance should be transferred to a local database instance, copy the data instance from a remote database instance and use the copy data instance to fulfil the data request; where it is determined that a version of the data instance is not stored at a local database instance or that a version of the data instance is stored at a local database instance that is not currently assigned ownership of the data instance, and it is determined that ownership of the data instance should not be transferred to a local database instance that is not the current owner, use a version of the data instance stored at a remote database instance to fulfil the data request. - View Dependent Claims (11, 12, 13, 14, 15, 16, 18)
-
17. A method of operating a node of a distributed database, the node providing a database instance of the distributed database, the method comprising:
-
storing original data instances in a first portion of a memory of the node, original data instances being the first occurrence of a data instance that is stored in the distributed database, and storing any replica data instances that have replicated to the database instance from other databases instance and any copy data instances that have been copied to the database instance from other database instances in a second portion of a memory of the node; and upon receipt of a data request relating to an original data instance or replica data instance stored in the memory, checking ownership information that is stored with the data instance, the ownership information identifying the database instance that is currently assigned ownership of the data instance.
-
Specification