System and method for implementing a database in a heterogeneous cluster

US9996591B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9996591-B2
Application numberUS-201615010257-A
CountryUS
Kind codeB2
Filing dateJan 29, 2016
Priority dateSep 22, 2015
Publication dateJun 12, 2018
Grant dateJun 12, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A system and method for implementing a database system is presented. A database system comprises a load balancer and a database partitioned into a first and second shard. Coupled to the load balancer are a first plurality of database servers and a second plurality of database servers. Each of the first plurality of database servers contains a copy of the first shard of the database. Each of the second plurality of database servers contains a copy of the second shard of the database. Queries are sent to a database server in the first plurality of database servers based on a suitability score of the database server determined by characteristics of each server and a current status of each server, where the query is sent to the server in the first plurality with the highest suitability score. Other embodiments also are disclosed.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising: a load balancer; a database partitioned into at least a first shard and a second shard; a first plurality of database servers coupled to the load balancer, each database server in the first plurality of database servers hosting a copy of the first shard of the database; and a second plurality of database servers coupled to the load balancer, each database server in the second plurality of database servers hosting a copy of the second shard of the database; wherein: the load balancer is arranged to: retrieve server information for each database server in the first plurality of database servers and for each database server in the second plurality of database servers; determine a suitability score for each database server in the first plurality of database servers and for each database server in the second plurality of database servers based on the server information; and send incoming instructions to a selected database server from the first plurality of database servers or the second plurality of database servers, using load balancing techniques; each database server in the first plurality of database servers is configured to process at least one first instruction of the incoming instructions and send queries of the first shard of the database to only a first specific database server in the first plurality of database servers based on the suitability score of the first specific database server; and each database server in the second plurality of database servers is configured to process at least one second instruction of the incoming instructions and send queries of the second shard of the database to only a second specific database server in the second plurality of database servers based on the suitability score of the second specific database server. 2. The system of claim 1 wherein: the database is further partitioned into a third shard; the system further comprises: a third plurality of database servers coupled to the load balancer, each database server in the third plurality of database servers hosting a copy of the third shard of the database; a first server set comprising one database server from the first plurality of database servers, one database server from the second plurality of database servers, and one database server from the third plurality of database servers; and a second server set comprising one database server from the first plurality of database servers, one database server from the second plurality of database servers, and one database server from the third plurality of database servers; the load balancer is arranged to send the incoming instructions to a database server selected from one of the first plurality of database servers, the second plurality of database servers, or the third plurality of database servers, using the load balancing techniques; the load balancer is arranged to retrieve server information for each database server in the third plurality of database servers; the load balancer is arranged to determine a suitability score for each database server in the third plurality of database servers; each database server in the first server set is configured to send queries to only first other database servers in the first server set based on the suitability score of the first specific database server; and each database server in the second server set is configured to send queries to only second other database servers in the second server set based on the suitability score of the second specific database server. 3. The system of claim 2 wherein: each database server in the first plurality of database servers is a member of only one server set of the first and second server sets; each database server in the second plurality of database servers is a member of only one server set of the first and second server sets; and each database server in the third plurality of database servers is a member of only one server set of the first and second server sets. 4. The system of claim 1 wherein the load balancer is further configured to: receive a first query result from one of the database servers in the first plurality of database servers; receive a second query result from one of the database servers in the second plurality of database servers; aggregate the first query result and the second query result; and present an aggregated query result to a requestor. 5. The system of claim 4 wherein: presenting the aggregated query result comprises sending the aggregated query result with markup language arranged to display the aggregated query result as a web page. 6. The system of claim 4 wherein: presenting the aggregated query result comprises sending the aggregated query result with markup language arranged to display the aggregated query result using a mobile app. 7. The system of claim 1 wherein the database is partitioned as a horizontal partition. 8. A method comprising: sending a first incoming instruction to a database server selected from a first plurality of database servers or a second plurality of database servers, using load balancing techniques, the first and second plurality of database servers are part of a database; processing the first incoming instruction to extract a first query in a database server belonging to a first server set and selected from the first plurality of database servers; retrieving server information for each database server in the first plurality of database servers and for each database server in the second plurality of database servers; determining a suitability score for each database server in the first plurality of database servers and for each database server in the second plurality of database servers based on the server information for each such database server; sending the first query from the database server belonging to the first server set and selected from the first plurality of database servers to a first selected database server belonging to the first server set and selected from the second plurality of database servers using the suitability score of the first selected database server; executing the first query in both the database server belonging to the first server set and selected from the first plurality of database servers and the first selected database server belonging to the first server set and selected from the second plurality of database servers; sending a second incoming instruction to a database server selected from the first plurality of database servers or the second plurality of database servers, using the load balancing techniques; processing the second incoming instruction to extract a second query in a database server belonging to a second server set and selected from the first plurality of database servers; sending the second query from the database server belonging to the second server set and selected from the first plurality of database servers to a second selected database server belonging to the second server set and selected from the second plurality of database servers; and executing the second query in both the database server belonging to the second server set and selected from the first plurality of database servers and the second selected database server belonging to the second server set and selected from the second plurality of database servers; wherein: each database server in the first plurality of database servers hosts a copy of a first shard of the database; each database server in the second plurality of database servers hosts a copy of a second shard of the database; each database server in the first plurality of database servers belongs to either the first server set or the second server set; and each database server in the second plural

Assignees

Inventors

Classifications

  • based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • Physics · mapped topic

  • Physics · mapped topic

  • based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30) · CPC title

  • Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9996591B2 cover?
A system and method for implementing a database system is presented. A database system comprises a load balancer and a database partitioned into a first and second shard. Coupled to the load balancer are a first plurality of database servers and a second plurality of database servers. Each of the first plurality of database servers contains a copy of the first shard of the database. Each of the…
Who is the assignee on this patent?
Wal Mart Stores Inc, Walmart Apollo Inc
What technology area does this patent fall under?
Primary CPC classification G06F17/3053. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 12 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).