Offline support for database clusters
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- MICROSOFT TECHNOLOGY LICENSING LLC
- Filing Date
- 2021-07-26
- Publication Date
- 2026-08-07
AI Technical Summary
如果集群中的节点发生故障(例如,与集群中的其他节点失去连接),则通常会从头开始重建该节点,这可以消耗大量时间和资源
Smart Images

Figure CN116324761B_ABST
Abstract
Description
Background Technology
[0001] Databases are typically hosted by multiple nodes (e.g., servers). Nodes can be grouped into database clusters, such that each database cluster comprises a subset of nodes. Nodes within each database cluster are traditionally synchronized to store the same information or fragments thereof. Database clusters are often geographically distributed to mitigate the potential negative impact of a problem in one database cluster on other database clusters.
[0002] A cluster traditionally consists of a master node and multiple slave nodes. New or changed information to be stored by the cluster is typically directed to the master node, and the master node replicates the changes to the slave nodes. If a node in the cluster fails (e.g., loses connection to other nodes in the cluster), the node is typically rebuilt from scratch, which can consume significant time and resources. Summary of the Invention
[0003] This section describes various methods for providing offline support for a database cluster. For example, a database cluster may include online nodes and one or more offline-compatible nodes. Online nodes are nodes that synchronize with each other and are used to store corresponding instances of information. Offline-compatible nodes in the database cluster are nodes capable of performing information-related operations (aka tasks) in response to (e.g., based on) an offline-compatible node connecting to an online node via a network, while the offline-compatible node is not connected to an online node in the database cluster via a network, the information is stored by the offline-compatible node.
[0004] For example, in response to an offline compatible node connecting to an online node via a network, the offline compatible node may be able to copy information stored on the offline compatible node to one or more online nodes and / or copy data stored on the online node to the offline compatible node. In one aspect of this example, information generated or received by the offline compatible node for storage while the offline compatible node is not connected to the online node via a network may be copied to one or more online nodes based on (e.g., at least in part) the offline compatible node's connection to the online node. In another aspect of this example, information generated or received by any one or more online nodes for storage while the offline compatible node is not connected to the online node via a network may be copied to the offline compatible node based on the offline compatible node's connection to the online node. In yet another example, in response to an offline compatible node connecting to an online node via a network, the offline compatible node may be able to perform CRUD operations on information stored on the offline compatible node and / or cause CRUD operations to be performed on information stored on the online node. CRUD operations are create, read (aka retrieve), update (aka modify), or delete (aka destroy) operations. Read, update, and delete operations may be referred to as retrieve, modify, and destroy operations, respectively. In yet another example, in response to an offline compatible node connecting to an online node via a network, the offline compatible node is able to execute an algorithm (e.g., a mathematical algorithm) on information stored in the offline compatible node and / or data stored in the online node.
[0005] In the first example method, an offline-compatible node provides offline support for a database cluster comprising multiple nodes and the offline-compatible node. The multiple nodes and the offline-compatible node are configured to interconnect via a network. The multiple nodes are configured to synchronize with each other to store corresponding instances of second information. The offline-compatible node is configured to store (e.g., start or maintain storage) the first information while the offline-compatible node is temporarily not connected to the multiple nodes via the network. The offline-compatible node is also configured to connect to the multiple nodes via the network in response to the offline-compatible node not being connected to the multiple nodes via the network. The offline-compatible node is also configured to perform operations on the first information at least in part based on the offline-compatible node's connection to the multiple nodes via the network.
[0006] In the second example method, the offline compatible node provides offline support for a database cluster comprising multiple nodes and the offline compatible node. The multiple nodes and the offline compatible node are configured to interconnect via a network. The multiple nodes are configured to synchronize with each other to store corresponding instances of first information. In response to the offline compatible node being temporarily not connected to the multiple nodes via the network, the offline compatible node is configured to connect to the multiple nodes via the network. The offline compatible node is also configured to receive, at least partially in part, a portion of information from a first node among the multiple nodes, which is a portion of the first information stored by the multiple nodes when the offline compatible node was not connected to the multiple nodes via the network. This portion of the first information includes less than the entire first information. The offline compatible node is also configured to initiate the storage of this portion of information (e.g., in the offline compatible node's memory) at least partially in part in part in relation to the offline compatible node being connected to the multiple nodes via the network.
[0007] This summary is provided to introduce the selected concepts in a simplified form, which will be further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Furthermore, it should be noted that the invention is not limited to the specific embodiments described in the detailed description and / or other parts of this document. Such embodiments are presented herein for illustrative purposes only. Other embodiments will be apparent to those skilled in the art based on the teachings contained herein. Attached Figure Description
[0008] The accompanying drawings, which are incorporated herein and constitute a part of the specification, illustrate embodiments of the invention and, together with the specification, further serve to explain the principles involved and enable those skilled in the art to make and use the disclosed technology.
[0009] Figure 1 This is a block diagram of an example offline support database system according to an embodiment.
[0010] Figure 2 and Figure 4 A flowchart is depicted for an example method for providing offline support for a database cluster according to an embodiment.
[0011] Figure 3 and Figure 5 According to the embodiments Figure 1 The diagram shows a sample implementation of an offline compatible node.
[0012] Figure 6 This is a system diagram of an exemplary mobile device according to an embodiment.
[0013] Figure 7 An example computer that can implement the embodiments is depicted.
[0014] The features and advantages of the disclosed technology will become more apparent from the detailed description set forth below when taken in conjunction with the accompanying drawings, in which the same reference numerals identify corresponding elements throughout. In the drawings, the same reference numerals generally denote identical, functionally similar, and / or structurally similar elements. The first appearance of an element in a figure is indicated by the leftmost digit of the corresponding reference number. Detailed Implementation
[0015] I. Introduction
[0016] The following detailed description refers to the accompanying drawings illustrating exemplary embodiments of the present invention. However, the scope of the invention is not limited to these embodiments, but is defined by the appended claims. Therefore, embodiments other than those shown in the drawings, such as modifications of the illustrated embodiments, may still be covered by the present invention.
[0017] References to "an embodiment," "embodiment," or "example embodiment," etc., in the specification indicate that the described embodiment may include specific features, structures, or characteristics, but each embodiment does not necessarily include specific features, structures, or characteristics. Furthermore, such phrases do not necessarily refer to the same embodiment. Additionally, when a specific feature, structure, or characteristic is described in connection with an embodiment, it is believed that implementing such a feature, structure, or characteristic in conjunction with other embodiments (whether explicitly described or not) is within the knowledge of those skilled in the art.
[0018] Descriptors such as “first,” “second,” and “third” are used to refer to some of the elements discussed herein. Such descriptors are used to facilitate the discussion of exemplary embodiments and do not indicate a desired order of the referenced elements unless explicitly stated herein that such an order is required.
[0019] II. Example Implementation
[0020] The embodiments described herein provide offline support for database clusters. For example, a database cluster may include online nodes and one or more offline compatible nodes. Online nodes are nodes that are synchronized with each other and store their respective information instances. Offline compatible nodes in the database cluster are nodes capable of performing information-related operations (i.e., tasks) in response to (e.g., based on) an offline compatible node's connection to an online node via a network, the information being stored by the offline compatible node when it is not connected to an online node in the database cluster via the network. For example, offline compatible nodes may have unreliable and / or inconsistent (e.g., periodic) connections to online nodes via the network.
[0021] For example, in response to an offline compatible node connecting to an online node via a network, the offline compatible node may be able to copy information stored on the offline compatible node to one or more online nodes and / or copy data stored on the online node to the offline compatible node. In one aspect of this example, information generated or received by the offline compatible node for storage when the offline compatible node is not connected to an online node via a network may be copied to one or more online nodes based on (e.g., at least in part) the offline compatible node's connection to the online node. In another aspect of this example, information generated or received by any one or more online nodes for storage when the offline compatible node is not connected to an online node via a network may be copied to the offline compatible node based on the offline compatible node's connection to the online node. In another example, in response to an offline compatible node connecting to an online node via a network, the offline compatible node may be able to perform CRUD operations on information stored by the offline compatible node and / or cause CRUD operations to be performed on information stored on the online node. In yet another example, in response to an offline compatible node connecting to an online node via a network, the offline compatible node may be able to perform algorithms (e.g., mathematical algorithms) on information stored on the offline compatible node and / or information stored on the online node.
[0022] The exemplary techniques described herein offer several advantages over conventional techniques for storing information in a database cluster. For example, the exemplary techniques enable each of one or more nodes in a database cluster to perform operations on (e.g., regarding) information stored by that node while it was not connected to other nodes in the database cluster, based on its connection (e.g., reconnection) to another node. The exemplary techniques enable each of one or more nodes in a database cluster to generate or receive information for storage thereon when it is not connected to other nodes in the database cluster. The exemplary techniques enable a node in a database cluster to copy information generated or received by other nodes in the database cluster to that node for storage based on its connection to other nodes. The exemplary techniques enable each of one or more nodes in a database cluster to perform CRUD operations on information stored on that node or data stored on other nodes in the database cluster based on its connection to other nodes. The exemplary techniques enable each of one or more nodes in a database cluster to perform algorithms on information stored on that node and / or data stored on other nodes in the database cluster based on its connection to other nodes.
[0023] Exemplary techniques enable each database cluster associated with a database to be configured to coordinate data based on the database's use cases and according to appropriate coordination techniques. For example, a first database cluster can coordinate data stored therein according to a first coordination technique; a second database cluster can coordinate data stored therein according to a second coordination technique, and so on. According to this example, the first coordination technique can prioritize data stored on offline compatible nodes in the database cluster over data stored on online nodes in the database cluster, and the second coordination technique can prioritize data stored on online nodes in the database cluster over data stored on offline compatible nodes in the database cluster. Therefore, based on an offline compatible node being connected to an online node, an offline compatible node in the first database cluster can, according to the first coordination technique, copy information generated or received by the offline compatible node for storage when not connected to an online node in the first database cluster to one or more online nodes. Conversely, based on an offline compatible node being connected to an online node, an offline compatible node in the second database cluster can, according to the second coordination technique, copy information generated or received by an online node in the second database cluster for storage to the offline compatible node.
[0024] It is possible to plan and predict how offline or online nodes in a database cluster interact with the database when an offline compatible node is not connected to an online node. For example, information that can be added to or changed to an offline or online compatible node when it is not connected to an online node can be known before such information is added or changed. Based on this example, additions or changes can be predicted based on the same or similar additions or changes made in the past when the offline compatible node was not connected to the online node. Coordination techniques can be selected for the database cluster based on such knowledge.
[0025] By implementing the example techniques described herein, all nodes in a database cluster do not necessarily need to include the same information. For example, offline compatible nodes in a database cluster can include a portion (i.e., less than all) of the information stored by online nodes in the database cluster, which allows for faster replication and / or coordination of information stored in the database cluster compared to conventional techniques used to store information in a database cluster.
[0026] The example technology can provide multiple entry points to the database for each database cluster. For instance, each offline compatible node in the database cluster can serve as an entry point, and at least one online node in the database cluster can also serve as an entry point. Each entry point is capable of loading and / or modifying information in the database.
[0027] The example techniques can reduce the amount of time and / or resources (e.g., processors, memory, network bandwidth) consumed in replicating and / or reconciling data within a database cluster. For instance, by enabling offline compatible nodes in a database cluster to store only a portion (or none) of the information stored by online nodes in the cluster, the offline compatible nodes can perform fewer operations to replicate and / or reconcile data. By performing fewer operations, offline compatible nodes consume fewer processing cycles, less memory, and less network bandwidth.
[0028] The example techniques can reduce the cost of replicating and / or reconciling data by reducing the time and / or resources consumed in replicating and / or reconciling data within a database cluster. For example, each part of the data stored on each node of a database cluster has associated costs. By limiting the data stored on offline compatible nodes to include only a portion (or none) of the data stored on online nodes, the example embodiments can reduce the cost of storing data in a database cluster. The example techniques can improve the efficiency of computing systems used for storing, replicating, and / or reconciling data in a database cluster.
[0029] Figure 1 This is a block diagram of an example offline support database system 100 according to an embodiment. Generally, the offline support database system 100 operates to provide information to a user in response to a request received from the user (e.g., a Hypertext Transfer Protocol (HTTP) request). The information may include documents (e.g., web pages, images, audio files, video files, etc.), the output of executable files, and / or any other suitable type of information. According to the example embodiment described herein, the offline support database system 100 provides offline support for a cluster of databases(s).
[0030] like Figure 1 As shown, the offline support database system 100 includes multiple user devices 102A-102M, a network 104, and multiple nodes 106A-106N. Communication between the user devices 102A-102M and the nodes 106A-106N is performed on the network 104 using a known network communication protocol. The network 104 can be a wide area network (e.g., the Internet), a local area network (LAN), another type of network, or a combination thereof.
[0031] User equipment 102A-102M is a processing system capable of communicating with nodes 106A-106N. An example of a processing system is a system including at least one processor capable of manipulating data according to a set of instructions. For example, the processing system could be a computer, a personal digital assistant, etc. User equipment 102A-102M is configured to make a request to nodes 106A-106N to request information stored on nodes 106A-106N (or otherwise accessible via nodes 106A-105N). For example, a user can initiate a request (also called an access request) to access information based on data stored in database 108 hosted by any one or more nodes 106A-106N. The user can initiate the request for access to such information using a client (e.g., a web browser, web crawler, or other type of client) deployed on user equipment 102, which is owned by the user or otherwise accessible to the user. According to some exemplary embodiments, user equipment 102A-102M can access a domain (e.g., a website) hosted by nodes 106A-106N, enabling user equipment 102A-102M to access information available via the domain. Such a domain may include web pages, which may be provided as Hypertext Markup Language (HTML) documents and objects (e.g., files) linked therein.
[0032] User equipment 102A-102M may include any client-enabled system or device, including but not limited to desktop computers, laptop computers, tablet computers, wearable computers such as smartwatches or head-mounted computers, personal digital assistants, cellular phones, Internet of Things (IoT) devices, etc. It will be appreciated that any one or more user equipment 102A-102M may communicate with any one or more nodes 106A-106N.
[0033] Each of nodes 106A-106N includes one or more servers. Each server is a processing system capable of communicating with user devices 102A-102M. Nodes 106A-106N are configured to execute computer programs that provide information to users in response to receiving requests from users. For example, the information may include documents (e.g., web pages, images, audio files, video files, etc.), the output of executable files, or any other suitable type of information. According to some exemplary embodiments, nodes 106A-106N are configured to host various websites, enabling users of the offline support database system 100 to access these websites.
[0034] One or more nodes among nodes 106A-106N host database 108. Database 108 is an organized collection of information (e.g., data). Database 108 can be any suitable type of database, including but not limited to relational databases, entity-relational databases, object databases, object-relational databases, Extensible Markup Language (XML) databases, etc.
[0035] One or more nodes in nodes 106A-106N host a database management system (DBMS) 116. DBMS 116 performs database jobs on database 108; controls access to information in database 108; provides functions for inputting, storing, and retrieving information in database 108; and provides methods for managing how information is organized in database 108. Some of the functions provided by DBMS 116 for managing database 108 and the information therein can be grouped as follows: (1) creating, modifying, and deleting definitions that define how information is organized in database 108; (2) inserting, modifying, and deleting information in database 108; (3) constructing data in a form directly usable by users and / or (multiple) applications of user devices 102A-102M; and (4) managing database 108. Management of database 108 may include, for example, registering and monitoring users of database 108, enhancing the security of information in database 108, monitoring the performance of database 108, and recovering from failures of database jobs performed on database 108. DMBS 116 can interact with users of user equipment 102A-102M, database 108 and / or computer programs (e.g., applications) running on user equipment 102A-102M and / or nodes 106A-106N to perform its functions.
[0036] Nodes 106A-106N can be classified among clusters 108A-108N. For example, in Figure 1 In this embodiment, nodes 106A-106N are categorized such that (multiple) first nodes 106A are included in a first database cluster 108A, (multiple) second nodes 106B are included in a second database cluster 108B, and so on. The (multiple) first nodes 106A include multiple online nodes 110 and offline compatible nodes 112. The online nodes 110 are configured to synchronize with each other to store their respective information instances. Each online node 110 can be a physical machine or a virtual machine.
[0037] Offline compatible node 112 is capable of disconnecting from online node 110 and reconnecting (e.g., reconnecting) to online node 110 via network 104. Offline compatible node 112 includes offline support logic 114. Offline support logic 114 is configured to perform operations on information stored in offline compatible node 112 and / or information stored in one or more nodes of online node 110 when offline compatible node 112 connects to online node 110 via network 104. For example, offline support logic 114 may be configured to (A) copy information from online node 110 to offline compatible node 112, and / or copy information from offline compatible node 112 to one or more online nodes 110, (B) perform CRUD operations on information stored in offline compatible node 112 and / or information stored in online node 110, and / or (C) execute algorithms on information stored in offline compatible node 112 and / or information stored in online node 110 when offline compatible node 112 connects to online node 110 via network 104.
[0038] In the first example implementation, offline support logic 114 stores (e.g., initiates or maintains storage) information in the offline compatible node 112 (e.g., in the memory of the offline compatible node 112) while the offline compatible node 112 is temporarily not connected to the online node 110 via network 104. Offline support logic 114 is also configured to connect the offline compatible node 112 to the online node 110 via network 104 in response to the offline compatible node 112 not being connected to the online node 110 via network 104. Offline support logic 114 is also configured to perform operations on the information based at least in part on the offline compatible node 112 being connected to the online node 110 via network 104.
[0039] In the second example implementation, offline support logic 114 is configured to connect offline compatible node 112 to online node 110 via network 104 in response to offline compatible node 112 not being temporarily connected to online node 110 via network 104. Offline support logic 114 is also configured to receive an information portion from a first node included in online node 110, at least in part, based on offline compatible node 112 being connected to online node 110 via network 104. This information portion is stored by online node 110 during the period when offline compatible node 112 was not connected to online node 110 via network 104. This information portion includes less than all the information stored by online node 110. Offline support logic 114 is also configured to initiate storage of the information portion in offline compatible node 112 at least in part based on offline compatible node 112 being connected to online node 110 via network 104.
[0040] Offline support logic 114 can be implemented in various ways to provide offline support for the database cluster, including in hardware, software, firmware, or any combination thereof. For example, offline support logic 114 can be implemented as computer program code configured to execute in one or more processors. In another example, offline support logic 114 can be implemented as hardware logic / circuit. For example, offline support logic 114 can be implemented in a field-programmable gate array (FPGA), application-specific integrated circuit (ASIC), application-specific standard product (ASSP), system-on-a-chip (SoC), complex programmable logic device (CPLD), etc. Each SoC may include an integrated circuit chip that includes one or more of the following: a processor (e.g., a microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and / or other circuitry and / or embedded firmware that performs its functions.
[0041] For illustrative purposes only, online node 110 and offline compatible node 112 are shown as being included in the first database cluster 108A. It will be appreciated that any one or more of clusters 108A-108N may include online nodes and (multiple) offline compatible nodes. For illustrative purposes only, the first database cluster 108A is shown as including a single offline compatible node 112. It will be appreciated that each cluster may include any suitable number (e.g., 0, 1, 2, 3, etc.) of offline compatible nodes.
[0042] Figure 2 A flowchart 200 depicts an example method for providing offline support for a database cluster according to an embodiment, the database cluster including online nodes and offline-compatible nodes configured to be interconnected via a network. Flowchart 200 may be derived from... Figure 1 The offline compatible node 112 shown is executed. For illustrative purposes, this is for... Figure 3 The offline compatible node 300 shown in flowchart 200 describes a process flow diagram. The offline compatible node 300 includes offline support logic 314 and storage 310. Offline support logic 314 includes storage logic 302, connection logic 304, operation logic 306, and determination logic 308. Storage 310 can be any suitable type of storage. For example, storage 310 can be a database. Based on the discussion of flowchart 200, other structural and operational embodiments will be apparent to those skilled in the art.
[0043] like Figure 2As shown, the method in flowchart 200 begins at step 202. In step 202, while the offline compatible node is not temporarily connected to the online node, the offline compatible node stores first information, and the online nodes are configured to synchronize with each other via the network to store corresponding instances of second information. In the example implementation, storage logic 302 stores the first information 320 in storage 310 while the offline compatible node 300 is not temporarily connected to the online node via the network.
[0044] In step 204, in response to the offline compatible node not being connected to the online node via the network, the offline compatible node connects to the online node via the network. In the example implementation, in response to the offline compatible node 300 not being connected to the online node via the network, the connection logic 304 connects the offline compatible node 300 to the online network node via the network. According to this implementation, the connection logic 304 may generate a connection notification 316 to indicate (e.g., specify) that the offline compatible node 300 connects to the online node via the network.
[0045] In step 206, operations regarding the first information are performed, at least in part, based on the offline compatible node's connection to the online node via a network connection (e.g., reconnection). The first information may include one or more specified columns, one or more specified rows, and / or one or more tables in the database. In the example implementation, operation logic 306 performs operations regarding the first information 320, at least in part, based on the offline compatible node 300's connection to the online node via a network. For example, operation logic 306 may perform operations regarding the first information 320 in response to receiving a connection notification 316 (e.g., a connection notification 316 instructing the offline compatible node 300 to connect to the online node via a network).
[0046] In an example embodiment, the database schema of the database associated with the database cluster defines that offline compatible nodes can perform operations related to the first information because they are connected to online nodes via a network. According to this embodiment, performing the operation in step 206 includes performing the operation on the first information at least in part based on the database schema of the database, which defines that offline compatible nodes can perform operations on the first information because they are connected to online nodes via a network.
[0047] In another example embodiment, instructions executed for a database associated with a database cluster define an offline compatible node as capable of performing operations related to the first information due to the offline compatible node's connection to an online node via a network. According to this embodiment, performing the operation at step 206 includes performing the operation regarding the first information at least in part based on instructions executed for the database, which define the offline compatible node as capable of performing the operation regarding the first information due to the offline compatible node's connection to an online node via a network. In one aspect of this embodiment, the database schema may specify that no operation is performed on the first information in response to the offline compatible node connecting to an online node via a network. According to this aspect, the priority of instructions executed for the database may be greater than the priority of the database schema.
[0048] In yet another example embodiment, at least in part, a specified node is selected as an offline-compatible node from a corpus of nodes in the database cluster, based on a use case of the database cluster. The use case of the database cluster indicates the type of scenario in which the database is used. One example of a use case is an airline scenario. In an airline scenario, the offline-compatible node may be located on an aircraft, while the online node may be located on land (e.g., at or near an airport). Another example of a use case is a drone scenario. In a drone scenario, the offline-compatible node may be located on a drone, while the online node may be located on land. Another example of a use case is a ship scenario. In a ship scenario, the offline-compatible node may be located on a ship, and each online node may be located on land or on another ship. Another example of a use case is a space scenario. In a space scenario, the offline-compatible node may be located on a spacecraft, and each online node may be located on an object on Earth or in outer space (e.g., a space station).
[0049] In an example embodiment, performing the operation at step 206 includes, at least in part, performing a CRUD operation on the first information stored by the offline compatible node, based on the offline compatible node's connection to the online node via a network. For example, the CRUD operation may include creating, reading, updating, and / or deleting one or more entries, one or more rows, one or more columns, and / or one or more tables of the first information. In another example, the CRUD operation may include deleting all of the first information from the offline compatible node.
[0050] In another example embodiment, performing the operation at step 206 includes, at least in part, based on an offline compatible node connected to the online node via a network, performing a CRUD operation on the second information stored by the online node. For example, a creation operation may be performed to create first information (or a portion thereof) on one or more online nodes. For example, a creation operation may be performed to store first information other than the second information on one or more online nodes. In another example, an update operation may be performed to modify one or more instances of the second information stored by one or more corresponding online nodes to include the first information. For example, an update operation may be performed to merge the first information into one or more instances of the second information.
[0051] In yet another example embodiment, performing the operation at step 206 includes performing an algorithm (e.g., a mathematical algorithm) on at least the first information to generate derived information. For example, performing the algorithm may include analyzing and manipulating the first information. According to this embodiment, performing the operation at step 206 also includes causing the derived information to be stored by an offline compatible node and / or one or more online nodes, the online nodes being at least partially based on offline compatible nodes connected to the online nodes via a network. For example, performing the operation at step 206 may include causing the derived information to be merged into second information stored by the online nodes. In aspects of this embodiment, performing the operation at step 206 may include performing an algorithm on at least a portion of at least the first information and the second information stored by the online nodes to generate the derived information. For example, performing the algorithm may include adding a first number from the first information to a second number from the second information to generate derived information that includes a third number, the third number being the sum of the first and second numbers.
[0052] In yet another example embodiment (referred to herein as the "copying embodiment"), the operation performed at step 206 includes, at least in part, copying the first information to one or more online nodes by having one or more corresponding instances of the first information stored on one or more online nodes, based on an offline compatible node connected to an online node via a network. Further details regarding the copying embodiment are provided in the discussion below.
[0053] In some example embodiments, one or more steps 202, 204, and / or 206 of flowchart 200 may not be performed. Furthermore, steps other than or replacing steps 202, 206 may be performed. For example, in an example embodiment, the method of flowchart 200 further includes determining whether to perform an operation on first information based at least in part on use cases of the database cluster. According to this embodiment, a first use case of the database cluster indicates that an operation should be performed on the first information, and a second use case of the database cluster indicates that no operation should be performed on the first information. For example, determining logic 308 may determine whether to perform an operation on first information 320 based at least in part on use case information 312 (e.g., at least in part on the use case indicated by use case information 312). According to this example, determining logic 308 may generate an operation instruction 318 based on the use case indicated by use case information 312. Further according to this example, determining logic 308 is configured to generate an operation instruction 318 based on use case information 312 indicating the first use case, to indicate that an operation should be performed on first information 320. The determination logic 308 is also configured not to generate an operation instruction 318, or to generate an operation instruction 318 indicating that no operation should be performed on the first information 320, based on the use case information 312 indicating the second use case. According to this embodiment, in step 206, the operation is performed at least in part based on the use case of the database cluster that is the first use case (e.g., rather than the second use case). For example, the operation logic 306 may perform an operation on the first information 320 based on the operation instruction 318, which indicates that an operation should be performed on the first information 320.
[0054] As described above, in the replication embodiment, performing the operation regarding the first information in step 206 includes, at least in part, replicating the first information to one or more online nodes by causing (e.g., triggering) one or more corresponding instances of the first information stored on one or more online nodes, based on the offline compatible node's connection to the online node via a network connection (e.g., reconnection). For example, the first information can be replicated to one or more online nodes based on the offline compatible node's higher priority than the online node's priority. According to this example, the priorities of the offline compatible node and the online node can be established by the schema of the database associated with the database cluster or by instructions executed against the database (e.g., user-generated instructions). The first information can be replicated to all online nodes or fewer than all online nodes.
[0055] In the example implementation, operation logic 306 replicates the first information 320 to one or more online nodes by causing one or more online nodes to store one or more corresponding instances of the first information, at least in part, based on an offline compatible node 300 connected to the online nodes via a network. For example, operation logic 306 may replicate the first information 320 to one or more online nodes in response to receiving a connection notification 316 (e.g., at least in part based on a connection notification 316 instructing the offline compatible node 300 to connect to the online nodes via a network). Operation logic 306 may retrieve the first information 320 from storage 310. Operation logic 306 may cause one or more online nodes to store one or more corresponding instances of the first information in any of a variety of ways. For example, operation logic 306 may provide the first information 320 to a DBMS, which then forwards the first information 320 to one or more online nodes. In another example, operation logic 306 may provide the first information 320 directly to one or more online nodes (e.g., without passing the first information 320 through a DBMS). In yet another example, operation logic 306 may provide an explicit instruction to one or more online nodes instructing them to store the first information 320. In yet another example, providing the first information 320 (directly or indirectly) to one or more online nodes can serve as an implicit instruction for one or more online nodes to store the first information 320.
[0056] In one aspect of the replication embodiment, copying the first information to one or more online nodes at step 206 may include preventing each online node not included in the one or more online nodes from storing a corresponding instance of the first information in response to an offline compatible node connecting to the online node via a network.
[0057] In another aspect of the replication embodiment, copying the first information to one or more online nodes at step 206 may include at least partially based on offline compatible nodes connected to the online nodes via a network, such that one or more online nodes store one or more corresponding instances of the first information in addition to storing one or more corresponding instances of the second information. According to this aspect, copying the first information to one or more online nodes at step 206 may also include preventing each online node not included in the one or more online nodes from storing an instance of the first information in addition to storing a corresponding instance of the second information.
[0058] In another aspect of the replication embodiment, a designated node can be selected as an offline compatible node from a corpus (e.g., set or group) of nodes in the database cluster, at least in part, based on the use case of the database cluster. In the airline use case, the offline compatible node can be located on an aircraft, while the online node can be located on land (e.g., at or near an airport). According to this use case, the first information may include flight records (e.g., from the aircraft's black box) and information about the aircraft's food and beverage inventory, passengers on the aircraft (e.g., mobility assistance requests, seat locations, identities of individuals involved in interference or potential crimes), the amount of fuel remaining on the aircraft, and other analyses about the flight or the aircraft. For example, when the offline compatible node is not connected to the online node via a network (e.g., during flight), the pilot(s) and / or flight attendants(s) on the flight can generate and / or update at least some (e.g., all) of the first information. In the drone use case, the offline compatible node can be located on the drone, while the online node can be located on land. According to this use case, the first information may include video images captured by the drone(s) on the drone, the drone's flight path, the drone's remaining battery power, and other analyses about the flight or the drone.
[0059] In another aspect of the replication embodiment, the database schema of the database associated with the database cluster and / or instructions executed against the database (e.g., user-generated instructions) may indicate that information stored by offline compatible nodes has a higher priority than data stored by online nodes (i.e., information stored by offline compatible nodes has a higher priority than information stored by online nodes). According to this embodiment, replicating the first information to one or more online nodes may include at least in part based on the database schema and / or instructions indicating that information stored by offline compatible nodes has a higher priority than information stored by online nodes.
[0060] In one aspect of the replication embodiment, the method of flowchart 200 may further include modifying a portion of information stored by an offline compatible node when the offline compatible node is temporarily not connected to multiple nodes via the network to provide first information. The information portion is a part of second information stored by an online node. For example, when the offline compatible node 300 is temporarily not connected to an online node via the network, storage logic 302 may modify the portion of information stored by the offline compatible node 300 to provide first information 320. According to this aspect, copying the first information to one or more online nodes in step 206 may include: at least in part based on the offline compatible node's connection to the online node via the network, causing one or more online nodes to replace one or more corresponding instances of that portion of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information. Further according to this aspect, copying the first information to one or more online nodes in step 206 may also include not causing each online node not included in one or more online nodes to store an instance of the first information and a corresponding instance of the second information.
[0061] In an example of this aspect, the database schema of the database associated with the database cluster defines an offline compatible node as capable of modifying a portion of information stored by the offline compatible node when it is temporarily not connected to an online node via the network to provide first information. In response to an offline compatible node connected to an online node via the network, the database schema can further define the offline compatible node to provide the modified information to one or more online nodes. According to this example, in response to an offline compatible node connected to an online node via the network, the database schema specifies that one or more instances of a portion of one or more corresponding instances of second information stored by one or more corresponding online nodes will be replaced by one or more corresponding instances of first information. For example, in response to an offline compatible node connected to an online node via the network, the database schema can define one or more online nodes to replace one or more instances of a portion of one or more corresponding instances of second information stored by one or more online nodes with one or more corresponding instances of first information. According to this example, in response to an offline compatible node connected to an online node via the network, at least in part based on the database schema specifying that one or more instances of that portion of one or more corresponding instances of second information stored by one or more corresponding online nodes will be replaced with one or more corresponding instances of first information, it is possible to execute an action causing one or more online nodes to replace one or more corresponding instances of that portion of the one or more corresponding instances of second information stored by one or more corresponding online nodes.
[0062] In another example of this aspect, the modification of a portion of information stored by an offline compatibility node while the offline compatibility node is temporarily not connected to an online node via the network is performed at least in part based on instructions executed against the database associated with the database cluster. These instructions define that the offline compatibility node is capable of modifying a portion of information stored by the offline compatibility node while it is temporarily not connected to an online node via the network. According to this example, causing one or more online nodes to replace one or more corresponding instances of a portion of the second information stored by one or more corresponding online nodes is performed at least in part based on instructions specifying that, in response to an offline compatibility node connected to an online node via the network, one or more instances of a portion of the second information stored by one or more corresponding online nodes will be replaced with one or more corresponding instances of the first information. In one implementation, the database schema may specify that, in response to an offline compatibility node connected to an online node via the network, one or more instances of a portion of the second information stored by one or more corresponding online nodes are not replaced with one or more corresponding instances of the first information. According to this implementation, it is also possible to execute, at least in part, instructions executed against the database that have a higher priority than the database schema, to replace one or more instances of one or more instances of one or more instances of one or more instances of one or more instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information.
[0063] In another example of this aspect, first information stored by offline compatible nodes has a first priority, while a portion of second information stored by online nodes has a second priority. According to this example, the process of having one or more online nodes replace a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information, based at least in part on the premise that the first priority is greater than the second priority, is also performed.
[0064] In another example of this aspect, the first information stored by the offline compatible node has a first timestamp indicating a first time when the offline compatible node stored the first information, and a portion of the second information stored by the online node has a second timestamp indicating a second time when the online node stored the second information. According to this example, at least in part, based on the fact that the second time indicated by the second timestamp precedes the first time indicated by the first timestamp, one or more corresponding instances of the second information stored by one or more corresponding online nodes are performed to replace a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information.
[0065] In another example of this aspect, it is determined that first information stored by an offline compatible node has changed a first range relative to reference information. For example, the reference information may be a portion of the information. For example, determination logic 308 may determine that the first information 320 has changed a first range. According to this example, it is determined that a portion of second information stored by an online node has changed a second range relative to reference information. For example, determination logic 308 may determine that the second information has changed a second range. Further according to this example, further, at least in part based on the first range being greater than the second range, an action is taken to cause one or more online nodes to replace one or more corresponding instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information.
[0066] In another example of this, a query is provided to a user of a database cluster. The query requests the user to choose between: (1) replacing one or more instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information, and (2) not replacing one or more instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information. For example, determination logic 308 may provide the query to the user. According to this example, further, at least in part based on the user's selection to replace one or more instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information, the determination logic 308 performs an operation instruction 318 at least in part based on the response to the query, indicating that one or more instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes will be replaced by one or more corresponding instances of the first information. In the example implementation, determination logic 308 receives a response to the query. According to this implementation, determination logic 308 generates an operation instruction 318 at least in part based on the response to the query, indicating that one or more instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes will be replaced by one or more corresponding instances of the first information. Further according to this implementation, the operation logic 306 is based at least in part on the operation instruction 318 indicating that one or more instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes will be replaced by one or more corresponding instances of the first information, so that one or more online nodes replace one or more corresponding instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding online nodes with one or more corresponding instances of the first information.
[0067] In another aspect of the replication embodiment, the method of flowchart 200 may further include deleting the first information from the offline compatible node in response to one or more corresponding instances of causing one or more online nodes to store the first information, based at least in part on the knowledge that the offline compatible node will disconnect from the online node via the network. For example, the first information may be deleted from the offline compatible node in the event of an anticipated event. The known event may cause the offline compatible node to disconnect from the online node via the network, or has a probability greater than or equal to a probability threshold. The event may be the next air flight, drone flight, ship launch, or spacecraft launch. In the example implementation, in response to one or more corresponding instances of causing one or more online nodes to store the first information 320, storage logic 302 deletes the first information 320 from storage 310 based at least in part on the knowledge that the offline compatible node 300 will disconnect from the online node via the network. According to this aspect, the method of flowchart 200 may include not deleting the first information from the online node as a result (e.g., a consequence) of the knowledge that the offline compatible node will become disconnected from the online node via the network. In the example implementation, as a result of the above knowledge, storage logic 302 does not delete the first information 320 from the online node.
[0068] In another aspect of the replication embodiment, the method of flowchart 200 may further include determining, at least in part, whether first information stored by an offline compatible node should be replicated to one or more online nodes based on use cases of the database cluster. According to this aspect, a first use case of the database cluster may indicate that the first information stored by the offline compatible node will be replicated to one or more online nodes, and a second use case of the database cluster may indicate that the first information stored by the offline compatible node will not be replicated to one or more online nodes. For example, determining logic 308 may determine, at least in part, whether first information 320 stored in storage 310 should be replicated to one or more online nodes based on use case information 312 (e.g., at least in part based on the use case indicated by use case information 312). According to this example, determining logic 308 may generate operation instruction 318 based on the use case indicated by use case information 312. Further according to this example, determining logic 308 is configured to generate operation instruction 318 based on use case information 312 indicating the first use case, to indicate that the first information will be replicated to one or more online nodes. The determination logic 308 is also configured to either not generate an operation instruction 318 or generate an operation instruction 318 based on the use case information 312 indicating the second use case, to indicate that the first information is not copied to one or more online nodes. According to this aspect, copying the first information to one or more online nodes at step 206 may include at least partially based on a use case of the database cluster (e.g., rather than the second use case), causing one or more online nodes to store one or more corresponding instances of the first information. For example, the operation logic 306 may, based on the operation instruction 318 indicating that the first information will be copied to one or more online nodes, cause one or more online nodes to store one or more corresponding instances of the first information.
[0069] It will be recognized that the offline-compatible node 300 may not include one or more of the storage logic 302, connection logic 304, operation logic 306, determination logic 308, storage 310, and / or offline support logic 314. Furthermore, the offline-compatible node 300 may include components other than the storage logic 302, connection logic 304, operation logic 306, determination logic 308, storage 310, and / or offline support logic 314, or components that replace the storage logic 302.
[0070] Figure 4 A flowchart 400 depicts another example method for providing offline support for a database cluster according to an embodiment, the database cluster including online nodes and offline-compatible nodes configured to be interconnected via a network. Flowchart 400 may be derived from... Figure 1 The offline compatible node 112 shown is executed. For illustrative purposes, this is for... Figure 5The offline compatible node 500 shown in flowchart 400 describes a process flow diagram. The offline compatible node 500 includes offline support logic 514 and storage 510. Offline support logic 514 includes storage logic 502, connection logic 504, and determination logic 508. Storage 510 can be any suitable type of storage. For example, storage 510 can be a database. Based on the discussion of flowchart 400, other structural and operational embodiments will be apparent to those skilled in the art.
[0071] like Figure 4 As shown, the method in flowchart 400 begins at step 402. In step 402, in response to the offline compatible node not being temporarily connected to the online node via the network, the offline compatible node connects to the online node via the network, and the online nodes are configured to synchronize with each other to store corresponding instances of first information. In the example implementation, in response to the offline compatible node 500 not being temporarily connected to the online node via the network, connection logic 504 connects the offline compatible node 500 to the online network via the network. According to this implementation, connection logic 504 may generate a connection notification 516 to indicate (e.g., specify) that the offline compatible node 500 connects to the online node via the network.
[0072] In step 404, based at least in part on the offline compatible node being (e.g., becoming) connected to the online node via a network, the offline compatible node receives a portion of information from the first node of the online node. This portion of information is a part of first information whose storage was initiated by the online node when the offline compatible node was not connected to the online node via the network (e.g., due to loss of connection to the online node via the network). This portion of the first information includes less than the entire first information. In an example implementation, storage logic 502 receives a portion of information 522 from the first node of the online node based at least in part on the offline compatible node 500 being connected to the online node via the network. According to this implementation, the information portion 522 is a portion of the first information that the online node initiated the storage of when the offline compatible node 500 was not connected to the online node via the network.
[0073] In step 406, the storage of the information portion is initiated (e.g., triggered) by the offline compatible node, at least in part, based on the offline compatible node's connection (e.g., reconnection) to the online node via a network connection. For example, the storage of the information portion may be initiated based on the online node's higher priority than the offline compatible node's priority. According to this example, the priorities of the offline compatible node and the online node can be established by the schema of the database associated with the database cluster or by instructions executed against the database (e.g., user-generated instructions). Initiating the storage of the information portion may involve copying the information portion to the offline compatible node. The information portion may include one or more specified columns of the database, one or more specified rows of the database, and / or one or more tables of the database. In the example implementation, storage logic 502 initiates the storage of the information portion 522, at least in part, based on the offline compatible node 500's connection to the online node via a network. For example, storage logic 502 may initiate the storage of the information portion 522 in response to receiving a connection notification 516 (e.g., at least in part based on a connection notification 516 instructing the offline compatible node 500 to connect to the online node via a network).
[0074] In the example implementation, at least in part based on the use case of the database cluster, a specified node is selected from the node corpus of the database cluster as an offline compatible node.
[0075] In some example embodiments, one or more steps 402, 404, and / or 406 of flowchart 400 may not be performed. Furthermore, steps other than or replacing steps 402, 404, and / or 406 may be performed. For example, in an example embodiment, the method of flowchart 400 further includes having the offline compatible node store second information while the offline compatible node is temporarily not connected to the online node via the network. For example, when the offline compatible node 500 is temporarily not connected to the online node via the network, storage logic 502 may store second information 524 in storage 510.
[0076] In this embodiment, initiating the storage of the information portion by the offline compatible node may include at least partially based on the offline compatible node being connected to the online node via a network, and the offline compatible node storing the information portion in addition to storing the second information. For example, storage logic 502 may be based at least partially on the offline compatible node 500 connected to the online node via a network, storing the information portion 522 in storage 510 in addition to the second information 524.
[0077] In another aspect of this embodiment, the storage of the information portion initiated by the offline compatible node may include, at least in part, replacing the second information stored by the offline compatible node with the information portion based on the offline compatible node's connection to the online node via a network. For example, storage logic 502 may, at least in part, replace the second information 524 stored in storage 510 with the information portion 522 based on the offline compatible node 500's connection to the online node via a network.
[0078] In this example, the database schema of the database associated with the database cluster can define an offline compatible node as capable of temporarily connecting to an online node without a network connection, and further capable of connecting to an online node in response to the offline compatible node's temporary connection without a network connection. According to this example, the database schema can specify that, in response to an offline compatible node connecting to an online node via a network, the second information stored by the offline compatible node will be replaced with an information portion. For example, the database schema can define that the offline compatible node replaces the second information stored by the offline compatible node with an information portion in response to the offline compatible node connecting to an online node via a network. The database schema can also define that a first node provides the information portion to the offline compatible node in response to an offline compatible node connecting to an online node via a network. Further according to this example, replacing the second information stored by the offline compatible node with an information portion can be at least partially based on the database schema that specifies that, in response to the offline compatible node connecting to an online node via a network, the second information stored by the offline compatible node will be replaced with an information portion.
[0079] In another example of this aspect, the replacement of the second information stored by the offline compatible node with the information portion is performed at least in part based on the following: (1) an instruction executed for the database associated with the database cluster defines the offline compatible node as capable of being temporarily not connected to the online node via the network, and also capable of connecting to the online node in response to the offline compatible node being temporarily not connected to the online node via the network; and (2) an instruction is specified to replace the second information stored by the offline compatible node with the information portion in response to the offline compatible node being connected to the online node via the network. According to this example, the database schema of the database can specify that the second information stored by the offline compatible node is not replaced by the information portion. Further according to this example, the replacement of the second information stored by the offline compatible node with the information portion can be performed at least in part based on the fact that the instruction executed for the database has a higher priority than the priority of the database schema.
[0080] In another example of this, the database schema of the database associated with the database cluster and / or the instructions executed against the database indicate that information stored by online nodes has priority over data stored by offline compatible nodes. According to this example, it is possible to partially replace the second information stored by the offline compatible nodes with the information based at least in part on the database schema and / or the instructions indicating that information stored by online nodes has priority over information stored by offline compatible nodes.
[0081] In this example implementation, the information portion received by the offline-compatible node from the first node has a first priority, and the second information stored by the offline-compatible node has a second priority. According to this implementation, the second information stored by the offline-compatible node is further replaced with the information portion, at least in part, based on the fact that the first priority is greater than the second priority.
[0082] In another implementation of this example, the portion of information received by the offline-compatible node from the first node has a first timestamp indicating a first time when the portion of information was stored by the first node, and the second information stored by the offline-compatible node has a second timestamp indicating a second time when the second information was stored by the offline-compatible node. According to this implementation, the replacement of the second information stored by the offline-compatible node with the portion of information is performed, at least in part, based on the fact that the second time indicated by the second timestamp precedes the first time indicated by the first timestamp.
[0083] In another implementation of this example, it is determined that the portion of information received by the offline-compatible node from the first node has changed a first range relative to reference information. For example, determination logic 508 can determine that information portion 522 has changed the first range. According to this implementation, it is determined that the second information stored by the offline-compatible node has changed a second range relative to the reference information. For example, determination logic 508 can determine that the second information 524 has changed the second range. Further according to this implementation, at least in part based on the fact that the first range is greater than the second range, the replacement of the second information stored by the offline-compatible node with the information portion is further performed.
[0084] In another implementation of this example, a query is provided to a user of the database cluster. The query requests the user to choose between: (1) replacing the second information stored by the offline compatible node with the information portion, and (2) not replacing the second information stored by the offline compatible node with the information portion. For example, determination logic 508 may provide the query to the user. According to this implementation, further, at least in part based on the response to the query received from the user indicating that the user has chosen to replace the second information stored by the offline compatible node with the information portion, the replacement of the second information stored by the offline compatible node with the information portion is performed. For example, determination logic 508 may receive the response to the query. According to this example, determination logic 508 may generate a storage instruction 518 to instruct the replacement of the second information 524 stored in the storage 510 of the offline compatible node 500 with the information portion 522. Further according to this example, at least in part based on a storage instruction 518 that indicates that the second information 524 stored in the storage 510 of the offline compatible node 500 will be replaced with information portion 522, the storage logic 502 may replace the second information 524 stored in the storage 510 of the offline compatible node 500 with information portion 522.
[0085] In another example of this aspect, the method of flowchart 400 further includes determining whether an information portion should be copied from an online node to an offline compatible node, based at least in part on use cases of the database cluster. According to this example, a first use case of the database cluster indicates that the information portion will be copied from the online node to the offline compatible node, and a second use case of the database cluster indicates that the information portion should not be copied from the online node to the offline compatible node. In the example implementation, determination logic 508 may determine whether information portion 522 should be copied from the online node to the offline compatible node 500, based at least in part on use case information 512 (e.g., at least in part on the use case indicated by use case information 512). According to this implementation, determination logic 508 may generate a storage instruction 518 based on the use case indicated by use case information 512. Further according to this example, determination logic 508 is configured to generate a storage instruction 518 based on use case information 512 indicating the first use case, to indicate that information portion 522 will be copied from the online node to the offline compatible node 500. The determination logic 508 is also configured to: based on the use case information 512 indicating the second use case, either not generate a storage instruction 518 or generate a storage instruction 518 to indicate that the information portion 522 will not be replicated from the online node to the offline compatible node 500. According to this example, the storage of the information portion on the offline compatible node is initiated at least in part based on the fact that the use case of the database cluster is the first use case (e.g., not the second use case). For example, storage logic 502 could initiate the storage of the information portion 522 in storage 510 based on a storage instruction 518 indicating that the information portion 522 will be replicated from the online node to the offline compatible node 500.
[0086] The embodiments described herein are applicable to any suitable use case. For example, in an airline use case, the offline compatible node may be located on an aircraft, while the online node may be located on land (e.g., at or near an airport). According to this use case, the information section may include flight plans for upcoming flights (e.g., flight schedules), the scheduled duration of the upcoming flight, the inventory of food and beverages to be loaded onto the aircraft, a list of passengers and seat assignments on the aircraft, a list of passengers requesting mobility assistance (e.g., wheelchairs), safety information about one or more passengers, and the amount of fuel already (or to be) loaded onto the aircraft. In a drone use case, the offline compatible node may be located on a drone, while the online node may be located on land. According to this use case, the information section may include a predetermined flight path (e.g., a planned flight route) and information about the delivery to be made by the drone. The delivery information may indicate the weight of the package to be delivered, the scheduled delivery time, the estimated time to complete the delivery, the identity of the sender of the package, the identity of the recipient of the package, and the location of the destination to which the package is to be delivered (e.g., GPS coordinates).
[0087] It will be recognized that the offline compatible node 500 may not include one or more of the storage logic 502, connection logic 504, determination logic 508, storage 510, and / or offline support logic 514. Furthermore, the offline compatible node 500 may include components other than the storage logic 502, connection logic 504, determination logic 508, storage 510, and / or offline support logic 514, or components that replace the storage logic 502.
[0088] Figure 6 This is a system diagram of an exemplary mobile device 600, generally shown as 602, which includes various optional hardware and software components. Any component 602 in the mobile device can communicate with any other component, but not all connections are shown for illustration purposes. The mobile device 600 can be any of a variety of computing devices (e.g., mobile phone, smartphone, handheld computer, personal digital assistant (PDA), etc.) and can allow wireless bidirectional communication with one or more mobile communication networks 604 (e.g., cellular or satellite networks) or with a local area network or wide area network.
[0089] Mobile device 600 may include processor 610 (e.g., signal processor, microprocessor, ASIC, or other control and processing logic circuitry) for performing tasks such as signal encoding, data processing, input / output processing, power control, and / or other functions. Operating system 612 may control the allocation and use of component 602 and support for one or more applications 614 (also referred to as applications). Application 614 may include common mobile computing applications (e.g., email applications, calendars, contact managers, web browsers, messaging applications) and any other computing applications (e.g., word processing applications, mapping applications, media player applications).
[0090] Mobile device 600 may include memory 620. Memory 620 may include non-removable memory 622 and / or removable memory 624. Non-removable memory 622 may include RAM, ROM, flash memory, hard disk, or other known memory storage technologies. Removable memory 624 may include flash memory or a Subscriber Identity Module (SIM) card known in GSM communication systems, or other known memory storage technologies (such as a "smart card"). Memory 620 may store data and / or code for running operating system 612 and applications 614. Example data may include web pages, text, images, sound files, video data, or other datasets that will be sent to and / or received from one or more network servers or other devices via one or more wired or wireless networks. Memory 620 may store user identifiers such as International Mobile Subscriber Identity (IMSI) and device identifiers such as International Mobile Equipment Identity (IMEI). Such identifiers may be sent to network servers to identify users and devices.
[0091] Mobile device 600 may support one or more input devices 630, such as touchscreen 632, microphone 634, camera 636, physical keyboard 638 and / or trackball 640, and one or more output devices 650, such as speaker 652 and display 654. Touchscreens such as touchscreen 632 can detect input in different ways. For example, a capacitive touchscreen detects touch input when an object (e.g., a fingertip) twists or interrupts the current flowing through the surface. As another example, a touchscreen can use an optical sensor to detect touch input when a beam of light from an optical sensor is interrupted. Physical contact with the screen surface is unnecessary for some touchscreens to detect input. For example, as is well known in the art, touchscreen 632 may support finger hover detection using capacitive sensing. Other detection techniques may be used, including but not limited to camera-based detection and ultrasonic-based detection. To achieve finger hovering, the user's finger is typically positioned within a predetermined interval above the touchscreen, such as between 0.1 and 0.25 inches, or between 0.25 and 0.5 inches, or between 0.5 and 0.75 inches, or between 0.75 and 1 inch, or between 1 and 1.5 inches, and so on.
[0092] The mobile device 600 may include offline support logic 692. Offline support logic 692 is configured to provide offline support for the database cluster according to any one or more of the techniques described herein.
[0093] Other possible output devices (not shown) may include piezoelectric or other tactile output devices. Some devices may provide multiple input / output functions. For example, touchscreen 632 and display 654 may be combined in a single input / output device. Input device 630 may include a Natural User Interface (NUI). NUI is any interface technology that allows a user to interact with a device in a “natural” manner, free from the human constraints imposed by input devices such as mice, keyboards, remote controls, etc. Examples of NUI methods include methods relying on speech recognition, touch and stylus recognition, on-screen and near-screen gesture recognition, air gestures, head and eye tracking, speech and voice, vision, touch, gestures, and machine intelligence. Other examples of NUI include motion gesture detection using accelerometers / gyroscopes, facial recognition, 3D displays, head, eye, and gaze tracking, immersive augmented reality and virtual reality systems, all of which provide a more natural interface, as well as technologies that use electric field sensing electrodes (EEG and related methods) to sense brain activity. Thus, in a particular example, operating system 612 or application 614 may include speech recognition software as part of a voice control interface that allows a user to operate mobile device 600 via voice commands. In addition, the mobile device 600 may include input devices and software, such as detecting and interpreting gestures to provide input to gaming applications.
[0094] As is well known in the art, the (multiple) wireless modems 670 may be coupled to (multiple) antennas (not shown) and may support bidirectional communication between the processor 610 and external devices. The (multiple) wireless modems 670 are generally shown and may include a cellular modem 676 for communicating with a mobile communication network 604 and / or other radio-based modems (e.g., Bluetooth® 674 and / or Wi-Fi 672). At least one of the (multiple) wireless modems 670 is typically configured to communicate with one or more cellular networks, such as a GSM network for data and voice communication within a single cellular network, between cellular networks, or between a mobile device and the Public Switched Telephone Network (PSTN).
[0095] The mobile device may also include at least one input / output port 680, a power supply 682, a satellite navigation system receiver 684 (such as a Global Positioning System (GPS) receiver), an accelerometer 686, and / or a physical connector 690, which may be a USB port, an IEEE 1394 (FireWire) port, and / or an RS-232 port. The component 602 shown is not essential, nor is it exhaustive, as any component can be removed, and other components that will be recognized by those skilled in the art can be added.
[0096] Although some operations of the disclosed methods are described in a specific order for ease of presentation, it should be understood that this description includes rearrangement unless the specific language used herein requires a particular order. For example, in some cases, the operations described in order may be rearranged or performed concurrently. Furthermore, for simplicity, the accompanying figures may not show the various ways in which the disclosed methods can be combined with other methods.
[0097] Any one or more of the following logics can be implemented in hardware, firmware, or any combination thereof: offline support logic 114, storage logic 302, connection logic 304, operation logic 306, determination logic 308, storage 310, offline support logic 314, storage logic 502, connection logic 504, determination logic 508, storage 510, offline support logic 514, flowchart 200, and / or flowchart 400.
[0098] For example, any one or more of the offline support logic 114, storage logic 302, connection logic 304, operation logic 306, determination logic 308, storage 310, offline support logic 314, storage logic 502, connection logic 504, determination logic 508, storage 510, offline support logic 514, flowchart 200 and / or flowchart 400 can be implemented at least in part as computer program code configured to execute in one or more processors.
[0099] In another example, any one or more of the following logics—offline support logic 114, storage logic 302, connection logic 304, operation logic 306, determination logic 308, storage 310, offline support logic 314, storage logic 502, connection logic 504, determination logic 508, storage 510, offline support logic 514, flowchart 200, and / or flowchart 400—can be at least partially implemented as hardware logic / circuit. Such hardware logic / circuit may include one or more hardware logic components. Examples of hardware logic components include, but are not limited to, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-chips (SoCs), complex programmable logic devices (CPLDs), etc. For example, an SoC may include an integrated circuit chip that includes a processor (e.g., a microcontroller, microprocessor, digital signal processor (DSP), etc.), memory, one or more communication interfaces, and / or other circuitry and / or embedded firmware that performs its functions.
[0100] III. Further discussion of some example embodiments
[0101] A first example offline compatible node is used to provide offline support for a database cluster comprising multiple nodes configured to be interconnected via a network and an offline compatible node. The offline compatible node includes memory and one or more processors coupled to the memory. The one or more processors are configured to store first information in the memory of the offline compatible node, which is included in the database cluster, while the offline compatible node is temporarily not connected to the multiple nodes via the network. The database cluster also includes multiple nodes configured to synchronize with each other to store multiple corresponding instances of second information. The one or more processors are also configured to connect the offline compatible node to the multiple nodes via the network in response to the offline compatible node not being connected to the multiple nodes via the network. The one or more processors are also configured to perform operations on the first information, at least in part, based on the offline compatible node's connection to the multiple nodes via the network.
[0102] In a first aspect of the first exemplary offline compatible node, one or more processors are configured to perform CRUD operations on first information stored in the memory of the offline compatible node, based at least in part on the offline compatible node being connected to a plurality of nodes via a network.
[0103] In an implementation of the first aspect, one or more processors are configured to, at least in part, delete at least one entry or table from first information stored in the memory of the offline compatibility node, based on the offline compatibility node being connected to multiple nodes via a network.
[0104] In a second aspect of the first exemplary offline-compatible node, one or more processors are configured to perform CRUD operations on second information stored by the multiple nodes, at least in part, based on the offline-compatible node's connection to a plurality of nodes via a network. The second aspect of the first exemplary offline-compatible node may be implemented in combination with the first aspect of the first exemplary offline-compatible node, but the exemplary embodiments are not limited in this respect.
[0105] In a third aspect of the first exemplary offline-compatible node, one or more processors are configured to perform an algorithm on at least first information to generate derived information. According to the third aspect, the one or more processors are configured to connect to multiple nodes via a network, at least in part, based on the offline-compatible node, such that the derived information is stored in at least one of the following: the memory of the offline-compatible node, or one or more memories of one or more corresponding nodes of the multiple nodes. The third aspect of the first exemplary offline-compatible node may be implemented in combination with the first and / or second aspects of the first exemplary offline-compatible node, but the exemplary embodiments are not limited in this respect.
[0106] In a first implementation of the third aspect, one or more processors are configured to execute an algorithm on at least a portion of at least first information and second information stored by multiple nodes to generate derived information.
[0107] In a second implementation of the third aspect, one or more processors are configured to perform a mathematical algorithm on at least the first information to generate derived information.
[0108] In a fourth aspect of the first exemplary offline-compatible node, one or more processors are configured to, at least in part, connect to a plurality of nodes via a network based on the offline-compatible node, and to copy the first information to one or more of the plurality of nodes by having one or more corresponding instances of the first information stored on the one or more nodes. The fourth aspect of the first exemplary offline-compatible node may be implemented in combination with the first, second, and / or third aspects of the first exemplary offline-compatible node, but the exemplary embodiments are not limited in this respect.
[0109] In a fifth aspect of the first exemplary offline compatible node, the database schema of the database associated with the database cluster defines the offline compatible node as capable of performing operations on first information due to the offline compatible node's connection to multiple nodes via a network. According to the fifth aspect, one or more processors are configured to perform operations on the first information at least partially based on the database schema of the database, which defines the offline compatible node as capable of performing operations on the first information due to the offline compatible node's connection to multiple nodes via a network. The fifth aspect of the first exemplary offline compatible node may be implemented in combination with the first, second, third, and / or fourth aspects of the first exemplary offline compatible node, but the exemplary embodiments are not limited in this respect.
[0110] In a sixth aspect of the first example offline-compatible node, instructions executed for a database associated with a database cluster define the offline-compatible node as capable of performing operations on first information due to the offline-compatible node's connection to multiple nodes via a network. According to the sixth aspect, one or more processors are configured to perform operations on the first information, at least in part, based on instructions executed for the database, the instructions defining the offline-compatible node as capable of performing operations on the first information due to the offline-compatible node's connection to multiple nodes via a network. The sixth aspect of the first example offline-compatible node may be implemented in combination with the first, second, third, fourth, and / or fifth aspects of the first example offline-compatible node, but exemplary embodiments are not limited in this respect.
[0111] In a seventh aspect of the first example offline-compatible node, one or more processors are configured to delete the first information from the offline-compatible node in response to causing one or more nodes to store one or more corresponding instances of the first information, based at least in part on the knowledge that the offline-compatible node will disconnect from the multiple nodes via the network. The seventh aspect of the first example offline-compatible node may be implemented in combination with the first, second, third, fourth, fifth, and / or sixth aspects of the first example offline-compatible node, but exemplary embodiments are not limited in this respect.
[0112] In the eighth aspect of the first example offline compatible node, a specified node is selected as the offline compatible node from the node corpus of the database cluster, at least in part, based on the use case of the database cluster. The eighth aspect of the first example offline compatible node can be implemented in combination with the first, second, third, fourth, fifth, sixth, and / or seventh aspects of the first example offline compatible node, but the exemplary embodiments are not limited in this respect.
[0113] In a ninth aspect of the first exemplary offline compatible node, one or more processors are configured to determine whether to perform an operation on the first information based at least in part on a use case of the database cluster. According to the ninth aspect, a first use case of the database cluster indicates that an operation should be performed on the first information, and a second use case of the database cluster indicates that no operation should be performed on the first information. Further according to the ninth aspect, one or more processors are configured to perform the operation on the first information based at least in part on the use case of the database cluster, which is the first use case. The ninth aspect of the first exemplary offline compatible node may be implemented in combination with the first, second, third, fourth, fifth, sixth, seventh, and / or eighth aspects of the first exemplary offline compatible node, but the exemplary embodiments are not limited in this respect.
[0114] A second example of an offline-compatible node is used to provide offline support for a database cluster comprising multiple nodes, and the offline-compatible node is configured to interconnect via a network. The offline-compatible node includes memory and one or more processors coupled to the memory. The one or more processors are configured to store first information in the memory of the offline-compatible node, which is included in the database cluster, while the offline-compatible node is temporarily not connected to the multiple nodes via the network. The database cluster also includes multiple nodes configured to synchronize with each other to store multiple corresponding instances of second information. The one or more processors are also configured to connect the offline-compatible node to the multiple nodes via the network in response to the offline-compatible node not being connected to the multiple nodes. The one or more processors are also configured to, at least in part, replicate the first information to one or more nodes in the database cluster by having one or more nodes store one or more corresponding instances of the first information.
[0115] In a first aspect of the second example of an offline-compatible node, one or more processors are configured to modify a portion of information stored in the memory of the offline-compatible node while it is temporarily not connected to multiple nodes via a network to provide first information. According to the first aspect, the information portion is a portion of second information stored by the multiple nodes. Further according to the first aspect, the one or more processors are configured, at least in part, based on the offline-compatible node's connection to the multiple nodes via a network, to cause one or more nodes in the database cluster to replace one or more corresponding instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding nodes with one or more corresponding instances of the first information.
[0116] In a first implementation of the first aspect, the database schema of the database associated with the database cluster defines an offline compatible node as capable of modifying portions of information stored in the memory of the offline compatible node when the offline compatible node is not temporarily connected to multiple nodes via the network, in order to provide first information. According to the first implementation, the database schema specifies that, in response to the offline compatible node connecting to multiple nodes via the network, one or more instances of portions of one or more corresponding instances of second information stored by one or more corresponding nodes are replaced by one or more corresponding instances of the first information.
[0117] In a second implementation of the first aspect, one or more processors are configured to modify, at least in part, portions of information stored in the memory of an offline compatible node when the offline compatible node is temporarily not connected to multiple nodes via a network, to provide first information, based on instructions executed for a database associated with the database cluster. These instructions define the offline compatible node as capable of modifying portions of information stored in its memory when it is temporarily not connected to multiple nodes via a network. According to the second implementation, one or more processors are configured to, in response to an offline compatible node connecting to multiple nodes via a network, at least in part, based on instructions specifying that one or more instances of a portion of one or more corresponding instances of second information stored by one or more corresponding nodes will be replaced by one or more corresponding instances of first information, cause one or more nodes in the database cluster to replace one or more corresponding instances of a portion of one or more corresponding instances of second information stored by one or more corresponding nodes with one or more corresponding instances of first information.
[0118] In a second aspect of the second example offline-compatible node, one or more processors are configured to, in response to the offline-compatible node connecting to multiple nodes via a network, prevent each of the multiple nodes not included in one or more of the nodes from storing a corresponding instance of the first information. The second aspect of the second example offline-compatible node may be implemented in conjunction with the first aspect of the second example offline-compatible node, but the example embodiment is not limited in this respect.
[0119] In a third aspect of the second example offline-compatible node, one or more processors are configured to delete the first information from the memory of the offline-compatible node in response to causing one or more nodes to store one or more corresponding instances of the first information, based at least in part on knowledge that the offline-compatible node will disconnect from the network and the multiple nodes. The third aspect of the second example offline-compatible node may be implemented in combination with the first and / or second aspects of the second example offline-compatible node, but the example embodiments are not limited in this respect.
[0120] In a fourth aspect of the second exemplary offline-compatible node, one or more processors are configured to determine, at least in part, whether first information stored in the offline-compatible node's memory should be copied to one or more nodes based on a use case of the database cluster. According to the fourth aspect, a first use case of the database cluster indicates that the first information stored in the offline-compatible node's memory will be copied to one or more nodes, and a second use case of the database cluster indicates that the first information stored in the offline-compatible node's memory will not be copied to one or more nodes. Further, according to the fourth aspect of the second exemplary offline-compatible node, one or more processors are configured to, at least in part, based on the use case of the database cluster as the first use case, cause one or more of the plurality of nodes to store one or more corresponding instances of the first information. The fourth aspect of the second exemplary offline-compatible node can be implemented in combination with the first, second, and / or third aspects of the second exemplary offline-compatible node, but the exemplary embodiments are not limited in this respect.
[0121] In a fifth aspect of the second example offline-compatible node, at least one of the following indicates that information stored in the memory of the offline-compatible node has priority over information stored by multiple nodes: (1) a database schema of a database associated with a database cluster or (2) instructions executed against the database. According to the fifth aspect, one or more processors are configured to cause one or more of the multiple nodes to store one or more corresponding instances of the first information, at least in part, based on at least one of the database schema or instructions indicating that information stored by the offline-compatible node has priority over information stored by multiple nodes. The fifth aspect of the second example offline-compatible node may be implemented in combination with the first, second, third, and / or fourth aspects of the second example offline-compatible node, but the example embodiments are not limited in this respect.
[0122] In a sixth aspect of the second example offline-compatible node, one or more processors are configured to connect to multiple nodes via a network, at least in part, based on the offline-compatible node, so that one or more nodes in the database cluster store one or more corresponding instances of the first information. The sixth aspect of the second example offline-compatible node can be implemented in combination with the first, second, third, fourth, and / or fifth aspects of the second example offline-compatible node, but the example embodiments are not limited in this respect.
[0123] A third example of an offline compatible node is used to provide offline support for a database cluster comprising multiple nodes. The offline compatible node is configured to interconnect via a network and includes memory and one or more processors coupled to the memory. One or more processors are configured to connect the offline compatible node to the multiple nodes in response to the offline compatible node being temporarily not connected to the multiple nodes via the network. The nodes are configured to synchronize with each other to store multiple corresponding instances of first information. The one or more processors are also configured to receive a portion of information from a first node of the multiple nodes, at least partially based on the offline compatible node being connected to the multiple nodes via the network. This portion of information is a portion of the first information that was initiated for storage by the multiple nodes when the offline compatible node was not connected to the multiple nodes via the network, and this portion of the first information includes less than the entire first information. The one or more processors are also configured to initiate the storage of this portion of information in the memory of the offline compatible node, at least partially based on the offline compatible node being connected to the multiple nodes via the network.
[0124] In a first aspect of the third example of an offline-compatible node, the memory in the offline-compatible node is configured to store second information when the offline-compatible node is temporarily not connected to multiple nodes via a network. According to the first aspect, one or more processors are configured to, at least in part, replace the second information stored in the memory of the offline-compatible node with information based on the offline-compatible node's connection to multiple nodes via a network.
[0125] In a first implementation of the first aspect, the database schema of the database associated with the database cluster defines an offline compatible node as capable of temporarily connecting to multiple nodes without network access, and also capable of connecting to multiple nodes in response to the offline compatible node temporarily not being connected to multiple nodes via network access. According to the first implementation, the database schema specifies that, in response to the offline compatible node connecting to multiple nodes via network access, the second information stored by the offline compatible node will be replaced with the information portion.
[0126] In a second implementation of the first aspect, one or more processors are configured to, at least in part, based on an instruction executed for a database associated with a database cluster, define an offline compatible node as capable of temporarily not being connected to multiple nodes via the network and also capable of, in response to an instruction that the offline compatible node is temporarily not connected to multiple nodes via the network, and at least in part based on an instruction that specifies that second information stored in the offline compatible node will be replaced by the information portion in response to the offline compatible node being connected to multiple nodes via the network.
[0127] In a third implementation of the first aspect, at least one of the following indicates that information stored by multiple nodes has priority over information stored by offline-compatible nodes: (1) a database schema of a database associated with a database cluster or (2) an instruction executed against the database. According to the third implementation, one or more processors are configured to replace the second information stored in the memory of the offline-compatible nodes with the information portion, at least in part based on at least one of the database schema or instruction indicating that information stored by multiple nodes has priority over information stored by offline-compatible nodes.
[0128] In a second aspect of the third example offline-compatible node, one or more processors are configured to determine, at least in part, whether information portions should be replicated from multiple nodes to the offline-compatible node based on a use case of the database cluster. According to the second aspect, a first use case of the database cluster indicates that information portions will be replicated from multiple nodes to the offline-compatible node, and a second use case of the database cluster indicates that information portions will not be replicated from multiple network nodes to the offline-compatible node. Further according to the second aspect, one or more processors are configured to initiate storage of information portions in the memory of the offline-compatible node, at least in part, based on the use case of the database cluster as the first use case. The second aspect of the third example offline-compatible node can be implemented in conjunction with the first aspect of the third example offline-compatible node, but the example embodiments are not limited in this respect.
[0129] In a third aspect of the third exemplary offline-compatible node, the memory in the offline-compatible node is configured to store second information when the offline-compatible node is not temporarily connected to multiple nodes via a network. According to the third aspect, one or more processors are configured to, at least in part, store information in addition to the second information in the memory of the offline-compatible node based on the offline-compatible node's connection to multiple nodes via a network. The third aspect of the third exemplary offline-compatible node can be implemented in combination with the first aspect of the third exemplary offline-compatible node, but the exemplary embodiments are not limited in this respect.
[0130] In a first example method for providing offline support for a database cluster including multiple nodes configured to be interconnected via a network and an offline-compatible node, first information is stored by the offline-compatible node, which is included in the database cluster, while the offline-compatible node is temporarily not connected to the multiple nodes via the network. The database cluster also includes multiple nodes configured to synchronize with each other to store multiple corresponding instances of second information. In response to the offline-compatible node not being connected to the multiple nodes via the network, the offline-compatible node connects to the multiple nodes via the network. Operations on the first information are performed at least in part based on the offline-compatible node's connection to the multiple nodes via the network.
[0131] In a first aspect of the first example method, performing an operation on the first information includes performing a CRUD operation on the first information stored on the offline compatible node, at least in part based on the offline compatible node being connected to multiple nodes via a network.
[0132] In an implementation of the first aspect, performing an operation on the first information includes deleting at least one entry or table from the first information stored on the offline compatible node, based at least in part on the offline compatible node being connected to multiple nodes via a network.
[0133] In a second aspect of the first example method, performing operations on the first information includes at least partially based on an offline-compatible node connected via a network to multiple nodes, causing CRUD operations to be performed on the second information stored by the multiple nodes. The second aspect of the first example method may be implemented in combination with the first aspect of the first exemplary method, but the exemplary embodiments are not limited thereto.
[0134] In a third aspect of the first example method, performing operations on the first information includes performing an algorithm on at least the first information to generate derived information. According to the third aspect, performing operations on the first information further includes, at least in part, based on an offline-compatible node connected via a network to a plurality of nodes, such that the derived information is stored by the offline-compatible node or one or more of the plurality of nodes. The third aspect of the first example method may be implemented in combination with the first and / or second aspects of the first example method, but the example embodiments are not limited thereto.
[0135] In the first implementation of the third aspect, the execution algorithm includes executing the algorithm on at least a portion of at least first information and second information stored by multiple nodes to generate derived information.
[0136] In the second implementation of the third aspect, the execution algorithm includes performing a mathematical algorithm on at least the first information to generate derived information.
[0137] In a fourth aspect of the first example method, performing operations with respect to the first information includes connecting to a plurality of nodes via a network, at least partially based on an offline-compatible node, and causing one or more nodes to store one or more corresponding instances of the first message. The fourth aspect of the first example method may be implemented in combination with the first, second, and / or third aspects of the first example method, but the example embodiments are not limited thereto.
[0138] In a fifth aspect of the first example method, the database schema of the database associated with the database cluster defines an offline compatible node as capable of performing operations on the first information as a result of the offline compatible node connecting to multiple nodes via a network. According to the fifth aspect, performing operations on the first information includes performing operations on the first information at least in part based on the database schema of the database, which defines the offline compatible node as capable of performing operations on the first information due to the offline compatible node connecting to multiple nodes via a network. The fifth aspect of the first example method may be implemented in combination with the first, second, third, and / or fourth aspects of the first example method, but the example embodiments are not limited thereto.
[0139] In a sixth aspect of the first example method, instructions executed for a database associated with a database cluster define an offline compatible node as capable of performing operations on first information as a result of the offline compatible node being connected to multiple nodes via a network. According to the sixth aspect, performing operations on the first information includes performing operations on the first information at least in part based on instructions executed for the database, which defines the offline compatible node as capable of performing operations on the first information due to the offline compatible node being connected to multiple nodes via a network. The sixth aspect of the first example method may be implemented in combination with the first, second, third, fourth, and / or fifth aspects of the first example method, but the example embodiments are not limited thereto.
[0140] In a seventh aspect of the first example method, the first example method further includes deleting the first message from an offline compatible node in response to causing one or more nodes to store the first message, based at least in part on knowledge that the offline compatible node will disconnect its connection with the multiple nodes via the network. The seventh aspect of the first example method may be implemented in conjunction with the first, second, third, fourth, fifth, and / or sixth aspects of the first example method, but the example embodiments are not limited thereto.
[0141] In the eighth aspect of the first example method, at least in part based on the use case of the database cluster, a specified node is selected as an offline compatible node from the node corpus of the database cluster. The eighth aspect of the first example method can be implemented in combination with the first, second, third, fourth, fifth, sixth and / or seventh aspects of the first example method, but the example embodiment is not limited thereto.
[0142] In a ninth aspect of the first example method, the first example method further includes determining whether to perform an operation on the first information based at least in part on use cases of the database cluster. According to the ninth aspect, a first use case of the database cluster indicates that an operation should be performed on the first information, and a second use case of the database cluster indicates that no operation should be performed on the first information. Further according to the ninth aspect, performing an operation on the first information includes performing the operation on the first information based at least in part on the use case of the database cluster that is the first use case. The ninth aspect of the first example method may be implemented in combination with the first, second, third, fourth, fifth, sixth, seventh, and / or eighth aspects of the first example method, but exemplary embodiments are not limited in this respect.
[0143] In a second example method for providing offline support for a database cluster comprising multiple nodes configured to be interconnected via a network and an offline-compatible node, first information is stored by the offline-compatible node, which is included in the database cluster, while the offline-compatible node is temporarily not connected to the multiple nodes via the network. The database cluster also includes multiple nodes configured to synchronize with each other to store multiple corresponding instances of the second information. In response to the offline-compatible node not being connected to the multiple nodes via the network, the offline-compatible node connects to the multiple nodes via the network. At least in part based on the offline-compatible node's connection to the multiple nodes via the network, the first information is replicated to one or more nodes among the multiple nodes in the database cluster by having one or more nodes store one or more corresponding instances of the first information.
[0144] In a first aspect of the second example method, the second example method further includes modifying a portion of information stored by the offline compatible node when the offline compatible node is temporarily not connected to multiple nodes via the network to provide first information. According to the first aspect, the information portion is a portion of second information stored by the multiple nodes. Further according to the first aspect, copying the first information to one or more nodes includes: at least partially based on the offline compatible node being connected to multiple nodes via the network, causing one or more nodes in the database cluster to replace one or more corresponding instances of a portion of one or more corresponding instances of the second information stored by one or more corresponding nodes with one or more corresponding instances of the first information.
[0145] In a first implementation of the first aspect, the database schema of the database associated with the database cluster defines an offline compatible node as capable of modifying portions of information stored by the offline compatible node when it is temporarily not connected to multiple nodes via the network to provide first information. According to the first implementation, in response to the offline compatible node connecting to multiple nodes via the network, the database schema specifies that one or more instances of portions of one or more corresponding instances of second information stored by one or more corresponding nodes will be replaced by one or more corresponding instances of the first information.
[0146] In a second implementation of the first aspect, modifying a portion of information stored by an offline compatible node when the offline compatible node is temporarily not connected to multiple nodes via the network comprises: modifying the portion of information stored by the offline compatible node when the offline compatible node is temporarily not connected to multiple nodes via the network to provide first information, based at least in part on instructions executed for a database associated with the database cluster, the instructions defining the offline compatible node as capable of modifying the portion of information stored by the offline compatible node while it is temporarily not connected to multiple nodes via the network. According to the second implementation, causing one or more nodes in the database cluster to replace one or more corresponding instances of a portion of second information stored by one or more corresponding nodes with one or more corresponding instances of the first information comprises: in response to the offline compatible node connecting to multiple nodes via the network, at least in part on instructions, causing one or more nodes in the database cluster to replace one or more corresponding instances of that portion of the one or more corresponding instances of the second information stored by one or more corresponding nodes with one or more corresponding instances of the first information, the instructions specifying that one or more instances of a portion of the one or more corresponding instances of the second information stored by one or more corresponding nodes will be replaced by one or more corresponding instances of the first information.
[0147] In a second aspect of the second example method, copying the first information to one or more nodes includes: in response to an offline compatible node connecting to the multiple nodes via a network, preventing each of the multiple nodes not included in the one or more nodes from storing a corresponding instance of the first information. The second aspect of the second example method may be implemented in conjunction with the first aspect of the second example method, but exemplary embodiments are not limited thereto.
[0148] In a third aspect of the second example method, the second example method further includes deleting the first message from an offline compatible node in response to causing one or more nodes to store the first message, based at least in part on the knowledge that the offline compatible node will disconnect from the network and the multiple nodes. The third aspect of the second example method may be implemented in combination with the first and / or second aspects of the second example method, but the exemplary embodiments are not limited thereto.
[0149] In a fourth aspect of the second example method, at least in part based on the use case of a database cluster, a specified node is selected from the node corpus of the database cluster as an offline compatible node. This fourth aspect of the second example method may be implemented in combination with the first, second, and / or third aspects of the second example method, but the exemplary embodiments are not limited thereto.
[0150] In a fifth aspect of the second example method, the second example method further includes determining, at least in part, based on a use case of the database cluster, whether the first information stored by the offline-compatible node should be replicated to one or more nodes. According to the fifth aspect, a first use case of the database cluster indicates that the first information stored by the offline-compatible node will be replicated to one or more nodes, and a second use case of the database cluster indicates that the first information stored by the offline-compatible node will not be replicated to one or more nodes. Further according to the fifth aspect, replicating the first information to one or more nodes includes, at least in part, based on a use case of the database cluster as the first use case, causing one or more of the plurality of nodes to store one or more corresponding instances of the first information. The fifth aspect of the second example method may be implemented in combination with the first, second, third, and / or fourth aspects of the second example method, but exemplary embodiments are not limited thereto.
[0151] In a sixth aspect of the second example method, at least one of the following indicates that information stored by an offline-compatible node has priority over information stored by multiple nodes: (1) a database schema of a database associated with a database cluster or (2) an instruction executed against the database. According to the sixth aspect, copying the first information to one or more nodes includes causing one or more corresponding instances of the first information to be stored by one or more of the multiple nodes, at least in part, based on the database schema or instruction indicating that information stored by an offline-compatible node has priority over information stored by multiple nodes. The sixth aspect of the second example method may be implemented in combination with the first, second, third, fourth, and / or fifth aspects of the second example method, but exemplary embodiments are not limited in this respect.
[0152] In a seventh aspect of the second example method, copying the first information to one or more nodes includes at least partially connecting multiple nodes via a network based on offline compatible nodes, such that one or more nodes in the database cluster store one or more corresponding instances of the first information in addition to storing one or more corresponding instances of the second information. The seventh aspect of the second example method may be implemented in combination with the first, second, third, fourth, fifth, and / or sixth aspects of the second example method, but exemplary embodiments are not limited thereto.
[0153] In a third example method for providing offline support for a database cluster including multiple nodes configured to be interconnected via a network and an offline-compatible node, in response to the offline-compatible node being temporarily not connected to the multiple nodes via the network, the offline-compatible node is connected to the multiple nodes via the network, these nodes being configured to synchronize with each other to store multiple corresponding instances of first information. At least in part based on the offline-compatible node being connected to the multiple nodes via the network, the offline-compatible node receives a portion of information from a first node among the multiple nodes, this portion of information being the first information stored by the multiple nodes while the offline-compatible node is not connected to the multiple nodes via the network. This portion of the first information includes less than all of the first information. The storage of the information portion is initiated by the offline-compatible node at least in part based on the offline-compatible node being connected to the multiple nodes via the network.
[0154] In a first aspect of the third example method, the third example method further includes having the offline compatible node store second information when the offline compatible node is temporarily not connected to multiple nodes via the network. According to the first aspect, initiating the storage of the information portion by the offline compatible node includes, at least in part, replacing the second information stored by the offline compatible node with the information portion based on the offline compatible node being connected to multiple nodes via the network.
[0155] In a first implementation of the first aspect, the database schema of the database associated with the database cluster defines an offline compatible node as capable of temporarily connecting to multiple nodes without being connected to the network, and also capable of connecting to multiple nodes in response to the offline compatible node being temporarily connected to multiple nodes without being connected to the network. According to the first implementation, in response to the offline compatible node connecting to multiple nodes via the network, the database schema specifies that second information stored by the offline compatible node will be partially replaced.
[0156] In a second implementation of the first aspect, replacing the second information stored by the offline compatible node with the information portion includes: at least in part based on an instruction executed for a database associated with the database cluster, defining the offline compatible node as capable of temporarily not being connected to multiple nodes via the network and also capable of responding to the offline compatible node being temporarily not connected to multiple nodes via the network, and at least in part based on an instruction specifying that the second information stored by the offline compatible node will be replaced by the information portion in response to the offline compatible node being connected to multiple nodes via the network, replacing the second information stored by the offline compatible node with the information portion.
[0157] In a third implementation of the first aspect, at least one of the following indicates that information stored by multiple nodes has a higher priority than information stored by offline compatible nodes: (1) a database schema of a database associated with a database cluster or (2) an instruction executed against the database. According to the third implementation, partially replacing the second information stored by the offline compatible nodes with information comprises: at least in part based on at least one of a database schema or instruction indicating that information stored by multiple nodes has a higher priority than information stored by the offline compatible nodes, partially replacing the second information stored by the offline compatible nodes with the information.
[0158] In the second aspect of the third example method, at least in part based on the use case of the database cluster, a specified node is selected as an offline compatible node from the node corpus of the database cluster. The second aspect of the third example method can be implemented in combination with the first aspect of the third example method, but the exemplary embodiments are not limited in this respect.
[0159] In a third aspect of the third example method, the method further includes determining, at least in part, whether the information portion should be replicated from multiple nodes to an offline-compatible node based on a use case of the database cluster. According to the third aspect, a first use case of the database cluster indicates that the information portion will be replicated from multiple nodes to the offline-compatible node, and a second use case of the database cluster indicates that the information portion will not be replicated from multiple network nodes to the offline-compatible node. Further according to the third aspect, initiating the storage of the information portion by the offline-compatible node includes initiating the storage of the information portion by the offline-compatible node based at least in part on the use case of the database cluster as the first use case. The third aspect of the third example method may be implemented in combination with the first and / or second aspects of the third example method, but exemplary embodiments are not limited thereto.
[0160] In a fourth aspect of the third example method, the second example method further includes having the offline compatible node store the second information when the offline compatible node is temporarily not connected to multiple nodes via the network. According to the fourth aspect, initiating the storage of the information portion by the offline compatible node based at least in part on the offline compatible node being connected to multiple nodes via the network includes having the offline compatible node store the information portion in addition to storing the second information. The fourth aspect of the third example method can be implemented in combination with the second and / or third aspects of the third example method, but exemplary embodiments are not limited in this respect.
[0161] A first example computer program product includes a computer-readable storage medium on which instructions are recorded to enable a processor-based offline-compatible node to perform operations to provide offline support for a database cluster, the database cluster including multiple nodes configured to interconnect via a network and the offline-compatible node. The operations include storing first information by the offline-compatible node, which is included in the database cluster, while the offline-compatible node is temporarily not connected to the multiple nodes via the network. The database cluster also includes multiple nodes configured to synchronize with each other to store multiple corresponding instances of second information. The operations also include connecting the offline-compatible node to the multiple nodes via the network in response to the offline-compatible node not being connected to the multiple nodes via the network. The operations also include performing a task regarding the first information, at least in part, based on the offline-compatible node's connection to the multiple nodes via the network.
[0162] The second example computer program product includes a computer-readable storage medium on which instructions are recorded to enable a processor-based offline-compatible node to perform operations to provide offline support for a database cluster, the database cluster including multiple nodes configured to be interconnected via a network and the offline-compatible node. The operations include, while the offline-compatible node is temporarily not connected to the multiple nodes via the network, storing first information by the offline-compatible node, which is included in the database cluster. The database cluster also includes multiple nodes configured to synchronize with each other to store multiple corresponding instances of second information. The operations further include, in response to the offline-compatible node not being connected to the multiple nodes via the network, connecting the offline-compatible node to the multiple nodes via the network. The operations further include, at least in part, replicating the first information to one or more nodes in the database cluster by causing one or more nodes to store one or more corresponding instances of the first information, based on the offline-compatible node's connection to the multiple nodes via the network.
[0163] The third example computer program product includes a computer-readable storage medium on which instructions are recorded to enable a processor-based offline-compatible node to perform operations to provide offline support for a database cluster, the database cluster including multiple nodes configured to be interconnected via a network and the offline-compatible node. The operations include responding to the offline-compatible node being temporarily not connected to the multiple nodes via the network, the offline-compatible node being connected to the multiple nodes via the network, these nodes being configured to synchronize with each other to store multiple corresponding instances of first information. The operations also include, at least partially based on the offline-compatible node being connected to the multiple nodes via the network, the offline-compatible node receiving a portion of information from a first node among the multiple nodes, this portion of information being a part of the first information whose storage by the multiple nodes was initiated when the offline-compatible node was not connected to the multiple nodes via the network. This portion of the first information includes less than all of the first information. The operations also include, at least partially based on the offline-compatible node being connected to the multiple nodes via the network, the offline-compatible node initiating the storage of the information portion.
[0164] IV. Examples of Computer Systems
[0165] Figure 7 An example computer 700 that can implement the embodiments is depicted. Figure 1 Any one or more of the user equipment 102A-102M, any one or more of the nodes 106A-106N, any one or more of the online nodes 110 and / or the offline compatible node 112 shown; Figure 3 The offline compatible node 300 shown can be implemented using a computer 700 that includes one or more features and / or alternative features of the computer 700. Figure 5 The offline compatible node 500 is shown. Computer 700 can be a general-purpose computing device, such as a conventional personal computer, mobile computer, or workstation, or it can be a dedicated computing device. The description of computer 700 provided herein is for illustrative purposes and is not intended to be limiting. As those skilled in the art will recognize, embodiments can be implemented in other types of computer systems.
[0166] like Figure 7 As shown, computer 700 includes a processing unit 702, system memory 704, and a bus 706 coupling various system components, including system memory 704, to the processing unit 702. Bus 706 represents one or more types of bus architectures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of the various bus architectures. System memory 704 includes read-only memory (ROM) 708 and random access memory (RAM) 710. Basic input / output system 712 (BIOS) is stored in ROM 708.
[0167] Computer 700 also includes one or more of the following drives: a hard disk drive 714 for reading from and writing to a hard disk, a disk drive 716 for reading from or writing to a removable disk 718, and an optical disc drive 720 for reading from or writing to a removable optical disc 722, such as a CD-ROM, DVD-ROM, or other optical media. Hard disk drive 714, disk drive 716, and optical disc drive 720 are connected to bus 706 via hard disk drive interface 724, disk drive interface 726, and optical disc drive interface 728, respectively. The drives and their associated computer-readable storage media provide the computer with non-volatile storage of computer-readable instructions, data structures, program modules, and other data. Although hard disks, removable disks, and removable optical discs have been described, other types of computer-readable storage media, such as flash memory cards, digital video discs, random access memory (RAM), read-only memory (ROM), etc., can be used to store data.
[0168] Many program modules may be stored on a hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include an operating system 730, one or more application programs 732, other modules 734, and program data 736. Application programs 732 or other modules 734 may include, for example, computer program logic for implementing any one or more of the following as described herein: offline support logic 114, storage logic 302, connection logic 304, operation logic 306, determination logic 308, offline support logic 314, storage logic 502, connection logic 504, determination logic 508, offline support logic 514, flowchart 200 (including any steps of flowchart 200), and / or flowchart 400 (including any steps of flowchart 400).
[0169] Users can input commands and information into computer 700 through input devices such as keyboard 738 and pointing device 740. Other input devices (not shown) may include microphone, joystick, gamepad, satellite antenna, scanner, touchscreen, camera, accelerometer, gyroscope, etc. These and other input devices are typically connected to processing unit 702 via serial port interface 742 coupled to bus 706, but may be connected via other interfaces such as parallel port, game port, or universal serial bus (USB).
[0170] Display device 744 (e.g., a monitor) is also connected to bus 706 via an interface such as video adapter 746. In addition to display device 744, computer 700 may include other peripheral output devices (not shown), such as speakers and printers.
[0171] Computer 700 is connected to network 748 (e.g., the Internet) via a network interface or adapter 750, modem 752, or other means for establishing communication on the network. Modem 752 may be internal or external and is connected to bus 706 via serial port interface 742.
[0172] As used herein, the terms "computer program medium" and "computer-readable storage medium" are generally used to refer to media (e.g., non-transitory media), such as hard disks associated with hard disk drive 914, removable disk 918, removable optical disk 922, and other media such as flash memory cards, digital video disks, random access memory (RAM), read-only memory (ROM), etc. Computer-readable storage media are not signals, such as carrier signals or propagating signals. For example, computer-readable storage media may not include signals. Therefore, computer-readable storage media themselves do not constitute signals. Computer-readable storage media are distinct from and do not overlap with communication media (excluding communication media). Communication media embody computer-readable instructions, data structures, program modules, or other data in modulated data signals such as carrier waves. The term "modulated data signal" refers to a signal whose one or more characteristics are set or altered in a manner that encodes information in a signal. By way of example and not limitation, communication media include wireless media (such as acoustic, RF, infrared, and other wireless media) as well as wired media. The example embodiments also relate to such communication media.
[0173] As described above, computer programs and modules (including application program 732 and other modules 734) can be stored on a hard disk, magnetic disk, optical disk, ROM, or RAM. Such computer programs can also be received via network interface 750 or serial port interface 742. When executed or loaded by an application, such computer programs enable computer 700 to implement the features of the embodiments discussed herein. Therefore, such computer programs represent the controller of computer 700.
[0174] The example embodiments also relate to computer program products comprising software (e.g., computer-readable instructions) stored on any computer-usable medium. When such software is executed in one or more data processing devices, it causes the data processing devices(s) to operate as described herein. Embodiments may employ any computer-usable or computer-readable medium known now or in the future. Examples of computer-readable media include, but are not limited to, storage devices such as RAM, hard disk drives, floppy disks, CD-ROMs, DVD-ROMs, compact discs, magnetic tapes, magnetic storage devices, optical storage devices, MEMS-based storage devices, nanotechnology-based storage devices, and the like.
[0175] It will be appreciated that the disclosed technology is not limited to any particular type of computer or hardware. Specific details of suitable computers and hardware are well known and do not need to be elaborated in this disclosure.
[0176] V. Conclusion
[0177] Although the subject matter has been described in language specific to structural features and / or behavior, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are disclosed as examples of implementing the claims, and other equivalent features and actions are intended to be within the scope of the claims.
Claims
1. A computer implementing an offline-compatible node configured to provide offline support for a database cluster, the database cluster including a plurality of nodes configured to interconnect via a network and the offline-compatible node, the computer comprising: Memory; as well as One or more processors are coupled to the memory, said one or more processors being configured to: While the offline compatible node is temporarily not connected to the plurality of nodes by the network, the first information is stored in the memory of the offline compatible node, which is included in the database cluster, which also includes the plurality of nodes, which are configured to synchronize with each other to store multiple corresponding instances of the second information; In response to the fact that the offline compatible node is not connected to the plurality of nodes via the network, the offline compatible node is connected to the plurality of nodes via the network; At least in part, based on the offline compatible node's connection to the plurality of nodes via the network, operations regarding the first information are performed, including causing the plurality of nodes to store a plurality of corresponding instances of the first information; as well as In response to the plurality of corresponding instances of the plurality of nodes storing the first information, the first information is deleted from the offline compatible node based at least in part on the knowledge that the offline compatible node is about to become disconnected from the plurality of nodes via the network.
2. The computer of claim 1, wherein the one or more processors are configured to be at least one of the following: At least in part, based on the offline compatible node being connected to the plurality of nodes via the network, CRUD operations are performed on the first information stored in the memory of the offline compatible node; or At least in part, based on the offline compatible node being connected to the plurality of nodes via the network, CRUD operations are performed on the second information stored on the plurality of nodes; CRUD operations include creating, reading, updating, or deleting.
3. The computer of claim 2, wherein the one or more processors are configured to: At least in part, based on the fact that the offline compatible node is connected to the plurality of nodes via the network, at least one entry or table of the first information stored in the memory of the offline compatible node is deleted.
4. The computer of claim 1, wherein the one or more processors are configured to: At least the algorithm is executed on the first information to generate derived information; and The exported information is stored, at least in part, in one of the following locations: the memory of the offline compatible node, or one or more memories of one or more corresponding nodes of the plurality of nodes, based on the fact that the offline compatible node is connected to the plurality of nodes via the network.
5. The computer of claim 4, wherein the one or more processors are configured to: The algorithm is executed on at least the first information and at least a portion of the second information stored by the plurality of nodes to generate the derived information.
6. The computer of claim 4, wherein the one or more processors are configured to: At least a mathematical algorithm is performed on the first information to generate the derived information.
7. The computer of claim 1, wherein the database schema of the database associated with the database cluster defines that the offline compatible node can perform the operation regarding the first information because the offline compatible node is connected to the plurality of nodes via the network; and The one or more processors mentioned above are configured to: The operation regarding the first information is performed at least in part based on the database schema of the database, which defines how the offline compatible node can perform the operation regarding the first information because the offline compatible node is connected to the plurality of nodes via the network.
8. The computer of claim 1, wherein instructions executed for a database associated with the database cluster define that the offline compatible node is capable of performing the operation regarding the first information because the offline compatible node is connected to the plurality of nodes via the network; and The one or more processors mentioned above are configured to: The operation regarding the first information is performed at least in part based on instructions executed against the database, the instructions defining that the offline compatible node can perform the operation regarding the first information because the offline compatible node is connected to the plurality of nodes via the network.
9. The computer of claim 1, wherein the one or more processors are configured to: Whether to perform the operation on the first information is determined at least in part based on the use cases of the database cluster, wherein a first use case of the database cluster indicates that the operation should be performed on the first information, and wherein a second use case of the database cluster indicates that the operation should not be performed on the first information; and The use case based at least in part on the database cluster is the first use case, and the operation is performed in response to the first information.
10. The computer of claim 9, wherein the offline compatible node is located on an aircraft, a drone, a ship, or a spacecraft.
11. A method for providing offline support for a database cluster, the database cluster comprising a plurality of nodes configured to be interconnected via a network and offline-compatible nodes, the method comprising: Modify a portion of the information stored by the offline compatible node when the offline compatible node is temporarily not connected to the plurality of nodes by the network, in order to provide first information; While the offline compatible node is temporarily not connected to the plurality of nodes by the network, the first information is stored by the offline compatible node, which is included in the database cluster, which also includes the plurality of nodes, which are configured to synchronize with each other to store multiple corresponding instances of the second information, wherein the information portion is a part of the second information; In response to the fact that the offline compatible node is not connected to the plurality of nodes via the network, the offline compatible node is connected to the plurality of nodes via the network; as well as At least in part, based on the offline compatible node being connected to the plurality of nodes via the network, the first information is copied to the at least one node by causing at least one of the plurality of nodes in the database cluster to replace at least one corresponding instance of a portion of the second information stored by the at least one corresponding node with at least one corresponding instance of the first information. The database schema definition of the database associated with the database cluster is as follows: the offline compatible node is able to modify the information portion stored by the offline compatible node when the offline compatible node is temporarily not connected to the multiple nodes by the network, in order to provide the first information; and The database schema specifies that, in response to the offline compatible node connecting to the plurality of nodes via the network, at least one instance of a portion of the second information stored by at least one corresponding node will be replaced by at least one corresponding instance of the first information.
12. The method of claim 11, further comprising: Whether the first information stored by the offline compatible node should be copied to the at least one node is determined at least in part based on the use case of the database cluster, wherein the first use case of the database cluster indicates that the first information stored by the offline compatible node should be copied to the at least one node, and wherein the second use case of the database cluster indicates that the first information stored by the offline compatible node will not be copied to the at least one node; Copying the first information to the at least one node includes: The use case based at least in part on the database cluster is the first use case, which causes at least one of the plurality of nodes to store at least one corresponding instance of the first information.
13. The method of claim 12, wherein the offline compatible node is located on an aircraft, a drone, a ship, or a spacecraft.
14. The method of claim 11, wherein the database schema of the database associated with the database cluster indicates that information stored by the offline compatible node has priority over information stored by the plurality of nodes; and Copying the first information to the at least one node includes: At least in part, based on the database schema, the information stored by the offline compatible node has a higher priority than the information stored by the plurality of nodes, causing at least one of the plurality of nodes to store at least one corresponding instance of the first information.
15. The method of claim 11, wherein the instructions executed for a database associated with the database cluster indicate that the information stored by the offline compatible node has priority over the information stored by the plurality of nodes; and Copying the first information to the at least one node includes: At least in part, based on the instruction indicating that the information stored by the offline compatible node has priority over the information stored by the plurality of nodes, at least one of the plurality of nodes stores at least one corresponding instance of the first information.
16. A computer implementing an offline-compatible node configured to provide offline support for a database cluster, the database cluster including a plurality of nodes configured to synchronize with each other via a network to store first information and the offline-compatible node, the plurality of nodes and the offline-compatible node being interconnected via a network, the computer comprising: Memory; as well as One or more processors, coupled to the memory, are configured to: While the offline compatible node is temporarily not connected to the plurality of nodes by the network, the storage of second information in the memory of the offline compatible node is initiated, and the plurality of nodes are configured to synchronize with each other to store the plurality of corresponding instances of the first information; In response to the fact that the offline compatible node is temporarily not connected to the plurality of nodes via the network, the offline compatible node is connected to the plurality of nodes via the network; At least in part, based on the offline compatible node being connected to the plurality of nodes via the network, the offline compatible node receives a portion of information from a first node among the plurality of nodes, the portion of information being a part of the first information that was initiated for storage by the plurality of nodes while the offline compatible node was not connected to the plurality of nodes via the network, the portion of the first information comprising less than the entire first information; as well as At least in part, based on the offline compatible node's connection to the plurality of nodes via the network, the storage of the information portion in the memory of the offline compatible node is initiated, including replacing the second information stored in the memory of the offline compatible node that was not temporarily initiated by the offline compatible node while connected to the plurality of nodes via the network with the information portion.
17. The computer of claim 16, wherein the database schema of the database associated with the database cluster defines that the offline compatible node can temporarily connect to the plurality of nodes without via the network and can also connect to the plurality of nodes in response to the offline compatible node being temporarily not connected to the plurality of nodes via the network; and The database schema specifies that, in response to the offline compatible node connecting to the plurality of nodes via the network, the second information stored by the offline compatible node will be replaced with the information portion.
18. The computer of claim 16, wherein the one or more processors are configured to: The replacement of the second information stored in the memory of the offline compatible node with the information portion is based at least in part on instructions executed for the database associated with the database cluster, which define that the offline compatible node can temporarily connect to the plurality of nodes without being connected to them via the network and can also connect to the plurality of nodes in response to the offline compatible node being temporarily not connected to them via the network, and is further based at least in part on instructions that specify that in response to the offline compatible node connecting to the plurality of nodes via the network, the second information stored by the offline compatible node will be replaced with the information portion.
19. The computer of claim 16, wherein at least one of (1) a database schema of a database associated with the database cluster or (2) instructions executed with respect to the database indicates that information stored by the plurality of nodes has priority over information stored by the offline compatible nodes; and The one or more processors are configured to: at least in part, based on the database schema or at least one of the instructions, indicate that the information stored by the plurality of nodes has a higher priority than the information stored by the offline compatible node, and replace the second information stored in the memory of the offline compatible node with the information portion thereon.
20. The computer of claim 16, wherein the one or more processors are configured to: Whether to initiate the storage of the information in the memory is determined at least in part based on the use cases of the database cluster, wherein a first use case of the database cluster indicates to initiate the storage of the information in the memory, and wherein a second use case of the database cluster indicates not to initiate the storage of the information in the memory; and The use case based at least in part on the database cluster is the first use case, initiating the storage of the information portion in the memory of the offline compatible node.
21. The computer of claim 20, wherein the offline compatible node is located on an aircraft, a drone, a ship, or a spacecraft.
Citation Information
Patent Citations
Disconnected operation within distributed database systems
US20160350357A1