Consensus processing device for reducing latency in distributed systems
The consensus processing device addresses the challenge of scalability in distributed systems by acting as a hardware accelerator for consensus methods, enabling greater scale and performance with reduced complexity.
Patent Information
- Application Number
- PCT/US2024/053259
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-31
- Filing Date
- 2024-10-28
- Publication Date
- 2025-05-08
AI Technical Summary
Distributed systems face challenges in achieving scalable consensus processes without extreme complexity, limited by the finite capacity to handle new information and requiring significant engineering efforts to optimize and maintain.
A consensus processing device is introduced, which acts as a hardware accelerator to execute consensus methods externally to the computing instances, utilizing a network of processing nodes with dedicated network interface cards to form an internal network for efficient communication and processing.
This solution enables distributed systems to achieve orders of magnitude greater scale with reduced complexity, improving performance, integrity, and concurrency by offloading latency-inducing processes to an optimized environment.
Smart Images

Figure US2024053259_08052025_PF_FP_ABST
Abstract
Description
CONSENSUS PROCESSING DEVICE FOR REDUCING EATENCY IN DISTRIBUTEDSYSTEMSCROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This patent application claims priority to United States Patent Application No. 18 / 498,853, filed October 31, 2023, which is incorporated by reference in its entirety.COPYRIGHT NOTICE
[0002] A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright or rights. © 2022-2023 Upscale Network Technologies.TECHNICAL FIELD
[0003] One technical field of the present disclosure is consensus protocols in distributed computer systems.BACKGROUND
[0004] The approaches described in this section are approaches that could be pursued but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
[0005] A distributed system can be any computer system having multiple computing elements that are separated in space and that facilitate reliable, real-time coordination among the distributed elements. For example, a distributed system may be a collection of computer programs that utilize computational resources across multiple, separate computation nodes to achieve a common, shared goal. Distributed systems may aim to remove bottlenecks or central points of failure from a system. Large, high-performance distributed systems can be expensive and difficult to design. Yet users increasingly demand their shared, trusted, and real-time characteristics.
[0006] Distributed systems are mathematically challenging, especially if they need to be secure, up-to-date, and responsive to many users at once. To successfully operate, a distributed system requires a programmed method by which distributed computing elements can reach agreements concerning whether a transaction is correct, whether a record can be inserted into a database, or other computational processes. Consensus protocols provide means for computing elements to achieve such agreements. In past approaches, standard, poorly optimized groups of computing nodes have used locally deployed software to create an instance of a consensus protocol. Unfortunately, the software processes that enable all of this coordination introduce significant performance tradeoffs for the overall system, because their rate of execution is limited. Distributed systems have finite limits to how many pieces of new information they can handle each second; the generally recognized upper limit is around 50,000 pieces of information each second per individual system. To achieve greater scale, distributed systems are tiered or federated in multi-cluster architectures, which require significant, specialized engineering talent to optimize and maintain. To achieve the kind of performance and security associated with modern leading internet platforms and products, enormous resources into proprietary software strategies for managing and minimizing the tradeoffs may be required.
[0007] Based on the foregoing, the referenced technical fields have developed an acute need for better ways to design the consensus process so as to achieve scale without extreme complexity in a distributed system. Accordingly, scalable consensus processes having relatively low complexity within distributed systems may be desirable.SUMMARY
[0008] The appended claims may serve as a summary of the invention.
[0009] A system is described. In some examples, the system may include a plurality of computing instances that form a network; and a single consensus processing device configured to execute a consensus method for the plurality of computing instances and external to the plurality of computing instances and communicatively coupled with the plurality of computing instances. The single consensus processing device may include a power supply, a first plurality of processing nodes, wherein each processing node of the first plurality of processing nodes may include one or more first network interface cards, wherein each first network interface card of a respective processing node is communicatively coupled to a corresponding external port configured tocommunicatively couple with the plurality of computing instances; and one or more second network interface cards, wherein each second network interface card of a respective processing node is communicatively coupled to the other second network interface cards to form an internal network; and one or more central processing units; and at least one memory coupled to the one or more central processing units and storing one or more sequences of instructions which, when executed using the one or more central processing units, cause the one or more central processing units to execute a consensus method for the plurality of computing instances, the consensus method executed using the first plurality of processing nodes via the internal network.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] In the drawings:
[0011] FIG. 1A illustrates a data center with a distributed computer system showing the context of use and principal functional elements with which one embodiment could be implemented.
[0012] FIG. IB illustrates an example of functional elements that could be used in a platform- as-a-service (PaaS) implementation, in one embodiment.
[0013] FIG. 2 illustrates a consensus processing device showing the principal functional elements with which one embodiment could be implemented.
[0014] FIG. 3 illustrates an example architecture of a consensus node.
[0015] FIG. 4 illustrates an example process for executing a consensus method using the consensus processing device.DETAILED DESCRIPTION
[0016] A scalable consensus processes having relatively low complexity within distributed systems is described herein. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.
[0017] The text of this disclosure, in combination with the drawing figures, is intended to state in prose the algorithms that are necessary to program the computer to implement the claimedinventions at the same level of detail that is used by people of skill in the arts to which this disclosure pertains to communicate with one another concerning functions to be programmed, inputs, transformations, outputs and other aspects of programming. That is, the level of detail set forth in this disclosure is the same level of detail that persons of skill in the art normally use to communicate with one another to express algorithms to be programmed or the structure and function of programs to implement the inventions claimed herein.
[0018] This disclosure may describe one or more different inventions, with alternative embodiments to illustrate examples. Other embodiments may be utilized, and structural, logical, software, electrical, and other changes may be made without departing from the scope of the particular inventions. Various modifications and alterations are possible and expected. Some features of one or more of the inventions may be described with reference to one or more particular embodiments or drawing figures, but such features are not limited to usage in the one or more particular embodiments or figures with reference to which they are described. Thus, the present disclosure is neither a literal description of all embodiments of one or more inventions nor a listing of features of one or more inventions that must be present in all embodiments.
[0019] Headings of sections and the title are provided for convenience but are not intended to limit the disclosure in any way or as a basis for interpreting the claims. Devices described as in communication with each other need not be in continuous communication with each other unless expressly specified otherwise. In addition, devices that communicate with each other may communicate directly or indirectly through one or more intermediaries, logical or physical.
[0020] A description of an embodiment with several components in communication with one other does not imply that all such components are required. Optional components may be described to illustrate a variety of possible embodiments and to illustrate one or more aspects of the inventions fully. Similarly, although process steps, method steps, algorithms, or the like may be described in sequential order, such processes, methods, and algorithms may generally be configured to work in different orders unless specifically stated to the contrary. Any sequence or order of steps described in this disclosure is not a required sequence or order. The steps of the described processes may be performed in any order practical. Further, some steps may be performed simultaneously. The illustration of a process in a drawing does not exclude variations and modifications, does not imply that the process or any of its steps are necessary to one or more of the invention(s), and does not imply that the illustrated process is preferred. The steps may bedescribed once per embodiment but need not occur only once. Some steps may be omitted in some embodiments or occurrences, or some steps may be executed more than once in a given embodiment or occurrence. When a single device or article is described, more than one device or article may be used in place of a single device or article. Where more than one device or article is described, a single device or article may be used instead of more than one device or article.
[0021] The functionality or features of a device may be alternatively embodied by one or more other devices that are not explicitly described as having such functionality or features. Thus, other embodiments of one or more inventions need not include the device itself. Techniques and mechanisms described or referenced herein will sometimes be described in singular form for clarity. However, it should be noted that particular embodiments include multiple iterations of a technique or manifestations of a mechanism unless noted otherwise. Process descriptions or blocks in figures should be understood as representing modules, segments, or portions of code, including one or more executable instructions for implementing specific logical functions or steps in the process. Alternate implementations are included within the scope of embodiments of the present invention in which, for example, functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved.
[0022] 1. GENERAL OVERVIEW
[0023] In particular embodiments, a consensus processing device can work as a hardware accelerator for the underlying functions that make distributed systems useful: real-time coordination, resiliency, and trust. A hardware accelerator (or a consensus processing device) may be or may refer to a specialized device or circuit that improves the performance of a computer by offloading specific tasks from the central processing unit (CPU) to dedicated hardware. In some examples, hardware accelerators may also be known or referred to as co-processors. A consensus processing device may improve the performance, efficiency (e.g., energy efficiency, processing efficiency), and concurrency of various applications.
[0024] In an embodiment, a consensus processing device can improve the performance and integrity of distributed systems by performing all consensus and orchestration processes within a dedicated and secure environment. The consensus processing device can enable orders of magnitude greater scale for distributed systems. In one embodiment, the consensus processing device can be a physical hardware appliance for dedicated use in private cloud and high-securityenvironments, which is easy to add to a data center. For example, in such an embodiment, the consensus processing device may be dedicated (c.g., a standalone) physical hardware appliance configured to perform consensus methods for one or more applications, computing devices, or the like.
[0025] In another embodiment, the consensus processing device can be a Platform-as-a- Service (PaaS) accelerator through cloud computing environments programmed according to processes and configurations that are functionally equivalent to the hardware embodiments and the functional processing of the hardware embodiments that are described herein in other sections. Embodiments are configured to integrate with existing orchestration and database software, offloading latency-inducing processes into an optimized environment where they can execute at least 60 times faster (e.g., relative to methods and systems that do not implement consensus processing devices in a same or similar manner). Where consensus has introduced latency to the point of affecting the performance of the overall system, the consensus processing device can isolate and offload the process of consensus from a user’s network onto a specialized, optimized network-in-a-box (e.g., a standalone device) and accomplish orders of magnitude greater trust and performance than software-only solutions.
[0026] A system is described. In some examples, the system may include a plurality of computing instances that form a network; and a single consensus processing device configured to execute a consensus method for the plurality of computing instances and external to the plurality of computing instances and communicatively coupled with the plurality of computing instances. The single consensus processing device may include a power supply, a first plurality of processing nodes, wherein each processing node of the first plurality of processing nodes may include one or more first network interface cards, wherein each first network interface card of a respective processing node is communicatively coupled to a corresponding external port configured to communicatively couple with the plurality of computing instances; and one or more second network interface cards, wherein each second network interface card of a respective processing node is communicatively coupled to the other second network interface cards to form an internal network; and one or more central processing units; and at least one memory coupled to the one or more central processing units and storing one or more sequences of instructions which, when executed using the one or more central processing units, cause the one or more central processingunits to execute a consensus method for the plurality of computing instances, the consensus method executed using the first plurality of processing nodes via the internal network.
[0027] In some embodiments, the first plurality of processing nodes includes a quantity greater than three. In some embodiments, the one or more first network interface cards includes a second quantity that is three or more.
[0028] In some embodiments, none of the plurality of computing instances are configured to execute a consensus method. In some embodiments, the plurality of computing instances include a plurality of virtual computing instances.
[0029] In some embodiments, executing the consensus method includes mediating the one or more first network interface cards and the one or more second network interface cards based on a respective functional purpose associated with each of one or more first network interface cards and the one or more second network interface cards. In some embodiments, mediating the one or more first network interface cards includes mediating the one or more first network interface cards for communicating with an external network, and mediating the one or more second network interface cards includes mediating the one or more second network interface cards for communicating consensus.
[0030] In some embodiments, the system may include a packet switch in the internal network, where the packet switch is configured to packet switch traffic between the first plurality of processing nodes in the internal network. In some embodiments, the one or more sequences of instructions, when executed using the one or more central processing units, cause the one or more central processing units to determine a data is a valid response to an execution of the consensus method, where the data is received from a computing instance in an external network through a particular processing node of the first plurality of processing nodes via a first particular network interface card coupled to a corresponding first particular external port communicatively coupled to the external network and record the data.
[0031] In some embodiments, recording the data includes one or more of sending a message to the computing instance through a particular processing node of the first plurality of processing nodes via first particular network interface card coupled to a corresponding first particular external port communicatively coupled to the external network, where the message comprises a permission of a change associated with the data and recording a change associated with data internally in a memory associated with the one or more central processing units.
[0032] In some embodiments, the one or more sequences of instructions, when executed using the one or more central processing units, cause the one or more central processing units to, responsive to executing the consensus method, one or more of transform data, route data, validate data against one or more predefined rules or constraints, detect one or more errors, correct the one or more errors, deduplicate data, or check data quality.
[0033] 2. STRUCTURAL & FUNCTIONAL OVERVIEW
[0034] 2.1 DISTRIBUTED COMPUTER SYSTEM EXAMPLE
[0035] FIG. 1A illustrates a data center with a distributed computer system showing the context of use and principal functional elements with which one embodiment could be implemented. In an embodiment, a data center 100 comprises a distributed computer system comprising components implemented partially by hardware at one or more computing devices, such as one or more hardware processors executing stored program instructions stored in one or more memories for performing the functions described herein. In other words, all functions described herein are intended to indicate operations performed using programming in a special or general-purpose computer in various embodiments. FIG. 1A illustrates only one of many possible arrangements of components configured to execute the programming described herein. Other arrangements may include fewer or different components, and the division of work between the components may vary depending on the arrangement.
[0036] FIG. 1A, and the other drawing figures and all of the description and claims in this disclosure, are intended to present, disclose, and claim a technical system and technical methods in which specially programmed computers, using a special-purpose distributed computer system design, execute functions that have not been available before to provide a practical application of computing technology to the problem of improving efficiency and reducing latency in distributed systems. In this manner, the disclosure presents a technical solution to a technical problem, and any interpretation of the disclosure or claims to cover any judicial exception to patent eligibility, such as an abstract idea, mental process, method of organizing human activity, or mathematical algorithm, has no support in this disclosure and is erroneous.
[0037] In an embodiment, the data center 100 comprises a router 104, a first switch 106, and a second switch 108. For purposes of illustrating a clear example, FIG. 1A shows one router 104 and two switches, but other embodiments may have networking topologies of any level of complexity and can include any useful number of switches, routers, or other similar components.Each of the switches and routers can be a packet-switching device compatible with the internetworking protocols of the OSI network model. As used herein, a packet-switching device may refer to any type of device or component of a device that is configured to transmit data (e.g., over a network) by breaking the data into packets and transmitting the packets individually.
[0038] The data center 100 further comprises a plurality of computing instances. For purposes of illustrating a clear example, FIG. 1A shows computing instance 110, computing instance 112, and computing instance 114, but other embodiments may use any number of computing instances. Each computing instance may comprise a server computer, a desktop computer, or a virtual computing instance. In some instances, a computing instance may refer to any electronic decive (or virtual device) configured to communicate with another electronic or virtual device. The data center 100 additionally comprises a consensus processing device 120; unlike prior approaches, in embodiments of the present disclosure, the consensus processing device is architected and programmed to execute a consensus protocol that all of the computing instances 110, 112, 114 can access and use, and those computing instances do not need specialized software to use the consensus protocol individually. Thus, in an embodiment, in relation to the consensus processing device 120, the computing instances 110, 112, 114 may operate within an external network and none of the computing instances necessarily executes a consensus process.
[0039] Additionally or alternatively, as shown in FIG. 1, the consensus processing device 120 may be external to (e.g., different than) the computing instances 110, 112, 114. For example, the consensus device 120 may be a standalone device and may be configured to perform a single type of operation (e.g., consensus methods).
[0040] The distributed computer system of the data center 100 communicates with a network 102 via the router 104. Network 102 broadly represents a local area network, wide area network, campus network, internetwork, or any combination thereof, using terrestrial links or satellite links, and / or using any combination of wireline or wireless network links. Network 102 can include the public internet.
[0041] In an embodiment, the computing instances 110, 112, 114 send (e.g., transmit) requests for consensus decisions and related data to the consensus processing device 120, which executes a programmed consensus protocol to make the consensus decision and to make the decision available to the computing instances 110, 112, 114. As described herein, the computing instances110, 112, 1 14 may be unable to execute consensus methods, and may instead utilize the external consensus processing device 120 to perform consensus operations.
[0042] As an example and not by way of limitation, computing instance 110 and computing instance 112 send consensus requests and related data via the first switch 106 to router 104. The router 104 then forwards the consensus requests toward the second switch 108, which further switches the consensus requests to the consensus processing device 120. As another example and not by way of limitation, computing instance 114 sends a consensus request and related data via the second switch 108 to the consensus processing device 120.
[0043] In an example embodiment, the consensus processing device 120 comprises a rack- mountable chassis having a height of one or two standard rack-mount units. Within the chassis, a switch may interconnect a consensus cluster of three, five, or another odd number of servers equal to or greater than three, and the same number of network interface cards. The consensus processing device 120 may comprise a self-contained local area network (LAN). In another example embodiment, the consensus processing device 120 may be small enough to fit on drones. The consensus processing device 120 can comprise a power supply system or one or more power supplies and a power plug for a standard wall socket. In this manner, the consensus processing device 120 is compatible with users’ existing network infrastructures.
[0044] FIG. 2 illustrates a consensus processing device showing the principal functional elements with which one embodiment could be implemented. In an embodiment, the consensus processing device 120 comprises a plurality of consensus nodes, e.g., consensus node 202, consensus node 212, and consensus node 222. Each consensus node comprises at least a processor, an outward-facing network interface card, and an inward-facing network interface card; in various embodiments, each node may comprise local memory such as DRAM or NVRAM, or all nodes may share memory or other storage such as disk storage.
[0045] Each outward-facing network interface card is communicatively coupled to a corresponding external port to communicate with the external network associated with the computing instances. For example, an outward-facing network interface card may refer to a network interface card configured to interface with an external device. Each inward-facing network interface card is communicatively coupled to the internal network within the consensus processing device 120. In some examples, an inward-facing network interface card may refer to a network interface card configured to connect two or more internal ports. For example, an inward-facing network card, which may be known as an inwards-facing riser card, may be a type of network interface card that allows for the connection of multiple slots (e.g., PCIc xl slots) through a single interface (e.g., a PCI Express interface). The consensus processing device 120 further comprises a power supply 230.
[0046] As illustrated in FIG. 2, consensus node 202 comprises an outward-facing network interface card 204, which is communicatively coupled to an external port 208. Consensus node 202 also comprises an inward-facing network interface card 206. Consensus node 212 comprises an outward-facing network interface card 214, which is communicatively coupled to an external port 218. Consensus node 212 also comprises an inward-facing network interface card 216. Consensus node 222 comprises an outward-facing network interface card 224, which is communicatively coupled to an external port 228. Consensus node 222 also comprises an in wardfacing network interface card 226. The inward-facing network interface card 206, inward-facing network interface card 216, and inward- facing network interface card 226 communicate with each other via mesh connections or switch 240.
[0047] In particular embodiments, outward-facing network interface cards 204, 214, and 224 may not be connected to their corresponding inward-facing network interface cards 206, 216, and 226. Outward-facing network interface cards 204, 214, 224 may not communicate with corresponding inward-facing network interface cards 206, 216, 226 directly as the two sets of network interface cards are associated with separate functions and, to an extent, the security of the system includes placing a firewall between the sets of network interface cards. In some embodiments, a consensus node may act as a firewall. As an example and not by way of limitation, consensus node 202 may act as a firewall between outward-facing network interface card 204 and inward-facing network interface card 206; consensus node 212 may act as a firewall between outward-facing network interface card 214 and inward-facing network interface card 216; and consensus node 222 may act as a firewall between outward-facing network interface card 224 and inward-facing network interface card 226.
[0048] In particular embodiments, the internal network (e.g., based on or otherwise using inward-facing network interface cards) may enable the consensus nodes to communicate with each other and achieve consensus. For example, the internal network may enable the consensus nodes to achieve agreement, trust, and security across a decentralized computer network. In the context of blockchains and cryptocurrencies, proof-of-work (PoW) and proof-of-stake (PoS) are two ofthe most prevalent consensus mechanisms. Outward-facing network interface cards may enable receiving change requests and serving information on the state of the system, and receiving updates and other networking tasks.
[0049] In particular embodiments, the number of inward-facing network interface cards is not necessarily the same as the number of outward-facing network interface cards. As an example and not by way of limitation, in the case where several entities share the same device to each accelerate their own consensus protocols, the consensus processing device 120 may be able to run consensus functions for separate entities, externally connected using various outward-facing network interface cards using different datalink protocols as needed. This would be a setup in which there exist more outward-facing network interface cards than inward-facing network interface cards. In a different case, a super-enterprise version would have more inward-facing network interface cards than outward-facing network interface cards, in order to provide a redundant mirrored network internally while only requiring a single outward-facing network interface card per consensus node. Thus, the quantity of inward-facing network interface cards and outward-facing network interface cards may be selected based on a design or based on the processing requirements of a system.
[0050] In one embodiment, the mesh connections or switch 240 can comprise a plurality of bus lines, other physical communication links, or programmatic links that arrange the inwardfacing network interface cards 206, 216, 226 in a fully meshed network. Alternatively, the mesh connections or switch 240 comprises a packet switch that is configured to packet-switch traffic between the inward-facing network interface cards 206, 216, 226, thus indirectly serving as a switch for traffic between consensus nodes 202, 212, 222.
[0051] FIG. 3 illustrates an example architecture of a consensus node. In one embodiment, consensus node 202 comprises a central processing unit 302 that is communicatively coupled to an TO subsystem 304 to volatile memory 306 and non-volatile memory 308. One or both of the volatile memory 306 and non-volatile memory 308 store consensus processing instructions 310 and consensus data 320. The present disclosure focuses on consensus processing for purposes of illustrating a clear example. Other embodiments can be configured or programmed to execute coordinated distributed activities other than consensus, for example, ordering of operations, or sequencing of data, to benefit from the same acceleration process. Coordination activities can include network synchronicity, ordering of operations, sequence of data, resource allocation, and / or task scheduling. Coordination activities may be useful for real-time collaboration software,multiplayer online games, Internet of Things systems, supply chain management, Web3 applications, smart grids, cloud computing, and distributed databases.
[0052] In one embodiment, the I / O subsystem 304 of the consensus node 202 receives data via the outward-facing network interface card 204 from the external network. The I / O subsystem 304 communicates with the central processing unit 302, which executes consensus processing instructions 310 stored in the volatile memory 306 and / or non-volatile memory 308.
[0053] In some embodiments, the consensus processing instructions 310 comprise consensus protocols. A consensus protocol defines a set of rules for message passing and processing for all networked components to reach an agreement on a common subject. The consensus is reached when all no-faulty components agree on the same subject (e.g., gain consensus). As an example and not by way of limitation, a messaging passing rule regulates how a component broadcasts and relays messages. As another example and not by way of limitation, a processing rule defines how a component changes its internal state in the face of these messages. In some embodiments, the consensus processing instructions 310 also comprise consensus algorithms.
[0054] In one embodiment, the I / O subsystem 304 of the consensus node 202 then communicates with other consensus nodes via the inward-facing network interface card 206. Based on the communication, the consensus nodes can agree on whether the introduced data is valid. The consensus nodes then record the data, according to the relevant use case(s) and preferences of the user. In some embodiments, the central processing unit 302 of the consensus node 202 stores the relevant data in the consensus data 320.
[0055] FIG. IB illustrates an example of functional elements that could be used in a platform- as-a-service (PaaS) implementation, in one embodiment. A requesting computer 130 is communicatively coupled via network links to an enclave service 140, mediated via an API. The enclave service can be implemented using one or more virtual compute instances and virtual storage instances in a shared or public cloud computing facility or using a private data center. The enclave service 140 hosts or executes service access instructions 142 and a consensus service 144. In this context, an “enclave service” refers to a computing service that is segmented in a cloud environment to control access and to secure cloud infrastructure, apps, and sensitive data against self-propagating malware, data breaches, and other attacks. In an embodiment, service access instructions 142 are programmed to implement a software-defined perimeter that creates a protected infrastructure in which to deploy access control, trust assessment, certificatemanagement, or other functional elements like the consensus service 1 4. The consensus service 144 can be implemented using sequences of instructions organized as methods, functions, or other software elements to virtually implement the functionality that has been previously described for FIG. 2, FIG. 3.
[0056] In operation, requesting computer 130 transmits an API access call 132 directed toward an API of the consensus service 144. The API parses the API access call 132 and enriches or transforms the call into a request to authorize access 134, which is forwarded to the service access instructions 142. The service access instructions are programmed to determine whether the API access call 132 and / or request to authorize access 134 have presented valid credentials, such as an API access key or session key. Oauth, OpenlD, or other protocols can be used. If access is authorized, then the service access instructions 142 create a service access point with which the requesting computer 130 can invoke the consensus service 144 to cause execution of a consensus operation in the manner previously described for FIG. 2, FIG. 3. Or, the request to authorize access 134 can authorize access to an existing service access point represented by the service access instructions 142. In this manner, the service becomes available and the requesting computer 130 can transmit calls that will reach the consensus service 144.
[0057] In one embodiment, consensus service 144 hosts or executes at least one consensus instance 152, which can comprise an Apache Zookeeper server or instance (as further described online in the documentation available as of this writing via the internet domain zookeeper.apache.org), an eted server, or a service, server, or instance based on another kind of protocol buffer technology. Other embodiments can implement different servers, instances, services, or consensus algorithms for the consensus instance 152, including but not limited to HTTP / 2 and gRPC, and the scope of the present disclosure is not limited to Zookeeper or eted.
[0058] In one embodiment, the software associated with the consensus processing device functions between the operating system and application software for system integration, which may be referred to as middleware. This could be used to identify events that require translation or integration with other systems. Protocols, message formats, message queuing, routing, and delivery may be supported in the middleware. The middleware transmits data / events between modules within the middleware or between middleware and external systems. The middleware also facilitates data movement and verification. In one feature, the middleware standardizes the interface for the user, abstracting away the differences in protocol behind the scenes andsimplifying the integration process. The middleware can also facilitate transport isolation. The middleware ensures that the components of the middleware work in a coordinated manner, c.g., workflow management, service composition, rule-based routing, and event-driven coordination.
[0059] In some embodiments, the software uses application or service “tags” to identify discrete services for which the container orchestration environment offers an automated scale. The sharing of ports and IP addresses makes it difficult to differentiate between services at the speeds required. The addition of ‘tags’ in containerized environments affords those networking services the ability to uniquely identify resources and ensure scale and availability at the same time.
[0060] In some embodiments, a service mesh is built from proxies that intercept every request. This allows them to execute domain-specific routing for services across the container environment. It may effectively extend lower-order protocols. With the service mesh, the decision on which IP address and port to send a given request to is based on a variety of variables related to the service and application status and location. The service mesh may check meta- information about a request and use it to determine how to route it.
[0061] In some embodiments, the software comprises an operating system network interface, referring to the hardware or software component responsible for network connectivity of an operating system with external networks and devices. The network interface may implement characteristics of data movement and verification such as packet routing, data validation, error detection, and data transformation.
[0062] In some embodiments, the software comprises AIP interfaces, through which different software components or systems can interact, exchange data, request services, or perform operations among themselves. In this context, it makes the consensus processing device 120 able to plug into external systems or user applications.
[0063] In some embodiments, the software uses HTTP / 2 network protocol for web communications and as the foundation for the API interfaces and the underlying protocol for transmitting API requests and responses, i.e., enabling communication between users and servers.
[0064] In some embodiments, the software uses gRPC, which is a high-performance, open- source remote procedure call (RPC) framework enabling different software components or systems to communicate over protocols including HTTP / 2.
[0065] In some embodiments, the software uses protocol buffers (e.g., a language-agnostic data serialization format) as the serialization mechanism. The protocol buffers can be also used todefine and implement APIs. The protocol buffers can enhance performance and reduce the payload size in API communications.
[0066] In some embodiments, the software comprises a consensus module. The consensus module can have its own API.
[0067] In some embodiments, the software utilizes remote direct memory access (RDMA) protocols. RDMA uses compatible network interface cards or adaptors as well as some drivers, libraries, and APIs that bypass the operating system of the receiving computer. RDMA allows for direct memory access between the memory of one machine and another without involving the CPU. This enables data transfer with low latency and high bandwidth, as it bypasses the operating system kernel and reduces overhead. In one feature, two user-space processes establish queue pairs and connect them. Each queue pair is a logical endpoint for a communication channel that does not interact with the operating system at either end. It uses the network interface card as a separate processor. This may change the failure characteristics of a distributed system because the CPU could fail leaving its memory still remote-accessible. By reducing communication overhead and enhancing data transfer efficiency, RDMA enables faster agreement and coordination among nodes, leading to improved overall system performance and reduced consensus latency.
[0068] In some embodiments, the software manages the movement of data between different modules or components within the consensus processing device 120, ensuring its integrity and correctness. As an example and not by way of limitation, the management comprises data transformation, data routing, data validation against predefined rules or constraints, error detection and correction, data deduplication, and data quality checks. The software establishes a common understanding of structure, semantics, and relationships of entities or concepts within the domain so that there is consistent interpretation and handling of data during movement and verification processes. In some embodiments, the software defines the structure, format, and metadata associated with data objects and events. The software also provides standardized mechanisms within a system that allow for processing (e.g., extraction, transformation, validation, and enrichment) of events during data movement and verification processes. The software additionally provides mechanisms or protocols that ensure delivery, integrity, and ordered processing of events during data movement. As an example and not by way of limitation, the techniques include message queueing, acknowledgment mechanisms, and error handling. The software ensures integration and interoperability between systems that use different protocols or ontologies bymapping data entities and attributes. The software further sets up mechanisms to separate and protect the communication channels within the consensus processing device 120 so that different systems or components within the consensus processing device 120 are secure and isolated from one another.
[0069] 2.2 EXAMPLE DATA PROCESSING FLOWS
[0070] FIG. 4 illustrates an example process for executing a consensus method using the consensus processing device. FIG. 4 and each other flow diagram herein are intended as an illustration of the functional level at which skilled persons, in the art to which this disclosure pertains, communicate with one another to describe and implement a consensus method, as described further herein and / or algorithms using hardware and software components. The flow diagrams are not intended to illustrate every instruction, method object, or sub-step that would be needed to implement every aspect of a working consensus method but are provided at the same functional level of illustration that is normally used at the high level of skill in this art to communicate the basis of implementing working consensus methods.
[0071] At step 400 of FIG. 4, in an embodiment, at a first consensus node of the consensus processing device 120, the consensus processing device 120 receives a change request from a computing instance in an external network, wherein the computing instance is associated with a distributed computing system, and wherein the change request enters the consensus processing device 120 via a first outward-facing network interface card associated with the first consensus node. For example, any of the consensus nodes 202, 212, or 222 can receive the change request via a corresponding outward-facing network interface card 204, 214, or 224, respectively. In some embodiments, the change request can be an HTTP call, an API call, or a remote procedure call.
[0072] At step 410, the consensus processing device 120 accesses, by the first consensus node, information associated with the change request.
[0073] At step 420, the consensus processing device 120 communicates, by the first consensus node, the information associated with the change request to the other consensus nodes of the consensus processing device 120 via the inward-facing network interface cards within the internal network. For example, the communication can be via the inward-facing network interface cards 206, 216, and 226.
[0074] At step 430, the consensus processing device 120 executes a consensus method in communication with all the consensus nodes of the consensus processing device 120 based on theinformation associated with the change request. In this stage, executing the consensus method comprises mediating the first plurality of network interface cards and the second plurality of network interface cards based on a respective functional purpose associated with each of the network interface cards. In some embodiments, mediating the first plurality of network interface cards comprises mediating the first plurality of network interface cards for communicating with the external network, and mediating the second plurality of network interface cards can comprise mediating the second plurality of network interface cards for communicating consensus.
[0075] At step 440, the consensus processing device 120 determines whether all consensus nodes reach the consensus that the change request is valid.
[0076] If all consensus nodes reach the consensus that the change request is valid, the consensus processing device 120 records the change request at step 450. For example, the change request can update a database, or the change request may be recorded in the volatile memory 306 or non-volatile memory 308.
[0077] At step 460, the consensus processing device 120 transmits the change request back to the originating computing instance (e.g., that is external to the consensus processing device 120) through the first consensus node via the first outward-facing network interface granting the permission to make the change. The originating computing instance may then inform the rest of the distributed computing system.
[0078] If all consensus nodes reach the consensus that the change request is invalid or if the consensus nodes cannot reach a consensus, the consensus processing device 120 declines the change request at step 470.
[0079] At step 480, the consensus processing device 120 transmits the change request back to the originating computing instance through the first consensus node via the first outward-facing network interface declining the change request.
[0080] 2.3 EXAMPLES USES AND APPLICATIONS
[0081] In one embodiment, consensus processing device 120 can function to increase the capacity of container orchestration instances, enabling large single-cluster architectures where otherwise a more complex, tiered architecture would be required. In one example of use, the prevailing method for container orchestration across large, frequently updating systems is to manage a set of features across multiple instances of an open-source system for automating deployment, scaling, and management of containerized applications. While managing multipleinstances instead of one requires greater skill and labor, it is often required because the update rate is too high for a single instance to handle, or management in a single instance would be too difficult and expensive. The limited rate at which a single distributed system can process changes (a consensus budget) limits cluster size. As a result, a large distributed system that analyzes and / or acts upon constant, streaming, granular data flows can be divided into layers of federated subclusters, effectively load-balancing the system, to divide the load across multiple consensus budgets.
[0082] In the configurations disclosed herein, the consensus processing device 120 may allow a system to be both large and rapidly updating, without division into layers of subclusters by increasing the available consensus budget for each single instance. A heavy write-intensive system can be orchestrated by a single consensus processing device 120. Design, maintenance, operations, and security engineering become commensurately simpler. In this way, consensus processing device 120 reduces the work required to orchestrate large distributed systems, by increasing the update capacity of each orchestration solution and speeding atomic operations over federated clusters.
[0083] In the configurations described herein, the consensus processing device 120 can also effectively improve or otherwise ensure the data integrity of a distributed system, even when its confidentiality and availability are compromised. For example, in the event of a cyberattack that results in penetration of the broader system (a confidentiality breach), the attacker could paralyze or sabotage the consensus process, preventing the system from accepting new changes (an availability breach.) An especially pernicious attacker could take advantage of various Byzantine Fault strategies to confuse or distort the data, or even deceive the consensus process into performing “write” operations that would change the data (an integrity breach.) With consensus processing device 120, even if the consensus process were to be temporarily impeded or sabotaged in an availability breach, it cannot be hijacked and made to perform “write” operations that would corrupt data or mislead. This means that authorized viewers can still trust the system’s actions and information, and when brought back to availability the environment remains the way it was before the attack. For mission-critical distributed systems that emphasize integrity, it is necessary to attempt to secure the consensus process but these attempts necessarily add complexity in ways that demand highly specialized and deeply integrated teams of network, operations, and security engineers to maintain. Moreover, each team’s priority competes for the same “consensus budget”mentioned above. Instead, the consensus processing device 120 may accomplish high-level data integrity by automatically containing each user’s consensus processes within multiple layers of software and hardware isolation. In the embodiments of this disclosure, the consensus processing device 120 may reduce the complexities and completely prevent certain attacks such as election attacks, Sybil attacks, and Byzantine network partitions.
[0084] In the described embodiments, the consensus processing device 120 can also facilitate the authorization of consensus nodes. Only pre-authorized compute nodes can “plug in” to the internal network associated with the consensus processing device 120, and user compute resources can only communicate with the consensus processing device 120 via an external firewall. Internal communications may be enforced by active packet inspection, strong encryption with continually rotating keys, and strong authentication and authorization protocols. External authorized users and applications may use modem, strong authentication to authorize their requests to the consensus processing device 120.
[0085] The consensus processing device 120 can also provide controlled access to the device 120. Active firewalls may prevent ingress to the consensus processing device 120 by unauthorized packets, and prevent egress from the consensus processing device 120 to unauthorized recipients. The consensus processing device 120 may use both strong IPSEC EAP as well as PKI-enforced TLS for extra-protocol and in-protocol communications security respectively. Altering the physical network for the consensus networks may be detected and cause an immediate fault condition which may be administratively or automatically handled depending on configuration.
[0086] The consensus processing device 120 can accomplish user and application isolation. Within the consensus processing device 120, each algorithm implementation may leverage a distinct network for communications. This may enable the shared use of a single consensus processing device 120 for multiple user applications.
[0087] The consensus processing device 120 can additionally enable automated fault mitigation. The consensus processing device 120 may handle fault mitigation internally, according to default or user-defined settings. If a fault occurs in the consensus protocol, the consensus processing device 120 may handle recovery without the need for input or manual reset.
[0088] 3. IMPLEMENTATION EXAMPLE HARDWARE OVERVIEW
[0089] According to one embodiment, the techniques described herein may be implemented in whole or in part using computing devices of FIG. 2, FIG. 3 that are hard-wired to perform thetechniques or may include digital electronic devices such as at least one application-specific integrated circuit (ASIC) or field programmable gate array (FPGA) that is persistently programmed to perform the techniques or may include at least one general purpose hardware processor programmed to perform the techniques pursuant to program instructions in firmware, memory, other storage, or a combination. To accomplish the described techniques, such computing devices may combine custom hard-wired logic, ASICs, or FPGAs with custom programming.
[0090] As an example, a computer system and instructions may be used for implementing the disclosed technologies in hardware, software, or a combination of hardware and software.
[0091] The computer system may include an input / output (I / O) subsystem, which may include a bus and / or other communication mechanism(s) for communicating information and / or instructions between the components of the computer system over electronic signal paths. The I / O subsystem may include an I / O controller, a memory controller, and at least one I / O port. The electronic signal paths are represented schematically in the drawings, such as lines, unidirectional arrows, or bidirectional arrows.
[0092] At least one hardware processor may be coupled to the I / O subsystem for processing information and instructions. The hardware processor may include, for example, a general-purpose microprocessor or microcontroller and / or a special-purpose microprocessor such as an embedded system or a graphics processing unit (GPU), or a digital signal processor or ARM processor. The processor may comprise an integrated arithmetic logic unit (ALU) or be coupled to a separate ALU.
[0093] The computer system may include one or more units of memory, such as a main memory, coupled to the I / O subsystem for electronically digitally storing data and instructions to be executed by the processor. Memory may include volatile memory such as various forms of random-access memory (RAM) or other dynamic storage device. Memory also may be used for storing temporary variables or other intermediate information during the execution of instructions to be executed by the processor. Such instructions, when stored in non-transitory computer- readable storage media accessible to the processor, can render the computer system into a specialpurpose machine customized to perform the operations specified in the instructions.
[0094] The computer system may include non-volatile memory such as read-only memory (ROM) or other static storage devices coupled to the I / O subsystem for storing information and instructions for the processor. The ROM may include various forms of programmable ROM(PROM), such as erasable PROM (EPROM) or electrically erasable PROM (EEPROM). A unit of persistent storage may include various forms of non-volatile RAM (NVRAM), such as FLASH memory, solid-state storage, magnetic disk, or optical disks such as CD-ROM or DVD-ROM and may be coupled to I / O subsystem for storing information and instructions. Storage is an example of a non-transitory computer-readable medium that may be used to store instructions and data which, when executed by the processor, cause performing computer-implemented methods to execute the techniques herein.
[0095] The instructions in memory, ROM, or storage may comprise one or more instructions organized as modules, methods, objects, functions, routines, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs. The instructions may comprise an operating system and / or system software; a consensus protocol application, service, or library; one or more libraries to support security, user configuration or programming, or other functions; data protocol instructions or stacks to implement TCP / IP, HTTP, or other communication protocols; file format processing instructions to parse or prepare objects or files coded using HTML, XML, or JSON; user interface instructions to render or interpret commands for a graphical user interface (GUI), command-line interface or text user interface. The instructions may implement a web server, web application server, or web client. The instructions may be organized as a presentation, application, and data storage layer, such as a relational database system using a structured query language (SQL) or no SQL, an object store, a graph database, a flat file system, or other data storage.
[0096] Optionally, the computer system may be coupled via the TO subsystem to at least one output device. In one embodiment, the output device is a digital computer display. Examples of a display that may be used in various embodiments include a touchscreen display, a light-emitting diode (LED) display, a liquid crystal display (LCD), or an e-paper display. Alternatively, the computer system can execute software for a terminal interface, command-line interface, or shell.
[0097] The computer system can be headless and communicate only using programmatic interfaces. Optionally, at least one input device may be coupled to the I / O subsystem for communicating signals, data, command selections, or gestures to the processor. Examples of input devices include touch screens, microphones, still and video digital cameras, alphanumeric and other keys, keypads, keyboards, graphics tablets, image scanners, joysticks, clocks, switches, buttons, dials, slides, and / or various types of sensors such as force sensors, motion sensors, heatsensors, accelerometers, gyroscopes, and inertial measurement unit (IMU) sensors and / or various types of transceivers such as wireless, such as cellular or Wi-Fi, radio frequency (RF) or infrared (IR) transceivers and Global Positioning System (GPS) transceivers.
[0098] Another type of input device is a control device, which may perform cursor control or other automated control functions such as navigation in a graphical interface on a display screen, alternatively or in addition to input functions. The control device may be a touchpad, a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to the processor and for controlling cursor movement on an output device, such as a display. The input device may have at least two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane. Another type of input device is a wired, wireless, or optical control device such as a joystick, wand, console, steering wheel, pedal, gearshift mechanism, or other control device. An input device may include a combination of multiple input devices, such as a video camera and a depth sensor.
[0099] The computer system may implement the techniques described herein using customized hard-wired logic, at least one ASIC or FPGA, firmware, and / or program instructions or logic which, when loaded and used or executed in combination with the computer system, causes or programs the computer system to operate as a special-purpose machine. According to one embodiment, the techniques herein are performed by the computer system in response to the processor executing at least one sequence of at least one instruction contained in the main memory . Such instructions may be read into main memory from another storage medium, such as storage. Execution of the sequences of instructions contained in main memory causes the processor to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions.
[0100] The term “storage media,” as used herein, refers to any non-transitory media that store data and / or instructions that cause a machine to operate in a specific fashion. Such storage media may comprise non-volatile media and / or volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as storage. Volatile media includes dynamic memory, such as memory. Common forms of storage media include, for example, a hard disk, solid state drive, flash drive, magnetic data storage medium, any optical or physical data storage medium, memory chip, or the like.
[0101] Storage media is distinct but may be used with transmission media. Transmission media participates in transferring information between storage media. For example, transmission media includes coaxial cables, copper wire and fiber optics, and wires comprising a bus of I / O subsystem. Transmission media can also be acoustic or light waves generated during radio-wave and infrared data communications.
[0102] Various forms of media may carry at least one sequence of at least one instruction to the processor for execution. For example, the instructions may initially be carried on a remote computer's magnetic disk or solid-state drive. The remote computer can load the instructions into its dynamic memory and send them over a communication link such as a fiber optic, coaxial cable, or telephone line using a modem. A modem or router local to the computer system can receive the data on the communication link and convert the data to a format that can be read by the computer system. For instance, a receiver such as a radio frequency antenna or an infrared detector can receive the data carried in a wireless or optical signal and appropriate circuitry can provide the data to the I / O subsystem such as placing the data on a bus. The I / O subsystem carries the data to memory, from which the processor retrieves and executes the instructions. The instructions received by memory may optionally be stored on storage either before or after execution by the processor.
[0103] The computer system may also include a communication interface coupled to a bus or VO subsystem. The communication interface provides a two-way data communication coupling to a network link(s) directly or indirectly connected to at least one communication network, such as a network or a public or private cloud on the Internet. For example, a communication interface may be an Ethernet networking interface, integrated-services digital network (ISDN) card, cable modem, satellite modem, or a modem to provide a data communication connection to a corresponding type of communications line, for example, an Ethernet cable or a metal cable of any kind or a fiber-optic line or a telephone line. Network broadly represents a local area network (LAN), wide-area network (WAN), campus network, internetwork, or any combination thereof. The communication interface may comprise a LAN card to provide a data communication connection to a compatible LAN, a cellular radiotelephone interface that is wired to send or receive cellular data according to cellular radiotelephone wireless networking standards, or a satellite radio interface that is wired to send or receive digital data according to satellite wireless networking standards. In any such implementation, the communication interface sends and receives electrical,electromagnetic, or optical signals over signal paths that carry digital data streams representing various types of information.
[0104] An external network link via one or more of the ports 208, 218, 228 typically provides electrical, electromagnetic, or optical data communication directly or through at least one network to other data devices, using, for example, satellite, cellular, Wi-Fi, or BLUETOOTH technology. For example, a network link may connect through the network to a host computer.
[0105] Furthermore, network links may connect through a network or to other computing devices via internetworking devices and / or computers operated by an Internet Service Provider (ISP). ISP provides data communication services through a worldwide packet data communication network called the Internet. A server computer may be coupled to the Internet. Server computer broadly represents any computer, data center, virtual machine, or virtual computing instance with or without a hypervisor or computer executing a containerized program system such as DOCKER or KUBERNETES. The server computer may represent an electronic digital service that is implemented using more than one computer or instance and that is accessed and used by transmitting web services requests, uniform resource locator (URL) strings with parameters in HTTP payloads, API calls, app services calls, or other service calls. The computer system of FIG. 2, FIG. 3 and a server computer may form elements of a distributed computing system that includes other computers, a processing cluster, a server farm, or other organizations of computers that cooperate to perform tasks or execute applications or services. Server computers may comprise one or more instructions organized as modules, methods, objects, functions, routines, or calls. The instructions may be organized as one or more computer programs, operating system services, or application programs, including mobile apps. The instructions may comprise an operating system and / or system software; one or more libraries to support multimedia, programming, or other functions; data protocol instructions or stacks to implement TCP / IP, HTTP, or other communication protocols; file format processing instructions to parse or render files coded using HTML, XML, JPEG, MPEG or PNG; user interface instructions to render or interpret commands for a graphical user interface (GUI), command-line interface or text user interface; application software such as an office suite, internet access applications, design and manufacturing applications, graphics applications, audio applications, software engineering applications, educational applications, games or miscellaneous applications. Server computer may comprise a web application server that hosts a presentation layer, application layer, and data storage layer,such as a relational database system using a structured query language (SQL) or no SQL, an object store, a graph database, a flat file system or other data storage.
[0106] The computer system can send messages and receive data and instructions, including program code, through the network(s), network link, and communication interface. In the Internet example, a server computer might transmit a requested code for an application program through the Internet, ISP, local network, and communication interface. The received code may be executed by the processor as it is received and / or stored in storage or other non-volatile storage for later execution.
[0107] The execution of instructions, as described in this section, may implement a process in the form of an instance of a computer program that is being executed and consisting of program code and its current activity. Depending on the operating system (OS), a process may be made up of multiple threads of execution that execute instructions concurrently. In this context, a computer program is a passive collection of instructions, while a process may be the actual execution of those instructions. Several processes may be associated with the same program; for example, opening up several instances of the same program often means more than one process is being executed. Multitasking may be implemented to allow multiple processes to share processor 504. While each processor or core of the processor executes a single task at a time, the computer system may be programmed to implement multitasking to allow each processor to switch between tasks that are being executed without having to wait for each task to finish. In an embodiment, switches may be performed when tasks perform input / output operations when a task indicates that it can be switched or on hardware interrupts. Time-sharing may be implemented to allow fast response for interactive user applications by rapidly performing context switches to provide the appearance of concurrent execution of multiple processes. In an embodiment, for security and reliability, an operating system may prevent direct communication between independent processes, providing strictly mediated and controlled inter-process communication functionality.
[0108] In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. The sole and exclusive indicator of the scope of the invention, and what is intended by the applicants to be the scope of the invention, is the literal and equivalent scope ofthe set of claims that issue from this application, in the specific form in which such claims issue, including any subsequent correction.
Claims
CLAIMSWhat is claimed is:
1. A system, comprising: a plurality of computing instances that form a network; and a single consensus processing device configured to execute a consensus method for the plurality of computing instances and external to the plurality of computing instances and communicatively coupled with the plurality of computing instances, the single consensus processing device comprising: a power supply; a first plurality of processing nodes, wherein each processing node of the first plurality of processing nodes comprises: one or more first network interface cards, wherein each first network interface card of a respective processing node is communicatively coupled to a corresponding external port configured to communicatively couple with the plurality of computing instances; and one or more second network interface cards, wherein each second network interface card of a respective processing node is communicatively coupled to the other second network interface cards to form an internal network; and one or more central processing units; and at least one memory coupled to the one or more central processing units and storing one or more sequences of instructions which, when executed using the one or more central processing units, cause the one or more central processing units to execute a consensus method for the plurality of computing instances, the consensus method executed using the first plurality of processing nodes via the internal network.
2. The system of claim 1 , wherein the first plurality of processing nodes comprises a quantity greater than three.
3. The system of claim 1, wherein the one or more first network interface cards comprises a second quantity that is three or more.
4. The system of claim 1, wherein none of the plurality of computing instances are configured to execute a consensus method.
5. The system of claim 4, wherein the plurality of computing instances comprises a plurality of virtual computing instances.
6. The system of claim 1, wherein executing the consensus method comprises mediating the one or more first network interface cards and the one or more second network interface cards based on a respective functional purpose associated with each of one or more first network interface cards and the one or more second network interface cards.
7. The system of claim 6, wherein mediating the one or more first network interface cards comprises mediating the one or more first network interface cards for communicating with an external network, and wherein mediating the one or more second network interface cards comprises mediating the one or more second network interface cards for communicating consensus.
8. The system of claim 1, further comprising a packet switch in the internal network, wherein the packet switch is configured to packet switch traffic between the first plurality of processing nodes in the internal network.
9. The system of claim 1, wherein the one or more sequences of instructions, when executed using the one or more central processing units, further cause the one or more central processing units to: determine a data is a valid response to an execution of the consensus method, wherein the data is received from a computing instance in an external network through a particular processing node of the first plurality of processing nodes via a first particular networkinterface card coupled to a corresponding first particular external port communicatively coupled to the external network; and record the data.
10. The system of claim 9, wherein recording the data comprises one or more of: sending a message to the computing instance through a particular processing node of the first plurality of processing nodes via first particular network interface card coupled to a corresponding first particular external port communicatively coupled to the external network, wherein the message comprises a permission of a change associated with the data; and recording a change associated with data internally in a memory associated with the one or more central processing units.
11. The system of claim 1, wherein the one or more sequences of instructions, when executed using the one or more central processing units, further cause the one or more central processing units to, responsive to executing the consensus method, one or more of: transform data, route data, validate data against one or more predefined rules or constraints, detect one or more errors, correct the one or more errors, deduplicate data, or check data quality.
Citation Information
Patent Citations
Network to computer internal interface
US20040049624A1
Automatically managing a role of a node device in a mesh network
US20220150109A1
Ecosystem per distributed element security through virtual isolation networks
US20230076918A1
Arrangement and method for linking clients to servers at run time in a distributed networking environment
US6185626B1
Automatic comparison of roaming data or routing data
US8280848B2