Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DISTRIBUTED DATABASE SERVER
Document Type and Number:
WIPO Patent Application WO/2019/158981
Kind Code:
A2
Inventors:
SHARMA PRATIK (IN)
Application Number:
PCT/IB2018/050982
Publication Date:
August 22, 2019
Filing Date:
February 17, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
SHARMA PRATIK (IN)
International Classes:
G06F15/16
Download PDF:
Claims:
Claims

Following is the claim for this invention: -

1 . In this invention we have a distributed database server which we call as the main server where the datastore is a Key- Value store or an Object store with object identifier as the key and the object as the value or simply a Database where for each entry(or row) in the database, primary key is the key and the entire row object as the value and the above distributed datastore resides in-memory on one or more virtual machines having in-memory servers for the same. The persistent copy of the datastore resides in a different database server or distributed database server which we call as the persistent storage server on the same or different virtual machines. The reads to the datastore are forwarded by the main server to the appropriate in-memory server if the read query is key-based or else if the read query is not key-based then we compute the result object by aggregating the results from all partitions as the read query is forwarded to all the in-memory servers as it has all the information about the different partitions(along with information of virtual machines which hold these) of the Key- Value store or Object store or Database residing in different virtual machines for both in-memory and persistent storage servers, Internet Protocol (IP) address and port of all the in memory and persistent storage servers, the starting memory address for each partition of all data stores in persistent storage and in-memory for different virtual machines, etc. The writes to the datastore are forwarded by the main server to the appropriate persistent storage server if the update operation or query is key-based or else if it is an insert query then it is forwarded to the persistent storage server in round-robin manner(all inserts are forwarded to the persistent storage servers using round-robin algorithm to balance the number of entries in all partitions) or else if the update operation or query is not key-based then we break up the update query into read and write parts and apply the read filter or query to all partitions in persistent storage by forwarding to all persistent storage servers the read part of the query and get set of rows and partitions to be updated, and accordingly the persistent storage servers holding those partitions or rows are forwarded the update query. This is useful in cases where the writes are done by a different software layer than the application layer which does read or when writes and reads are done by separate services on same or different virtual machines. After every write or update operation the persistent storage server sends the partition

identifier, key and the value object(or update to the value object) to the main server. The main server forwards this information to the appropriate in-memory server containing that partition and the in-memory server does the write operation for in-memory data store holding that partition. Also it is useful when reads happen more frequently than writes and we can avoid stale reads here by putting a lock on the key or entry for in-memory partition prior to starting the write or update operation and unlocking it for reads only after updating the in-memory partition holding the corresponding entry. The above novel technique of handling reads and writes with help of a distributed database server is the claim for this invention.

Description:
Distributed Database Server

In this invention we have a distributed database server which we call as the main server where the datastore is a Key- Value store or an Object store with object identifier as the key and the object as the value or simply a Database where for each entry(or row) in the database, primary key is the key and the entire row object as the value and the above distributed datastore resides in-memory on one or more virtual machines having in-memory servers for the same. The persistent copy of the datastore resides in a different database server or distributed database server which we call as the persistent storage server on the same or different virtual machines. The reads to the datastore are forwarded by the main server to the appropriate in-memory server if the read query is key-based or else if the read query is not key-based then we compute the result object by aggregating the results from all partitions as the read query is forwarded to all the in-memory servers as it has all the information about the different partitions(along with information of virtual machines which hold these) of the Key- Value store or Object store or Database residing in different virtual machines for both in-memory and persistent storage servers, Internet Protocol (IP) address and port of all the in-memory and persistent storage servers, the starting memory address for each partition of all data stores in persistent storage and in-memory for different virtual machines, etc. The writes to the datastore are forwarded by the main server to the appropriate persistent storage server if the update operation or query is key-based or else if it is an insert query then it is forwarded to the persistent storage server in round-robin manner(all inserts are forwarded to the persistent storage servers using round-robin algorithm to balance the number of entries in all partitions) or else if the update operation or query is not key-based then we break up the update query into read and write parts and apply the read filter or query to all partitions in persistent storage by forwarding to all persistent storage servers the read part of the query and get set of rows and partitions to be updated, and accordingly the persistent storage servers holding those partitions or rows are forwarded the update query. This is useful in cases where the writes are done by a different software layer than the application layer which does read or when writes and reads are done by separate services on same or different virtual machines. After every write or update operation the persistent storage server sends the partition identifier, key and the value object(or update to the value object) to the main server. The main server forwards this information to the appropriate in-memory server containing that partition and the in memory server does the write operation for in-memory data store holding that partition. Also it is useful when reads happen more frequently than writes and we can avoid stale reads here by putting a lock on the key or entry for in-memory partition prior to starting the write or update operation and unlocking it for reads only after updating the in-memory partition holding the corresponding entry.