TIERED SERVER TOPOLOGY
20220207024 · 2022-06-30
Assignee
Inventors
Cpc classification
G06F16/282
PHYSICS
G06F16/27
PHYSICS
G06F16/2379
PHYSICS
H04L67/10015
ELECTRICITY
International classification
Abstract
The present invention utilizes a database network topology which allows a single shared value to be updated by a multitude of users simultaneously on multiple sub-level servers which feed higher level servers, which aggregate the data from the sub-level servers, and feed a master server, which aggregates all the data updates and feeds back to the users. The network topology is best represented as a pyramid.
Claims
1. A method of managing simultaneous user updates to a database to minimize latency comprising: providing at least one master server, the master server comprising at least one database with a single shared value; providing a plurality of slave servers, each slave server comprising the database with the single shared value; having a plurality of users simultaneously updating the single shared value on the user personal devices and transmitting the update to the slave servers; the master and slave servers being capable of completing a maximum number of database updates within a timeframe; organizing the master server and slave servers into a server topology comprising a top-tier, at least one mid-tier, and a bottom-tier where the top tier comprises a master server, the mid-tier comprises slave servers which update the master server single shared value, and the bottom-tier comprises slave servers which update the mid-tier servers' single shared value; determining the number of mid-tier and bottom-tier servers in the server topology by comparing the maximum number of database updates within a timeframe the servers can achieve and a target timeframe for the master server to receive an update to the single shared value once the user has update the single shared value is received by the slave server; whereby a plurality of users will simultaneously transmit updates to the single shared value from their devices, which are received by the bottom-tier slave servers, which collect and aggregate the user updates into a single update value that is transmitted to the mid-tier servers; whereby the mid-tier servers receive a plurality of updates from mid-tier and bottom-tier slave servers, which collect and aggregate the user updates into a single update value that is transmitted to the either master server or other mid-tier servers; whereby the master receives a plurality of updates from mid-tier servers, which collects and aggregates the user updates into a single update value that is transmitted to user.
2. The method of method of managing simultaneous user updates to a database to minimize latency of claim 1 further comprising the additional step of slave servers erasing data from the single shared value when the server transmits an update to another server.
3. The method of method of managing simultaneous user updates to a database to minimize latency of claim 1 whereby the master servers transmits updates to the users back through the mid-tier and bottom-tier servers.
4. The method of method of managing simultaneous user updates to a database to minimize latency of claim 1 whereby the master servers transmits updates to the users back through a feedback server.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0015]
[0016]
DETAILED DESCRIPTION OF THE INVENTION
[0017] The present invention was developed to allow millions of users to update an application database. The application database contains a single shared value in a database which is updated by many users operating a variety of personal devices 104, such as cellular phones, tablets, laptops, etc. In order for the application to operate effectively, updates to the database single shared value must update within a predetermined timeframe from receiving the update from the user. Millions of users may be updating the application simultaneously, and the number of simultaneous database updates cannot negatively affect the update timeframe of the single shared value.
[0018] Referring to
[0019] Additional first tier slave servers 102 will not add to the total processing time, but an additional tier of slave servers will. For example, if the master server 101 can handle 1,000 slave servers or user connections in 1 second, then each first-tier slave server 102 can also handle 1,000 slave servers or user connections in one second. That means that the time it takes the master server 101 database to service all 1,000 of its first-tier slave servers 102 databases, is the same amount of time it will take each first-tier slave server 102 database to service 1,000 second-tier slave server databases. The final outcome is that upping the load from 1,000 user connections to 1,000,000 user connections will only double the time to two seconds.
[0020] If you add a second tier of slave server databases, you can service up to 1 billion user connections, and only triple the time it takes the master server 101 to process its user connections. So, if master server 101 can service 1,000 connections in 1 second, using the above described server topology, it will only take two seconds to service 1 million user connections with a first-tier of slave servers 102, and only 3 seconds to service 1 billion user connections with a second tier of slave servers 103.
[0021] Below is a mathematical calculation of
X=1: #=0 EQN 1
X=N: #=1 EQN 2
X=N{circumflex over ( )}2: #=2 EQN 3
X=N{circumflex over ( )}3: #=3 EQN 4
t=T# EQN 5
[0022] Referring to EQNs 1-5, if N=100, T=1 second, and X=800,000 then at the second level, X=100, at the 3.sup.rd level X=10,000, and at the 4.sup.th level X=1,000,000. Since X>800,000 at #=3, 3 levels of servers will be needed. At 3 levels of services (#=3) and T=1 second, t would be 333 ms.
[0023] In order to operate at maximum efficiency, when a slave server sends an update of the single shared value, which is in the form of a data packet of the single aggregate value of all the updates received by the slave server, to either the database in the server tier above that slave server, or the database of the master server 102, that slave server database will reset the single shared value to a default value, e.g. zero if the single shared value is performing a counting function. By resetting after sending an update, the slave server database does not expend processing time determining the difference between the current value of the single shared value and the value of the single shared value at the time the slave server database last updated either the server in the tier above that slave server, or the master server 102.
[0024] Referring to
[0025] Referring to