This disclosure relates generally to networking and more specifically to data replication over a low-latency network.
Data replication is utilized by organizations to improve access to data. For example, a global organization with a geographically dispersed customer base may utilize multiple data centers that are located in various physical locations. In order to provide products and services and to improve data availability and accessibility, data replication is typically used to store the same data in each of the data centers. However, data replication latency can cause data collisions that may result in data loss and a negative customer experience.
According to an embodiment, a first computing device located at a first data center is communicatively coupled to a first database. The first computing device is configured to determine data stored in the first database to be replicated to a second database communicatively coupled to a second computing device at a remote data center. The first computing device is further configured to determine whether a point-to-point data tunnel has been established across a broadband cellular network between the first computing device and the second computing device and to establish the point-to-point data tunnel across the broadband cellular network between the first computing device and the second computing device when it is determined that the point-to-point data tunnel has not been established. The first computing device is further configured to replicate the data to the second database by transmitting the data to the second computing device across the point-to-point data tunnel.
According to another embodiment, a system includes a first data center and a second data center. The first data center includes a first computing device communicatively coupled to a first database. The second data center includes a second computing device communicatively coupled to a second database. The second computing device is configured to determine data stored in the second database to be replicated to the first database. The second computing device is further configured to determine whether a point-to-point data tunnel has been established across a broadband cellular network between the second computing device and the first computing device and to establish the point-to-point data tunnel across the broadband cellular network between the second computing device and the first computing device when it is determined that the point-to-point data tunnel has not been established. The second computing device is further configured to replicate the data to the first database by transmitting the data to the first computing device across the point-to-point data tunnel.
According to yet another embodiment, a method includes determining data stored in a first database to be replicated to a second database. The first database is communicatively coupled to a first computing device of a first data center, and the second database communicatively coupled to a second computing device of a second data center. The method further includes determining whether a point-to-point data tunnel has been established across a broadband cellular network between the first computing device and the second computing device. The method further includes establishing the point-to-point data tunnel across the broadband cellular network between the first computing device and the second computing device when it is determined that the point-to-point data tunnel has not been established. The method further includes replicating the data to the second database by transmitting the data to the second computing device across the point-to-point data tunnel.
A practical application of the data replication system describe herein is that data is able to be replicated across multiple data centers regardless of physical location using a low-latency, highly-reliable broadband cellular network. In this manner, computing resources (e.g., processor, memory, and/or network resources) are not wasted handling data collisions that are typical when using existing data replication systems and methods. By reducing the number of data collisions, data loss is reduced or limited, thereby improving the efficiency of computing systems.
Embodiments of the present disclosure provide technological solutions to technological problems. For example, the disclosed embodiments replicate data across multiple geographically-diverse databases using a low-latency, highly-reliable broadband cellular network (e.g., a 5G cellular network). As a specific example, a point-to-point data tunnel (e.g., using a 5G backhaul connection) may be established between two geographically-diverse data centers, and data may be replicated from a database of a first data center to a database of a second data center across the point-to-point data tunnel. This increases the speed of data replication over typical data-replication systems and reduces transmission errors that are typical on alternative less-reliable networks. By replicating data faster across locations using point-to-point data tunnels over broadband cellular networks, data collisions that are typical on most data-replication networks are reduced or eliminated altogether, thereby reducing data loss and improving overall customer experience. Other technical advantages of the present disclosure will be readily apparent to one skilled in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.
To assist in understanding the present disclosure, reference is now made to the following description taken in conjunction with the accompanying drawings, in which:
Data replication is utilized by organizations to improve access to data. For example, a global organization with a geographically dispersed customer base may utilize multiple data centers that are located in various physical locations. In order to provide products and services (e.g., mobile applications, websites, etc.) and to improve data availability and accessibility, data replication is typically used to store the same data in each of the data centers. However, data replication latency can cause data collisions that may result in data loss and a negative customer experience. For example, a typical data replication system utilizes a centralized system (e.g., a leader-based replication system) where a single computing system transmits data to multiple data centers. This requires sharing of network bandwidth, which can increase network latency, network congestion, and ultimately the loss of data.
To address these and other problems with existing data replication systems, the data replication systems and methods of this disclosure replicate data using point-to-point data tunnels over a low-latency, highly-reliable broadband cellular network (e.g., a 5G cellular network). As a specific example, a point-to-point data tunnel (e.g., using a 5G backhaul connection) may be established between two geographically-diverse data centers, and data may be replicated from a database of a local data center to a database of a remote data center across the point-to-point data tunnel. This increases the speed of data replication over typical leader-based replication system and reduces transmission errors that are typical on other less-reliable networks. By replicating data faster across locations using point-to-point data tunnels over broadband cellular networks, data collisions that are typical of most data-replication systems are reduced or eliminated altogether, thereby reducing data loss and ultimately improving overall customer experience.
Data center 110 is any location (e.g., a building, a dedicated space within a building, etc.) to house computing systems 115 and associated components, such as telecommunications, networking, and computer storage systems. In some embodiments, data centers 110 are located in different geographic locations in order to more adequately serve a geographically-dispersed customer base. For example, a first data center 110A may be located in a first region (e.g., the West coast of the United States), a second data center 110B may be located in a second region (e.g., the central portion of the United States), and a third data center 110C may be located in a third region (e.g., the East coast of the United States) in order to serve customers in the United States. By having multiple data centers 110 that are located in different geographical regions, the customers' experience may be improved (e.g., quicker response times for websites, mobile applications, and the like).
Computing system 115 is any appropriate computing or networking element or node housed within data center 110. In general, computing system 115 is capable of communicating with network 130 and establishing a point-to-point data tunnel 120 over network 130 with a computing system 115 of another data center 110. In some embodiments, computing system 115 is a database server. In some embodiments, computing system 115 is communicatively coupled to one or more databases (e.g., either stored internally within computing system 115 or on another computing system 115 within the same data center 110).
Point-to-point data tunnel 120 is any dedicated data channel that may be used to transfer replication data 125 between two different data centers 110. In some embodiments, point-to-point data tunnel 120 is a backhaul data channel on a broadband cellular network such as a 5G network. In general, the bandwidth of each point-to-point data tunnel 120 is dedicated for the transfer of replication data 125 between only two data centers 110. This dedicated bandwidth provides a technical advantage over typical data replication systems. Typically, a centralized data replication “leader” computing system is used to replicate data to multiple data centers. For example, the data replication leader may receive replication data 125 that must then be transmitted to two or more data centers 110. This sharing of bandwidth increases network latency, network congestion, and ultimately the loss of data, which negatively impacts customer experience. Data replication system 100, on the other hand, utilizes point-to-point data tunnels 120 to replicate data between only two data centers 110. By replicating data between two data centers 110 using point-to-point data tunnels 120 over broadband cellular network 130, data collisions that are typical of most data-replication systems are reduced or eliminated altogether, thereby reducing data loss and ultimately improving overall customer experience.
Replication data 125 represents any information that can be electronically stored in a database or other computer storage. Replication data 125 may be any type of data (e.g., raw data, batched data, etc.). Replication data 125 may include data received by an entity (e.g., an institution, a retailer, a telecommunication company, and the like). Replication data 125 may include any data suitable for processing and may include information associated with one or more customers. For example, replication data 125 may include customer identifications, preferences, and the like. Replication data 125 may be retrieved from one or more data sources such as network 130, mobile devices, and the like.
Network 130 of data replication system 100 may be any type of network that facilitates communication between components of data replication system 100. Network 130 may connect data centers 110 of data replication system 100. Although this disclosure shows network 130 as being a particular kind of network, this disclosure contemplates any suitable network. One or more portions of network 130 may include an ad-hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), a portion of the Internet, a portion of the Public Switched Telephone Network (PSTN), a cellular telephone network, a broadband cellular network (e.g., a 3G network, a 4G network, a 5G network, a 6G network, a future broadband cellular network, etc.), a combination of two or more of these, or other suitable types of networks. Network 130 may include one or more networks. One or more components of data replication system 100 may communicate over network 130. For example, data center 110A may transmit replication data 125A to data center 110B over point-to-point data tunnel 120A using network 130.
In some embodiments, data replication system 100 includes a monitoring network element 140 communicatively coupled to network 130. In general, monitoring network element 140 is a centralized data communications monitoring system that monitors active point-to-point data tunnels 120. If monitoring network element 140 detects any errors or problems with an active point-to-point data tunnel 120, monitoring network element 140 may report the detected errors or problems. For example, if monitoring network element 140 detects errors on point-to-point data tunnel 120A, it may generate and send an alert or notification to an appropriate contact.
Although
In operation, data replication system 100 replicates data between data centers 110 using point-to-point data tunnels 120. As an example, computing system 115A of data center 110A may access a first database (not illustrated) communicatively coupled to computing system 115A and determine that data stored in the first database needs to be replicated to a second database (not illustrated) that is communicatively coupled to computing system 115B of data center 110B. To replicate the data from the first database to the second database, computing system 115A may first determine whether point-to-point data tunnel 120A has been established across broadband cellular network 130 between computing system 115A and computing system 115B. If computing system 115A determines that point-to-point data tunnel 120A has not been established, computing system 115A establishes point-to-point data tunnel 120A across broadband cellular network 130 between computing system 115A and computing system 115B. In some embodiments, establishing point-to-point data tunnel 120A involves communicating with a node of network 130 and establishing a 5G backhaul data connection. Once point-to-point data tunnel 120A is established between computing system 115A and computing system 115B, computing system 115A replicates the data from the first database to the second database by transmitting replication data 125 to computing system 115B across point-to-point data tunnel 120A. By replicating data between two data centers 110 over dedicated point-to-point data tunnels 120, data collisions that are typical of most data-replication systems are reduced or eliminated altogether, thereby reducing data loss and improving customer experience with websites, mobile applications, and other applications that utilize data stored in data centers 110.
At step 220, method 200 determines that data stored in the first database needs to be replicated to a second database communicatively coupled to a second computing device of a second data center. In some embodiments, step 220 includes receiving a signal from another computing device that certain data needs to be replicated. In some embodiments, step 220 includes comparing a time stamp of the first database to a time stamp of the second database. If the timestamp of the first database is newer than the timestamp of the second database, method 200 may determine that data stored in the first database needs to be replicated to the second database.
At step 230, method 200 determines whether a point-to-point data tunnel has been established across a broadband cellular network between the first computing device and the second computing device. In some embodiments, the point-to-point data tunnel is point-to-point data tunnel 120. In some embodiments, the broadband cellular network is a 5G network. In some embodiments, the point-to-point data tunnel is a backhaul data connection.
At step 240, method 200 establishes the point-to-point data tunnel across the broadband cellular network between the first computing device and the second computing device when it is determined in step 230 that the point-to-point data tunnel has not been established. At step 250, method 200 replicates the data to the second database by transmitting the data to the second computing device across the point-to-point data tunnel. In some embodiments, the data transmitted in step 250 is replication data 125. After step 250, method 200 ends.
Modifications, additions, or omissions may be made to method 200 depicted in
In certain embodiments, the components comprise one or more interface(s) 302, processing circuitry 304, and/or memory(ies) 306. In general, processing circuitry 304 controls the operation and administration of a structure by processing information received from memory 306 and/or interface 302. Memory 306 stores, either permanently or temporarily, data or other information processed by processing circuitry 304 or received from interface 302. Interface 302 receives input, sends output, processes the input and/or output and/or performs other suitable operations. An interface 302 may comprise hardware and/or software.
Examples of interfaces 302 include user interfaces, network interfaces, and internal interfaces. Examples of user interfaces include one or more graphical user interfaces (GUIs), buttons, microphones, speakers, cameras, and so on. Network interfaces receive information from or transmit information through a network, perform processing of information, communicate with other devices, or any combination of the preceding. Network interfaces may comprise any port or connection, real or virtual, wired or wireless, including any suitable hardware and/or software, including protocol conversion and data processing capabilities, to communicate through a LAN, WAN, or other communication system that allows processing circuitry 304 to exchange information with or through a network. Internal interfaces receive and transmit information among internal components of a structure.
Processing circuitry 304 communicatively couples to interface(s) 302 and memory 306, and includes any hardware and/or software that operates to control and process information. Processing circuitry 304 may include a programmable logic device, a microcontroller, a microprocessor, any suitable processing device, or any suitable combination of the preceding. Processing circuitry 304 may execute logic stored in memory 306. The logic is configured to perform functionality described herein. In certain embodiments, the logic is configured to perform the method described with respect to
Memory 306 includes any one or a combination of volatile or non-volatile local or remote devices suitable for storing information. For example, memory comprises any suitable non-transitory computer readable medium, such as Read Only Memory (“ROM”), Random Access Memory (“RAM”), magnetic storage devices, optical storage devices, or any other suitable information storage device or a combination of these devices. Memory 306 may be local/integrated with the hardware used by processing circuitry 304 and/or remote/external to the hardware used by processing circuitry 304.
The scope of this disclosure is not limited to the example embodiments described or illustrated herein. The scope of this disclosure encompasses all changes, substitutions, variations, alterations, and modifications to the example embodiments described or illustrated herein that a person having ordinary skill in the art would comprehend.
Modifications, additions, or omissions may be made to the systems and apparatuses described herein without departing from the scope of the disclosure. The components of the systems and apparatuses may be integrated or separated. Moreover, the operations of the systems and apparatuses may be performed by more, fewer, or other components. Additionally, operations of the systems and apparatuses may be performed using any suitable logic comprising software, hardware, and/or other logic.
Modifications, additions, or omissions may be made to the methods described herein without departing from the scope of the disclosure. The methods may include more, fewer, or other steps. Additionally, steps may be performed in any suitable order. That is, the steps of any method disclosed herein do not have to be performed in the exact order disclosed, unless explicitly stated.
As used in this document, “each” refers to each member of a set or each member of a subset of a set. Furthermore, as used in the document “or” is not necessarily exclusive and, unless expressly indicated otherwise, can be inclusive in certain embodiments and can be understood to mean “and/or.” Similarly, as used in this document “and” is not necessarily inclusive and, unless expressly indicated otherwise, can be inclusive in certain embodiments and can be understood to mean “and/or.” All references to “a/an/the element, apparatus, component, means, step, etc.” are to be interpreted openly as referring to at least one instance of the element, apparatus, component, means, step, etc., unless explicitly stated otherwise.
Furthermore, reference to an apparatus or system or a component of an apparatus or system being adapted to, arranged to, capable of, configured to, enabled to, operable to, or operative to perform a particular function encompasses that apparatus, system, component, whether or not it or that particular function is activated, turned on, or unlocked, as long as that apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operable, or operative.
Although several embodiments have been illustrated and described in detail, it will be recognized that substitutions and alterations are possible without departing from the spirit and scope of the present disclosure, as defined by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
8250029 | Holenstein | Aug 2012 | B2 |
8600945 | Natanzon | Dec 2013 | B1 |
8712962 | Natanzon | Apr 2014 | B1 |
8745105 | Erofeev | Jun 2014 | B2 |
8806161 | Natanzon | Aug 2014 | B1 |
8868494 | Agrawal | Oct 2014 | B2 |
8914595 | Natanzon | Dec 2014 | B1 |
8943025 | Hirakawa | Jan 2015 | B2 |
9003374 | Ngo | Apr 2015 | B2 |
9025602 | Zhong | May 2015 | B2 |
9069479 | Natanzon | Jun 2015 | B1 |
9069709 | Natanzon | Jun 2015 | B1 |
9112888 | Singh | Aug 2015 | B2 |
9152578 | Saad | Oct 2015 | B1 |
9208210 | Erofeev | Dec 2015 | B2 |
9235481 | Natanzon | Jan 2016 | B1 |
9251198 | Mutalik | Feb 2016 | B2 |
9268835 | O'Neill | Feb 2016 | B2 |
9304889 | Chen | Apr 2016 | B1 |
9311326 | Goyen | Apr 2016 | B2 |
9323750 | Natanzon | Apr 2016 | B2 |
9344494 | Mordani | May 2016 | B2 |
9483511 | Prahlad | Nov 2016 | B2 |
9535801 | Natanzon | Jan 2017 | B1 |
9563683 | Abercombie | Feb 2017 | B2 |
9671965 | Desimone | Jun 2017 | B2 |
9716754 | Swift | Jul 2017 | B2 |
9740572 | Natanzon | Aug 2017 | B1 |
9772789 | Natanzon | Sep 2017 | B1 |
9934102 | Blea | Apr 2018 | B2 |
9971657 | Prahlad | May 2018 | B2 |
10019194 | Baruch | Jul 2018 | B1 |
10078556 | Clare | Sep 2018 | B2 |
10152398 | Ramakrishman | Dec 2018 | B2 |
10191813 | Fan | Jan 2019 | B2 |
10223023 | Natanzon | Mar 2019 | B1 |
1026862 | Hrle | Apr 2019 | A1 |
10324640 | Chen | Jun 2019 | B1 |
10338851 | Kronrod | Jul 2019 | B1 |
10387448 | Xu | Aug 2019 | B2 |
10394665 | Wilkinson | Aug 2019 | B2 |
10459908 | Varley | Oct 2019 | B2 |
10474644 | Krupakaran | Nov 2019 | B2 |
10474682 | Patel | Nov 2019 | B2 |
10481825 | Vijayan | Nov 2019 | B2 |
10515057 | Mortensen | Dec 2019 | B2 |
10530858 | Parulkar | Jan 2020 | B1 |
10608870 | Rath | Mar 2020 | B2 |
10706072 | Chen | Jul 2020 | B2 |
10754557 | Lingarajappa | Aug 2020 | B2 |
10778457 | Mathew | Sep 2020 | B1 |
10838640 | Golden | Nov 2020 | B1 |
10929240 | Rath | Feb 2021 | B2 |
10942666 | Pudipaty | Mar 2021 | B2 |
10990609 | O'Neill | Apr 2021 | B2 |
10997161 | Lee | May 2021 | B2 |
11036599 | Salapura | Jun 2021 | B2 |
20170041296 | Ford | Feb 2017 | A1 |
20200244484 | Kommula | Jul 2020 | A1 |
20210314291 | Chandrashekhar | Oct 2021 | A1 |
Number | Date | Country | |
---|---|---|---|
20230062594 A1 | Mar 2023 | US |